Ответ 1
- name: Extract java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt
when: not p.stat.exists
В Ansible playbook я хочу запускать задачи, если каталог имеет не.
- 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
Но что мне делать, чтобы гарантировать выполнение следующих задач, только если этот каталог не существует?
- 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
Это параметр creates
идеально подходит для:
- 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 проверит, существует ли /opt/jdk1.8.0_71
и запускается только команда, если она не существует.
Документация: http://docs.ansible.com/ansible/command_module.html