web-dev-qa-db-ja.com

ansible if elseコンストラクト

他の場合Ansibleロジック..

- 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

このコードの要約は次のとおりです。

証明書が存在する場合

証明書を更新する

ELSE

証明書を作成する

終了

これは正しいアプローチですか、それともansibleのIF ELSE構文に対するより良いアプローチがありますか?

16
danday74

そこにあるものは動作するはずであり、それを行う1つの方法です。

または、Jinjaクエリを使用して、次のような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' }}"

しかし、それは他の何よりも個人的な好みの問題であり、あなたの方法はより読みやすいので、私はその私見に固執します。

16