diff --git a/tasks/buildcerts.yml b/tasks/buildcerts.yml new file mode 100644 index 0000000000000000000000000000000000000000..d2e64504181ea88b4929190b1fe1107e10877aec --- /dev/null +++ b/tasks/buildcerts.yml @@ -0,0 +1,9 @@ +--- +# file: roles/haproxy/tasks/buildcerts.yml + +- name: "Create PEM file for HaProxy" + assemble: + src='/etc/letsencrypt/live/{{ item.domain }}' + dest='/etc/haproxy/certs/{{ item.domain }}.pem' + regexp='(fullchain)|(privkey)\.pem' + with_items: '{{ proxy_certificates_letsencrypt|default([]) }}' diff --git a/tasks/letsencrypt.yml b/tasks/letsencrypt.yml deleted file mode 100644 index cb04e593c787ab680d84ae1568e369b51cc9e04d..0000000000000000000000000000000000000000 --- a/tasks/letsencrypt.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -# file: roles/haproxy/tasks/letsencrypt.yml - -- set_fact: filename='/etc/letsencrypt/live/{{ item.domain }}/cert.pem' - -- name: "Check LetsEncrypt Requirement" - shell: ls {{ filename }} - register: cert_available - failed_when: false - -- block: - - - name: "Stop HAProxy" - service: - name='haproxy' - state='stopped' - - - name: "Install New Cert" - shell: /opt/letsencrypt/letsencrypt-auto certonly -d {{ item.domain }} -d www.{{ item.domain }} --standalone --text --email {{ apache_server_admin|default('admin@paragon-es.de') }} --agree-tos --redirect - - - name: "Start HAProxy" - service: - name='haproxy' - state='started' - - when: cert_available is defined and cert_available.stdout != filename diff --git a/tasks/main.yml b/tasks/main.yml index 5c9280e1bfcf4a20c1bc5a5dca0812bc96ebb792..5da7495e9ab491843c2588b8e231210035f130a9 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -2,18 +2,17 @@ # file: roles/haproxy/tasks/main.yml - block: - - name: "LetsEncrypt Certificates" - include: letsencrypt.yml + - name: "Install Certs" + include: '../../letsencrypt/tasks/cert.yml' with_items: '{{ proxy_certificates_letsencrypt|default([]) }}' - name: "Renew Existing Cert" include: '../../letsencrypt/tasks/renew.yml' - - name: "Create PEM file for HaProxy" - shell: cat /etc/letsencrypt/live/{{ item.domain }}/fullchain.pem /etc/letsencrypt/live/{{ item.domain }}/privkey.pem > /etc/haproxy/certs/{{ item.domain }}.pem - with_items: '{{ proxy_certificates_letsencrypt|default([]) }}' - notify: "Proxy | Restart HAProxy" + - name: "Build HaCerts" + include: 'buildcerts.yml' + tags: Certs when: '"letsencrypt" not in excluded_roles' - block: diff --git a/templates/letsencrypt.ini b/templates/letsencrypt.ini new file mode 120000 index 0000000000000000000000000000000000000000..fc27efd4b836f3bd2cce599936b7981394a1e94d --- /dev/null +++ b/templates/letsencrypt.ini @@ -0,0 +1 @@ +../../letsencrypt/templates/letsencrypt.ini \ No newline at end of file