diff options
author | Joshua Hull <josh@fireflop.com> | 2023-01-15 10:49:21 +0100 |
---|---|---|
committer | Emil Renner Berthing <esmil@labitat.dk> | 2023-01-27 01:25:24 +0100 |
commit | 0562d72eaafaedf0f10414e0b42fa92d248c60f3 (patch) | |
tree | b2097545f6e02cbfa5c1dd6db685033995f9e010 /roles/sky/tasks/certbot.yml | |
parent | cd9597103b864dfba9ab8f707f2f5a54b42d6a4a (diff) | |
download | labitat-ansible-0562d72eaafaedf0f10414e0b42fa92d248c60f3.tar.gz labitat-ansible-0562d72eaafaedf0f10414e0b42fa92d248c60f3.tar.xz labitat-ansible-0562d72eaafaedf0f10414e0b42fa92d248c60f3.zip |
sky: certbot: configure certbot
esmil:
- don't install cron job, just use the packaged timer
- install deploy hook to reload nginx when certificates are updated
Diffstat (limited to 'roles/sky/tasks/certbot.yml')
-rw-r--r-- | roles/sky/tasks/certbot.yml | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/roles/sky/tasks/certbot.yml b/roles/sky/tasks/certbot.yml new file mode 100644 index 0000000..1ff4f03 --- /dev/null +++ b/roles/sky/tasks/certbot.yml @@ -0,0 +1,71 @@ +--- +- name: Create letsencrypt www directory + file: + name: '/var/www/letsencrypt' + state: directory + owner: root + group: root + mode: 0755 + +- name: Install nginx site for letsencrypt requests + template: + dest: '/etc/nginx/sites-enabled/letsencrypt' + src: letsencrypt.nginx.j2 + owner: root + group: root + mode: 0644 + register: letsencrypt_site + tags: + - nginx + +# We need to have the letsencrypt site loaded in the +# running nginx before creating the certificate below +# so we can't wait for the regular handler to run +- name: Reload nginx + systemd: + name: nginx.service + state: reloaded + when: letsencrypt_site is changed + +- name: 'Create {{ domain_name }} certificate' + command: + argv: + - '/usr/bin/certbot' + - 'certonly' + - '--non-interactive' + - '--agree-tos' + - '--max-log-backups' + - '99' + - '--webroot' + - '--webroot-path' + - '/var/www/letsencrypt' + - '--preferred-challenges' + - 'http' + - '--key-type' + - 'rsa' + - '-m' + - '{{ letsencrypt_email }}' + - '-d' + - '{{ domain_name }}' + - '-d' + - 'www.labitat.dk' + creates: '/etc/letsencrypt/renewal/{{ domain_name }}.conf' + notify: + - reload nginx + +- name: Enable certbot renewal timer + systemd: + name: certbot.timer + enabled: yes + masked: no + state: started + +- name: Add deploy hook to reload nginx + template: + dest: '/etc/letsencrypt/renewal-hooks/deploy/nginx.sh' + src: certbot-nginx.sh.j2 + owner: root + group: root + mode: 0755 + +# vim: set ts=2 sw=2 et: |