2017-10-16 4 views
1

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?

+0

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

Répondre

2

Oui, c'est un bug. J'ai déposé un numéro 31831 avec des explications.

+0

Merci d'avoir enquêté et déposé le problème. – clemens321