Salut, je suis nouveau dans Ansible et j'ai quelques problèmes en utilisant des variables enregistrées.Enregistrer la variable dans Ansible
Le problème est que j'ai plusieurs serveurs avec différents systèmes d'exploitation.
J'utilise des rôles pour les séparer, mais dans le cas où il n'y a aucun serveur d'un type un conditionnel me donne une erreur disant que je dois mettre une expression qui évalue à Vrai ou Faux.
Ceci est le code du problème.
- 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'"
L'erreur qui me donne est celle-ci:
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
Je l'ai déjà essayé ceux-ci: quand : sources.stdout est défini et source.stdout == un only_if: sources.stdout est défini et source.stdout == a
Et cela me donne la même erreur.
J'utilise Ansible 1.3 dans Ubuntu 13.04 Pour vérifier cela je ansible --version
espère que vous pouvez me aider. Salutations