diff --git a/tasks/check-existence.yml b/tasks/check-existence.yml new file mode 100644 index 0000000..01f8632 --- /dev/null +++ b/tasks/check-existence.yml @@ -0,0 +1,16 @@ +--- +- name: Get installed certificates. + shell: | + {{ certbot_script }} certificates | grep "Domains:" | awk '{ gsub(/ Domains: /,""); print }' + changed_when: false + register: letsencrypt_certs + +- name: Set cert_exists to false (to check if cert exists). + set_fact: + cert_exists: false + +- name: Check if certificate already exists. + set_fact: + cert_exists: true + when: cert_item.domains | sort | difference(item) == [] + with_list: "{{ letsencrypt_certs.stdout_lines }}" diff --git a/tasks/create-cert-standalone.yml b/tasks/create-cert-standalone.yml index 7f291e5..7d63334 100644 --- a/tasks/create-cert-standalone.yml +++ b/tasks/create-cert-standalone.yml @@ -1,19 +1,5 @@ --- -- name: Get installed certificates. - shell: | - {{ certbot_script }} certificates | grep "Domains:" | awk '{ gsub(/ Domains: /,""); print }' - changed_when: false - register: letsencrypt_certs - -- name: Set cert_exists to false (to check if cert exists). - set_fact: - cert_exists: false - -- name: Check if certificate already exists. - set_fact: - cert_exists: true - when: cert_item.domains | sort | difference(item) == [] - with_list: "{{ letsencrypt_certs.stdout_lines }}" +- include_tasks: check-existence.yml - name: Ensure pre and post hook folders exist. file: diff --git a/tasks/create-cert-webroot.yml b/tasks/create-cert-webroot.yml index 8399872..6a0200e 100644 --- a/tasks/create-cert-webroot.yml +++ b/tasks/create-cert-webroot.yml @@ -1,8 +1,5 @@ --- -- name: Check if certificate already exists. - stat: - path: /etc/letsencrypt/live/{{ cert_item.domains | first }}/cert.pem - register: letsencrypt_cert +- include_tasks: check-existence.yml - name: Create webroot directory if it doesn't exist yet file: @@ -11,4 +8,4 @@ - name: Generate new certificate if one doesn't exist. command: "{{ certbot_create_command }}" - when: not letsencrypt_cert.stat.exists + when: not cert_exists