2016-01-26 15 views
14

W pomocniczym podręczniku chcę uruchamiać zadania, jeśli katalog istnieje nie istnieje.Jak mogę uruchomić zadanie ansibli tylko wtedy, gdy plik lub katalog NIE istnieje?

- 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 

Ale co muszę zrobić, aby poniższe zadania działały tylko wtedy, gdy ten katalog nie istnieje?

- name: Extract java if dir not existing 
    command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt 

Odpowiedz

12
- name: Extract java if dir not existing 
    command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt 
    when: not p.stat.exists 
26

To właśnie parametr creates jest idealny dla:

- name: Extract java if dir not existing 
    command: tar xzf /tmp/jdk1.8.0_71 
    args: 
     chdir: /opt 
     creates: /opt/jdk1.8.0_71 

ansibl będzie sprawdzić, czy /opt/jdk1.8.0_71 istnieje i tylko uruchomić polecenie, jeśli nie istnieje.

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

+5

składnia jest źle: arg: tworzy: .... jest właściwym sposobem –

+0

A co jeśli trzeba np. pobierz /tmp/jdk1.8.0_71 przed tym poleceniem i chcesz, aby to zadanie było również zależne od tego, czy istnieje /opt/jdk1.8.0_71? – Debilski

Powiązane problemy