--- - name: Check if certificate exists or has been changed. import_tasks: test-cert-exists.yml - name: Stop services to allow certbot to generate a cert. service: name: "{{ item }}" state: stopped when: not letsencrypt_cert_exists.stat.exists or letsencrypt_cert_updated with_items: "{{ certbot_create_standalone_stop_services }}" - name: Generate new certificate if one doesn't exist. shell: "{{ certbot_create_command }}" when: not letsencrypt_cert_exists.stat.exists or letsencrypt_cert_updated - name: Persist domain list to /etc/letsencrypt/domains-{{ cert_item.domains | first }}. copy: dest: /etc/letsencrypt/domains-{{ cert_item.domains | first }} # Add a space here because of https://github.com/ansible/ansible/issues/6077 content: " {{ cert_item.domains }}\n" # when: not letsencrypt_cert_exists.stat.exists or letsencrypt_cert_updated - name: Start services after cert has been generated. service: name: "{{ item }}" state: started when: not letsencrypt_cert_exists.stat.exists or letsencrypt_cert_updated with_items: "{{ certbot_create_standalone_stop_services }}"