2024-11-27 13:48:08 +10:00
|
|
|
---
|
2025-01-14 20:18:57 +10:00
|
|
|
- name: Setup defaults file
|
2021-01-14 11:26:52 -08:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2021-01-14 11:21:32 -08:00
|
|
|
dest=/etc/letsencrypt/cli.ini
|
|
|
|
src=cli.ini
|
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
2023-05-15 17:29:40 +02:00
|
|
|
|
2018-05-17 05:06:23 +00:00
|
|
|
- name: Generate (or renew) the certificate
|
2020-10-14 16:07:41 -07:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2024-12-19 11:22:24 +10:00
|
|
|
ansible.builtin.command: certbot certonly --expand --keep -n --webroot --webroot-path /var/www/html/ -d {{','.join([site_name] + server_aliases)}}
|
2018-06-01 21:07:35 +00:00
|
|
|
run_once: true
|
2018-06-14 00:48:32 +00:00
|
|
|
register: certbot_output
|
2018-06-14 01:33:44 +00:00
|
|
|
check_mode: no
|
2022-06-13 14:09:12 -07:00
|
|
|
changed_when: "not ('not yet due for renewal' in certbot_output.stdout)"
|
2018-05-17 05:06:23 +00:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
2018-10-04 09:01:58 +02:00
|
|
|
# Find the directory to use
|
|
|
|
- name: Get the directory to use
|
2020-10-14 16:07:41 -07:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2018-10-04 09:01:58 +02:00
|
|
|
# Sometimes we get directories like site-0001, site-0002, etc. We want the latest
|
2024-12-19 16:42:30 +10:00
|
|
|
ansible.builtin.shell: "file /etc/letsencrypt/live/{{site_name}}* | tail -1 | sed -e 's/: directory//' | tr -d '\n'"
|
2018-10-04 09:01:58 +02:00
|
|
|
register: certbot_dir
|
|
|
|
changed_when: 'false'
|
2018-12-13 23:46:18 +00:00
|
|
|
check_mode: no
|
2018-10-04 09:01:58 +02:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
2018-05-17 05:06:23 +00:00
|
|
|
# And once we do that, we need to copy some things.
|
|
|
|
- name: Obtain the certificate
|
2020-10-14 16:07:41 -07:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2024-12-19 11:22:24 +10:00
|
|
|
ansible.builtin.command: "cat {{certbot_dir.stdout}}/cert.pem"
|
2018-05-17 05:06:23 +00:00
|
|
|
register: certbot_certificate
|
2018-07-26 00:00:09 +00:00
|
|
|
changed_when: 'false'
|
2018-12-13 23:46:18 +00:00
|
|
|
check_mode: no
|
2018-05-17 05:06:23 +00:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
|
|
|
- name: Obtain the intermediate certificate
|
2020-10-14 16:07:41 -07:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2024-12-19 11:22:24 +10:00
|
|
|
ansible.builtin.command: cat {{certbot_dir.stdout}}/chain.pem
|
2018-05-17 05:06:23 +00:00
|
|
|
register: certbot_chain
|
2018-07-26 00:00:09 +00:00
|
|
|
changed_when: 'false'
|
2018-12-13 23:46:18 +00:00
|
|
|
check_mode: no
|
2018-05-17 05:06:23 +00:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
|
|
|
- name: Obtain the key
|
2020-10-14 16:07:41 -07:00
|
|
|
delegate_to: "certgetter01.iad2.fedoraproject.org"
|
2024-12-19 11:22:24 +10:00
|
|
|
ansible.builtin.command: cat {{certbot_dir.stdout}}/privkey.pem
|
2018-05-17 05:06:23 +00:00
|
|
|
register: certbot_key
|
2018-07-26 00:00:09 +00:00
|
|
|
changed_when: 'false'
|
2018-12-13 23:46:18 +00:00
|
|
|
check_mode: no
|
2018-05-17 05:06:23 +00:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
|
|
|
- name: Install the certificate
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-05-17 05:06:23 +00:00
|
|
|
dest=/etc/pki/tls/certs/{{site_name}}.cert
|
2018-06-01 20:00:08 +00:00
|
|
|
content="{{certbot_certificate.stdout}}"
|
2018-05-17 05:06:23 +00:00
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
|
|
|
- name: Install the intermediate/chain certificate
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-05-17 05:06:23 +00:00
|
|
|
dest=/etc/pki/tls/certs/{{site_name}}.intermediate.cert
|
2018-06-01 20:00:08 +00:00
|
|
|
content="{{certbot_chain.stdout}}"
|
2018-05-17 05:06:23 +00:00
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
|
|
|
|
- name: Install the key
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-05-17 05:06:23 +00:00
|
|
|
dest=/etc/pki/tls/private/{{site_name}}.key
|
2018-06-01 20:00:08 +00:00
|
|
|
content="{{certbot_key.stdout}}"
|
2018-05-17 05:06:23 +00:00
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0600
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
2018-08-15 19:54:01 +00:00
|
|
|
|
|
|
|
- name: Install the certificate (additional host)
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-08-15 19:54:01 +00:00
|
|
|
dest=/etc/pki/tls/certs/{{site_name}}.cert
|
|
|
|
content="{{certbot_certificate.stdout}}"
|
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
delegate_to: "{{ certbot_addhost }}"
|
2023-05-15 17:29:40 +02:00
|
|
|
when:
|
|
|
|
- certbot_addhost is defined
|
2018-08-15 19:54:01 +00:00
|
|
|
|
|
|
|
- name: Install the intermediate/chain certificate (additional host)
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-08-15 19:54:01 +00:00
|
|
|
dest=/etc/pki/tls/certs/{{site_name}}.intermediate.cert
|
|
|
|
content="{{certbot_chain.stdout}}"
|
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
delegate_to: "{{ certbot_addhost }}"
|
2023-05-15 17:29:40 +02:00
|
|
|
when:
|
|
|
|
- certbot_addhost is defined
|
2018-08-15 19:54:01 +00:00
|
|
|
|
|
|
|
- name: Install the key (additional host)
|
2024-12-18 08:23:28 +10:00
|
|
|
ansible.builtin.copy: >
|
2018-08-15 19:54:01 +00:00
|
|
|
dest=/etc/pki/tls/private/{{site_name}}.key
|
|
|
|
content="{{certbot_key.stdout}}"
|
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0600
|
|
|
|
notify:
|
|
|
|
- reload proxyhttpd
|
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
delegate_to: "{{ certbot_addhost }}"
|
2023-05-15 17:29:40 +02:00
|
|
|
when:
|
|
|
|
- certbot_addhost is defined
|
2023-01-20 11:55:13 -08:00
|
|
|
|
|
|
|
- name: Install certificate bundle
|
2023-01-25 10:01:18 -08:00
|
|
|
template: >
|
2023-01-20 11:55:13 -08:00
|
|
|
dest=/etc/pki/tls/certs/{{site_name}}.bundle.cert
|
2023-01-25 10:01:18 -08:00
|
|
|
src=combined.j2
|
2023-01-20 11:55:13 -08:00
|
|
|
owner=root
|
|
|
|
group=root
|
|
|
|
mode=0644
|
|
|
|
notify:
|
2023-01-20 12:13:54 -08:00
|
|
|
- restart stunnel
|
2023-01-20 11:55:13 -08:00
|
|
|
tags:
|
|
|
|
- letsencrypt
|
|
|
|
delegate_to: "{{ certbot_bundlehost }}"
|
|
|
|
when: certbot_bundlehost is defined
|