Add role for deploying certbot and setting up certificate using it
This commit is contained in:
parent
1b45e94960
commit
5341f9dfba
7 changed files with 104 additions and 0 deletions
22
playbooks/roles/certbot/tasks/main/cert.yaml
Normal file
22
playbooks/roles/certbot/tasks/main/cert.yaml
Normal file
|
@ -0,0 +1,22 @@
|
|||
- name: get expiry date before
|
||||
ansible.builtin.command: /usr/bin/openssl x509 -enddate -noout -in /etc/letsencrypt/live/{{ item }}/fullchain.pem
|
||||
ignore_errors: true
|
||||
become: true
|
||||
changed_when: false
|
||||
register: certbot__cert_expiry_before
|
||||
|
||||
- name: obtain the certificate using certbot
|
||||
ansible.builtin.command: /usr/bin/certbot certonly --keep-until-expiring --agree-tos --non-interactive --email "{{ certbot__acme_account_email_address }}" --no-eff-email --webroot --webroot-path /webroot-for-acme-challenge -d "{{ item }}"
|
||||
become: true
|
||||
changed_when: false
|
||||
|
||||
- name: get expiry date after
|
||||
ansible.builtin.command: /usr/bin/openssl x509 -enddate -noout -in /etc/letsencrypt/live/{{ item }}/fullchain.pem
|
||||
become: true
|
||||
changed_when: false
|
||||
register: certbot__cert_expiry_after
|
||||
|
||||
- name: potentially report changed
|
||||
ansible.builtin.debug:
|
||||
msg: "If this reports changed, then the certificate expiry date and therefore the certificate changed."
|
||||
changed_when: certbot__cert_expiry_before.stdout != certbot__cert_expiry_after.stdout
|
13
playbooks/roles/certbot/tasks/main/certs.yaml
Normal file
13
playbooks/roles/certbot/tasks/main/certs.yaml
Normal file
|
@ -0,0 +1,13 @@
|
|||
- name: ensure directory for the webroot exists
|
||||
ansible.builtin.file:
|
||||
path: /webroot-for-acme-challenge/
|
||||
state: directory
|
||||
mode: "0755"
|
||||
owner: root
|
||||
group: root
|
||||
become: true
|
||||
|
||||
- name: obtain certificates
|
||||
loop: "{{ certbot__certificate_domains }}"
|
||||
ansible.builtin.include_tasks:
|
||||
file: main/cert.yaml
|
19
playbooks/roles/certbot/tasks/main/install.yaml
Normal file
19
playbooks/roles/certbot/tasks/main/install.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
- name: make sure the `openssl` package is installed
|
||||
ansible.builtin.apt:
|
||||
name: openssl
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: make sure the `certbot` package is installed
|
||||
ansible.builtin.apt:
|
||||
name: certbot={{ certbot__version_spec }}*
|
||||
state: present
|
||||
allow_change_held_packages: true
|
||||
update_cache: true
|
||||
become: true
|
||||
|
||||
- name: apt-mark hold `certbot`
|
||||
ansible.builtin.dpkg_selections:
|
||||
name: certbot
|
||||
selection: hold
|
||||
become: true
|
Loading…
Add table
Add a link
Reference in a new issue