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

Schreibe einen Kommentar