- name: "Check if certificate already exists for '{{ domain }}'"
  cert_check_exists:
    domain: "{{ domain }}"
    cert_base_path: "{{ LETSENCRYPT_LIVE_PATH }}"
  register: cert_check

- name: "receive certificate for '{{ domain }}'"
  command: >-
    certbot certonly 
    --agree-tos 
    --email {{ users.administrator.email }}
    --non-interactive 
    {% if CERTBOT_ACME_CHALLENGE_METHOD != "webroot" %}
    --dns-{{ CERTBOT_ACME_CHALLENGE_METHOD }}
    --dns-{{ CERTBOT_ACME_CHALLENGE_METHOD }}-credentials {{ CERTBOT_CREDENTIALS_FILE }}
    --dns-{{ CERTBOT_ACME_CHALLENGE_METHOD }}-propagation-seconds {{ CERTBOT_DNS_PROPAGATION_WAIT_SECONDS }}
    {% else %}
    --webroot 
    -w {{ LETSENCRYPT_WEBROOT_PATH }}
    {% endif %}
    {% if wildcard_domain is defined and ( wildcard_domain | bool ) %}
    -d {{ PRIMARY_DOMAIN }} 
    -d *.{{ PRIMARY_DOMAIN }}
    {% else %}
    -d {{ domain }}
    {% endif %}
    {{ '--test-cert' if MODE_TEST | bool else '' }}
  register: certbot_result
  changed_when: "'Certificate not yet due for renewal' not in certbot_result.stdout"
  when: not cert_check.exists