--- - 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 # TODO May use a more direct https://docs.ansible.com/ansible/latest/copy_module.html - name: Persist domain list to host lineinfile: path: /etc/letsencrypt/domains-{{ cert_item.domains | first }} line: "{{ cert_item.domains }}" state: present create: yes when: 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 }}"