2017-02-04 70 views
4

我的繼承人,如果別人Ansible邏輯..ansible if else結構

- 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 

此代碼歸結爲:

IF證書存在

更新證書

ELSE

創建證書

END IF

這是正確的做法還是有更好的方法來IF ELSE在ansible構建?

回答

5

你在那裏應該工作,並且是這樣做的一種方式。

或者,你可以使用一個神社查詢將其降低到2個任務,使得:

- 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' }}" 

然而,它更個人喜好比什麼都重要的事情,用自己的方式更具有可讀性,所以我會堅持與恕我直言。