Question:
Heres my if else Ansible logic ..
1 2 3 4 5 6 7 8 9 10 |
- 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 |
This code boils down to:
IF certs exist
renew certs
ELSE
create certs
END IF
Is this the correct approach or is there a better approach to the IF ELSE construct in ansible?
Answer:
What you have there should work and is one way of doing it.
Alternatively, you could use a Jinja query to reduce it to 2 tasks, such that:
1 2 3 4 5 6 |
- 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' }}" |
However, it’s more a matter of personal preference than anything else, and your way is more readable, so I would just stick with that IMHO.