Gibt es in Ansible (dh über mehrere Hosts hinweg) eine "globale" Variable? Ich möchte ein Fehler-Flag setzen und dann ein bestimmtes separates Playbook aufrufen, wenn wir diesen Fehlerzustand treffen. Meine Struktur ist so etwas wie unten:Ansible - Globale Variablen
- hosts: localhost
connection: local
gather_facts: no
roles:
- role1 <-- some error flag is set here
- role2
- include: teardown.yml
when: error_flag is defined and error_flag == true
Ich habe versucht, eine Variable in group_vars
Einstellung, aber es scheint mir, gibt es auch keine wirkliche Möglichkeit, Variablenwert während der Laufzeit zu ändern.
Set_fact funktioniert nicht, weil die when
für die Teardown nicht im lokalen Host ist. Und selbst wenn ich versuche, auf hostvars['localhost']['error_flag]
zuzugreifen, funktioniert das nicht, weil es scheint, dass Sie Jinja-Vorlagen in der when
-Klausel nicht verwenden können.
Die Hostvariable 'hostvars.localhost.error_flag' sollte in einer' when' Klausel ohne eine Jinja2-Vorlage verfügbar sein. Das heißt, schreibe diesen Ausdruck ohne die '{{}}}' Jinja2-Trennzeichen. –