Dans un playbook Ansible, je veux exécuter des tâches si un répertoire existe pas.
- name: Check for Java exists in /opt
stat: path=/opt/jdk1.8.0_71
register: p
when: p.stat.isdir is defined and p.stat.isdir
Mais que dois-je faire pour que les tâches suivantes ne s’exécutent que si ce répertoire n’existe pas?
- name: Extract Java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt
- name: Extract Java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt
when: not p.stat.exists
C’est ce pour quoi le paramètre creates
convient parfaitement:
- name: Extract Java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71
args:
chdir: /opt
creates: /opt/jdk1.8.0_71
Ansible vérifiera si /opt/jdk1.8.0_71
existe et n'exécute la commande que si elle n'existe pas.
Documentation: http://docs.ansible.com/ansible/command_module.html