DevOps

Ansible: Hostvariablen anderer Hosts in Playbook einfügen

Angenommen, man will eine Rolle (oder einen Task) auf einem Host ausführen. Diese Rolle soll dann auf Hostvariablen von host1 sowie host2 zugreifen können und diese z.B. in ein Template einfügen:

Führt man dieses Playbook aus, wird es mit folgender Fehlermeldung abbrechen:

Grund dafür ist, dass nur auf dem host1 Variablen “gesammelt” werden, nicht jedoch auf dem host2, da nur auf host1 die Rolle läuft.

Man könnte nun host2 zu diesem Playbook hinzufügen, doch dann würde die Rolle ebenfalls auf diesem Host laufen. Das ist aber unter Umständen nicht gewünscht.

Lösung des Problems ist es, ein “Variablen-Sammel-Playbook” vor dem eigentlichen Playbook auszuführen:

Dieses Playbook wird keine Tasks ausführen, jedoch sich auf alle Hosts verbinden und dort die Fakten einsammeln. In darauf folgenden Playbooks werden die gesamelten Fakten genutzt und das Playbook wird auf keinen Fehler mehr laufen.

Beitragsbild: Wikimedia Commons

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.