2016-02-15 9 views
6

Ich möchte Variablen aus einer Datei auf dem Remote-Host lieber als die Steuermaschine, auf der Ansible ausgeführt wird, einbeziehen.Ansible - vars-Datei vom Remote-Host einschließen

Zum Beispiel habe ich eine Datei /var/database_credentials.yml (auf meinem Webserver)

Was ist der beste Weg, Variablen aus dieser Datei zu hostvars hinzufügen, so dass ich sie in einer Vorlage verwenden kann?

Das Modul include_vars nimmt nur Dateien von der Steuerungsmaschine. Ich könnte das Holmodul verwenden, aber das scheint ein unnötiger Schritt zu sein.

Antwort

1

Es sollte nicht schwierig sein, das mit /etc/ansible/facts.d zu integrieren.

Sie können JSON-Dateien, INI-Dateien oder ausführbare Skripts in diesem Verzeichnis speichern, und der Inhalt/die Ausgabe wird nach der Ausführung des Setup-Moduls als Serverfacts verfügbar sein.

Ich bin nicht sicher, dass es YAML dauern wird. Sie können Glück haben und es wird funktionieren, einfach einen Symlink zu Ihrer Datei /var/database_credentials.yml hinzuzufügen. (YAML wird in den Dokumenten nicht erwähnt, aber es wäre seltsam, wenn YAML nicht unterstützt wird, da so ziemlich alles in Ansible auf YAML basiert.) Wenn nicht, können Sie ein Skript in der von Ihnen bevorzugten Sprache erstellen, das diese Datei liest und ein JSON ausgibt Objekt.

Siehe Local Facts (Facts.d) in der Dokumentation.

+0

Vielen Dank! Das sieht genau so aus, wie ich es brauchte –

+1

Es unterstützt nicht YAML aber ini Dateiformat funktioniert gut für mich –