it-swarm.com.de

Wie kann ich eine anzeigbare Aufgabe nur ausführen, wenn eine Datei oder ein Verzeichnis NICHT vorhanden ist?

In einem Ansible-Playbook möchte ich Aufgaben ausführen, wenn ein Verzeichnis vorhanden ist nicht.

- 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

Aber was muss ich tun, um sicherzustellen, dass die folgenden Aufgaben nur ausgeführt werden, wenn dieses Verzeichnis nicht vorhanden ist?

- 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

Dafür ist der Parameter creates perfekt:

- 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 prüft, ob /opt/jdk1.8.0_71 existiert und führe den Befehl nur aus, wenn er nicht existiert.

Dokumentation: http://docs.ansible.com/ansible/command_module.html

42
Bruce P