J'utilise ansible 2.4.0 et j'essaie d'utiliser ignore_errors
en fonction du mode de vérification et with_items
en combinaison. Selon le docs about check_mode, vous pouvez définir ignore_errors en fonction de si oui ou non fonctionne en mode de contrôle. Sans la directive with_items
cela fonctionne bien, mais avec les deux éléments, un échec est toujours ignoré.Utilisation de ignore_errors ansible dans une boucle
Exemple de travail sans with_items
:
# test_i.yml
- name: test without array and with ignore
hosts: all
gather_facts: no
tasks:
- fail: msg="I fail, but ignored in check mode"
ignore_errors: "{{ ansible_check_mode }}"
- debug: msg="Reachable only in check mode"
exemple de réalisation Non:
# test_ai.yml
- name: test with array and with ignore
hosts: all
gather_facts: no
tasks:
- fail: msg="I am always skipped"
ignore_errors: "{{ ansible_check_mode }}"
with_items: [ 1, 2 ]
- debug: msg="Always reached"
Exécuter avec et résultats:
ansible-playbook test_i.yml --check
# ok=2, failed=0, but fail-task printed in red
ansible-playbook test_i.yml
# ok=0, failed=1, canceled after fail task
ansible-playbook test_ai.yml --check
# ok=2, failed=0, but fail-task items printed in red
ansible-playbook test_ai.yml
# ok=2, failed=0, same as with check
Si les ignore_errors est retiré ou commentaire, la tâche échoue comme souhaité, mais il le fait en mode vérification, aussi. Cela fonctionne même si check_mode
est défini comme faux - mais cela n'aurait aucun sens, n'est-ce pas.
Est-ce que je manque quelque chose ou est-ce que c'est un bug?
Je ne ferais pas nécessairement confiance au module 'fail' pour qu'il se comporte de la même manière qu'un autre module d'action défaillant. Quel est ton objectif? Vous voulez une réponse/solution générale, ou spécifiquement pour 'fail '? – techraf