mirror of
https://github.com/geerlingguy/ansible-role-certbot.git
synced 2025-07-27 06:41:32 +02:00
certbot_create_method 'dns-cloudflare'
This commit is contained in:
parent
3b3cc546d1
commit
315b463a7c
@ -40,6 +40,9 @@ certbot_create_command: >-
|
|||||||
{{ '--webroot-path ' if certbot_create_method == 'webroot' else '' }}
|
{{ '--webroot-path ' if certbot_create_method == 'webroot' else '' }}
|
||||||
{{ cert_item.webroot | default(certbot_webroot) if certbot_create_method == 'webroot' else '' }}
|
{{ cert_item.webroot | default(certbot_webroot) if certbot_create_method == 'webroot' else '' }}
|
||||||
{{ certbot_create_extra_args }}
|
{{ certbot_create_extra_args }}
|
||||||
|
{{ '--dns-cloudflare-credentials /etc/letsencrypt/dnscloudflare.ini'
|
||||||
|
if certbot_create_method == 'dns-cloudflare'
|
||||||
|
else '' }}
|
||||||
--cert-name {{ cert_item_name }}
|
--cert-name {{ cert_item_name }}
|
||||||
-d {{ cert_item.domains | join(',') }}
|
-d {{ cert_item.domains | join(',') }}
|
||||||
{{ '--expand' if certbot_expand else '' }}
|
{{ '--expand' if certbot_expand else '' }}
|
||||||
@ -58,6 +61,8 @@ certbot_create_standalone_stop_services:
|
|||||||
# - apache
|
# - apache
|
||||||
# - varnish
|
# - varnish
|
||||||
|
|
||||||
|
certbot_dns_cloudflare_api_token: fakeone
|
||||||
|
|
||||||
# Available options: 'package', 'snap', 'source'.
|
# Available options: 'package', 'snap', 'source'.
|
||||||
certbot_install_method: 'package'
|
certbot_install_method: 'package'
|
||||||
|
|
||||||
|
15
tasks/create-cert-dns-cloudflare.yml
Normal file
15
tasks/create-cert-dns-cloudflare.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
- name: Determine certificate name
|
||||||
|
set_fact:
|
||||||
|
cert_item_name: "{{ cert_item.name | default(cert_item.domains | first | replace('*.', '')) }}"
|
||||||
|
|
||||||
|
- name: Check if certificate already exists.
|
||||||
|
stat:
|
||||||
|
path: /etc/letsencrypt/live/{{ cert_item.domains | first | replace('*.', '') }}/cert.pem
|
||||||
|
register: letsencrypt_cert
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Generate new certificate if one doesn't exist.
|
||||||
|
command: "{{ certbot_create_command }}"
|
||||||
|
when: not letsencrypt_cert.stat.exists
|
||||||
|
become: true
|
@ -4,6 +4,16 @@
|
|||||||
name: "{{ certbot_package }}"
|
name: "{{ certbot_package }}"
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
- name: Install Certbot dependencies.
|
||||||
|
package:
|
||||||
|
name: "{{ cert_item }}"
|
||||||
|
state: present
|
||||||
|
when:
|
||||||
|
- certbot_create_method in certbot_create_packages
|
||||||
|
loop: "{{ certbot_create_packages[certbot_create_method] }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: cert_item
|
||||||
|
|
||||||
- name: Set Certbot script variable.
|
- name: Set Certbot script variable.
|
||||||
set_fact:
|
set_fact:
|
||||||
certbot_script: "{{ certbot_package }}"
|
certbot_script: "{{ certbot_package }}"
|
||||||
|
@ -13,6 +13,17 @@
|
|||||||
- import_tasks: install-from-source.yml
|
- import_tasks: install-from-source.yml
|
||||||
when: certbot_install_method == 'source'
|
when: certbot_install_method == 'source'
|
||||||
|
|
||||||
|
- name: Cloudflare API token
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: dnscloudflare.ini.j2
|
||||||
|
dest: "/etc/letsencrypt/dnscloudflare.ini"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0600'
|
||||||
|
when:
|
||||||
|
- certbot_create_method == 'dns-cloudflare'
|
||||||
|
become: true
|
||||||
|
|
||||||
- include_tasks: create-cert-standalone.yml
|
- include_tasks: create-cert-standalone.yml
|
||||||
with_items: "{{ certbot_certs }}"
|
with_items: "{{ certbot_certs }}"
|
||||||
when:
|
when:
|
||||||
@ -29,5 +40,13 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: cert_item
|
loop_var: cert_item
|
||||||
|
|
||||||
|
- include_tasks: create-cert-dns-cloudflare.yml
|
||||||
|
with_items: "{{ certbot_certs }}"
|
||||||
|
when:
|
||||||
|
- certbot_create_if_missing
|
||||||
|
- certbot_create_method == 'dns-cloudflare'
|
||||||
|
loop_control:
|
||||||
|
loop_var: cert_item
|
||||||
|
|
||||||
- import_tasks: renew-cron.yml
|
- import_tasks: renew-cron.yml
|
||||||
when: certbot_auto_renew
|
when: certbot_auto_renew
|
||||||
|
1
templates/dnscloudflare.ini.j2
Normal file
1
templates/dnscloudflare.ini.j2
Normal file
@ -0,0 +1 @@
|
|||||||
|
dns_cloudflare_api_token = {{ certbot_dns_cloudflare_api_token }}
|
@ -1,2 +1,5 @@
|
|||||||
---
|
---
|
||||||
certbot_package: certbot
|
certbot_package: certbot
|
||||||
|
certbot_create_packages:
|
||||||
|
'dns-cloudflare':
|
||||||
|
- python3-certbot-dns-cloudflare
|
||||||
|
Loading…
x
Reference in New Issue
Block a user