J'essaie d'inclure des tâches dans le bloc avec une condition de moment. De plus, certaines tâches à l'intérieur de ce bloc ont des conditions supplémentaires. Le problème est que de telles tâches (avec des conditions supplémentaires) sont ignorées. L'état des deux blocs et toutes les conditions supplémentaires sont vraies.Conditions supplémentaires pour les tâches à l'intérieur d'un bloc
Ci-dessous il y a un jeu d'échantillons:
- block:
- set_fact:
packages_to_install: "{{ packages_to_install }} + [ '{{ (distrs.stdout | from_json).postgresql }}' ]"
- set_fact:
packages_to_install: "{{ packages_to_install }} + [ '{{ (distrs.stdout | from_json).webserver }}' ]"
when:
- server.webserver is defined
- server.webserver == true
when:
- server is defined
Ainsi, postgresql est ajouté à la liste des paquets, mais n'est pas webserver.
Selon the docs, toutes les tâches à l'intérieur du bloc seront exécutées après avoir ajouté la condition when du bloc et l'avoir évalué dans le contexte de la tâche. Peut-être que ce n'est pas seulement possible dans Ansible 2.4 d'avoir des tâches jointes avec des conditions supplémentaires?
Veuillez corriger le problème d'indentation - vous avez deux clauses 'when:' attachées à l'instruction 'block:'. –