2017-02-04 6 views
4

Heres meine, wenn sonst Logik ansible ..ansible wenn sonst konstruieren

- name: Check certs exist 
    stat: path=/etc/letsencrypt/live/{{ rootDomain }}/fullchain.pem 
    register: st 

- include: ./_common/check-certs-renewable.yaml 
    when: st.stat.exists 

- include: ./_common/create-certs.yaml 
    when: not st.stat.exists 

Dieser Code läuft darauf hinaus:

IF Zert existieren

Zert erneuern

ELSE

create certs

END IF

Ist dies der richtige Ansatz, oder gibt es eine bessere Lösung für die IF-ELSE in ansible konstruieren?

Antwort

5

Was Sie dort haben, sollte funktionieren und ist eine Möglichkeit, es zu tun.

Alternativ können Sie eine Jinja Abfrage verwenden, um es zwei Aufgaben zu reduzieren, so dass:

- name: Check certs exist 
    stat: path=/etc/letsencrypt/live/{{ rootDomain }}/fullchain.pem 
    register: st 

- include: "{{ './_common/check-certs-renewable.yaml' if st.stat.exists else './_common/create-certs.yaml' }}" 

Aber es ist mehr eine Frage der persönlichen Vorliebe als alles andere, und Ihr Weg ist besser lesbar, so Ich würde einfach bei dieser IMHO bleiben.