Register-Variable in Ansible
Hallo, ich bin neu in Ansible und ich habe einige Probleme mit registrierten Variablen.
Das problem ist, dass ich mehrere server mit unterschiedlichen Betriebssystemen.
Ich Sie verwenden Rollen, um Sie zu trennen, aber in einem Fall wo es keine Server von einer Art
eine bedingte gibt mir eine Fehlermeldung, dass ich setzen muss, ein Ausdruck, der den Wert True oder False.
Dies ist der code mit dem problem.
- name: Checking if Sources are Available
action: shell echo a$(cat /etc/apt/sources.list | grep $(echo 'http://url/${ansible_distribution}/stable' | tr "[:upper:]" "[:lower:]" ))
register: sources
ignore_errors: True
- name: Adding source.
action: shell echo "deb http://url/${ansible_distribution}/stable ${ansible_lsb.codename} main" | tr "[:upper:]" "[:lower:]" >> /etc/apt/sources.list
when: "ansible_os_family == 'RedHat' and sources.stdout == 'a'"
Den Fehler, der mir gibt, ist dieses hier:
fatal: [192.168.1.114] => Conditional expression must evaluate to True or False: ({% if ansible_os_family == 'RedHat' and sources.stdout == 'a' %} True {% else %} False {% endif %}) and ({% if ansible_os_family == 'Debian' %} True {% else %} False {% endif %})
fatal: [192.168.1.141] => Conditional expression must evaluate to True or False: ({% if ansible_os_family == 'RedHat' and sources.stdout == 'a' %} True {% else %} False {% endif %}) and ({% if ansible_os_family == 'Debian' %} True {% else %} False {% endif %})
FATAL: all hosts have already failed -- aborting
Ich schon ausprobiert, diese hier:
Wann: Quellen.stdout definiert ist und die Quelle.stdout ==
only_if: Quellen.stdout definiert ist und die Quelle.stdout = =
Und das gibt mir die gleiche Fehlermeldung.
Ich bin Mit Ansible 1.3 in Ubuntu 13.04
Um dies zu überprüfen, die ich verwendet, ansible --version
Hoffe Ihr könnt mir helfen.
Grüße
InformationsquelleAutor Mario López | 2013-06-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich denke, dies ist im Zusammenhang mit diesem Problem:
https://github.com/ansible/ansible/issues/3460
Scheint inzwischen behoben zu sein in der aktuellen dev-version von ansible.
InformationsquelleAutor user2648936
Teste ich den code verwenden ansible 1.2 auf meinem mbp, funktioniert es einwandfrei:
Ergebnis:
finden Sie in offiziellen Beispiel:register_logic
InformationsquelleAutor driftcrow
Könnte es sein, dass Sie:
in Ihrem playbook?
InformationsquelleAutor Berend de Boer