it-swarm.com.ru

Как я могу запустить задание, только если файл или каталог НЕ существует?

В 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
30
RobertK
- name: Extract Java if dir not existing
  command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt
  when: not p.stat.exists
25
helloV

Вот для чего идеально подходит параметр 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

42
Bruce P