mirror of
https://github.com/geerlingguy/ansible-role-certbot.git
synced 2026-08-22 07:50:43 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f133ad7ab | ||
|
|
c6297ddebb | ||
|
|
eb4647ed9c | ||
|
|
31beafb338 | ||
|
|
1fc3a76d34 | ||
|
|
dd1f8bd22c | ||
|
|
de4cb90984 | ||
|
|
955ec8b17e | ||
|
|
a9a3ef77a3 | ||
|
|
e35a5d0fb9 | ||
|
|
854a36e048 | ||
|
|
2cad2addcd | ||
|
|
52a96f9bde | ||
|
|
7a7c1f8b06 | ||
|
|
40c4c1b433 | ||
|
|
bd58f8e72c | ||
|
|
123facdbab | ||
|
|
e1013946c5 | ||
|
|
b37af73500 | ||
|
|
23447ec217 | ||
|
|
50d8921ec2 | ||
|
|
2e13cb13cf | ||
|
|
e669ab0ac4 | ||
|
|
ca46eab49f | ||
|
|
5f476f829c | ||
|
|
34949a63d9 | ||
|
|
061509319f | ||
|
|
c7e5eec8cc | ||
|
|
23f593aaaf | ||
|
|
027af9b3b3 | ||
|
|
7317dbcabe | ||
|
|
5cfcc2d316 | ||
|
|
aaf3dbd40a | ||
|
|
96051f08f4 | ||
|
|
6647174286 | ||
|
|
3f8533436b | ||
|
|
d1d517c5a4 | ||
|
|
7ad49929dd | ||
|
|
6bb2ed6436 | ||
|
|
515e8af98b | ||
|
|
b17976752c | ||
|
|
02e1e4e148 | ||
|
|
fdba1c4352 | ||
|
|
3c05ff5029 | ||
|
|
25a661157e | ||
|
|
e93e175a7e | ||
|
|
e10cfdaedb | ||
|
|
e34a21f0eb | ||
|
|
4f22d025cd | ||
|
|
ea88bfa03c | ||
|
|
56ba6ad847 | ||
|
|
0ba7078e8c | ||
|
|
b96acd79ec | ||
|
|
9090d7d431 | ||
|
|
7c66dc3eed | ||
|
|
51ff0b14a3 | ||
|
|
8006878db7 | ||
|
|
eb5f51182b | ||
|
|
fe1716eced | ||
|
|
3624a21c45 | ||
|
|
2bca213421 | ||
|
|
f5bbfd2ec7 | ||
|
|
a9609e1da6 | ||
|
|
5ac9b8da7c | ||
|
|
50f9134287 | ||
|
|
b3a886e9ee | ||
|
|
8164566c4f |
@@ -0,0 +1,3 @@
|
||||
skip_list:
|
||||
- 'yaml'
|
||||
- 'role-name'
|
||||
@@ -12,6 +12,7 @@ onlyLabels: []
|
||||
|
||||
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
||||
exemptLabels:
|
||||
- bug
|
||||
- pinned
|
||||
- security
|
||||
- planned
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
name: CI
|
||||
'on':
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
schedule:
|
||||
- cron: "30 2 * * 0"
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: 'geerlingguy.certbot'
|
||||
|
||||
jobs:
|
||||
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out the codebase.
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: 'geerlingguy.certbot'
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install test dependencies.
|
||||
run: pip3 install yamllint
|
||||
|
||||
- name: Lint code.
|
||||
run: |
|
||||
yamllint .
|
||||
|
||||
molecule:
|
||||
name: Molecule
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- distro: centos8
|
||||
playbook: converge.yml
|
||||
experimental: false
|
||||
- distro: centos7
|
||||
playbook: converge.yml
|
||||
experimental: false
|
||||
- distro: ubuntu1804
|
||||
playbook: converge.yml
|
||||
experimental: false
|
||||
- distro: debian10
|
||||
playbook: converge.yml
|
||||
experimental: false
|
||||
# Source install started failing recently.
|
||||
# - distro: centos7
|
||||
# playbook: playbook-source-install.yml
|
||||
# experimental: false
|
||||
|
||||
- distro: centos7
|
||||
playbook: playbook-snap-install.yml
|
||||
experimental: true
|
||||
|
||||
steps:
|
||||
- name: Check out the codebase.
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: 'geerlingguy.certbot'
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install test dependencies.
|
||||
run: pip3 install ansible molecule[docker] docker
|
||||
|
||||
- name: Run Molecule tests.
|
||||
run: molecule test
|
||||
continue-on-error: ${{ matrix.experimental }}
|
||||
env:
|
||||
PY_COLORS: '1'
|
||||
ANSIBLE_FORCE_COLOR: '1'
|
||||
MOLECULE_DISTRO: ${{ matrix.distro }}
|
||||
MOLECULE_PLAYBOOK: ${{ matrix.playbook }}
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
# This workflow requires a GALAXY_API_KEY secret present in the GitHub
|
||||
# repository or organization.
|
||||
#
|
||||
# See: https://github.com/marketplace/actions/publish-ansible-role-to-galaxy
|
||||
# See: https://github.com/ansible/galaxy/issues/46
|
||||
|
||||
name: Release
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: 'geerlingguy.certbot'
|
||||
|
||||
jobs:
|
||||
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out the codebase.
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
path: 'geerlingguy.certbot'
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install Ansible.
|
||||
run: pip3 install ansible-core
|
||||
|
||||
- name: Trigger a new import on Galaxy.
|
||||
run: >-
|
||||
ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }}
|
||||
$(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2)
|
||||
@@ -1,3 +1,5 @@
|
||||
*.retry
|
||||
*/__pycache__
|
||||
*.pyc
|
||||
.cache
|
||||
|
||||
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
---
|
||||
language: python
|
||||
services: docker
|
||||
|
||||
env:
|
||||
global:
|
||||
- ROLE_NAME: certbot
|
||||
matrix:
|
||||
- MOLECULE_DISTRO: centos8
|
||||
- MOLECULE_DISTRO: centos7
|
||||
- MOLECULE_DISTRO: centos6
|
||||
MOLECULE_PLAYBOOK: playbook-source-install.yml
|
||||
- MOLECULE_DISTRO: ubuntu1804
|
||||
- MOLECULE_DISTRO: ubuntu1604
|
||||
- MOLECULE_DISTRO: debian10
|
||||
|
||||
install:
|
||||
# Install test dependencies.
|
||||
- pip install molecule yamllint ansible-lint docker
|
||||
|
||||
before_script:
|
||||
# Use actual Ansible Galaxy role name for the project directory.
|
||||
- cd ../
|
||||
- mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
|
||||
- cd geerlingguy.$ROLE_NAME
|
||||
|
||||
script:
|
||||
# Run tests.
|
||||
- molecule test
|
||||
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||
@@ -3,7 +3,7 @@ extends: default
|
||||
|
||||
rules:
|
||||
line-length:
|
||||
max: 120
|
||||
max: 180
|
||||
level: warning
|
||||
|
||||
ignore: |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Ansible Role: Certbot (for Let's Encrypt)
|
||||
|
||||
[](https://travis-ci.org/geerlingguy/ansible-role-certbot)
|
||||
[](https://github.com/geerlingguy/ansible-role-certbot/actions?query=workflow%3ACI)
|
||||
|
||||
Installs and configures Certbot (for Let's Encrypt).
|
||||
|
||||
@@ -12,7 +12,9 @@ Generally, installing from source (see section `Source Installation from Git`) l
|
||||
|
||||
## Role Variables
|
||||
|
||||
The variable `certbot_install_from_source` controls whether to install Certbot from Git or package management. The latter is the default, so the variable defaults to `no`.
|
||||
certbot_install_method: package
|
||||
|
||||
Controls how Certbot is installed. Available options are 'package', 'snap', and 'source'.
|
||||
|
||||
certbot_auto_renew: true
|
||||
certbot_auto_renew_user: "{{ ansible_user | default(lookup('env', 'USER')) }}"
|
||||
@@ -24,14 +26,25 @@ By default, this role configures a cron job to run under the provided user accou
|
||||
|
||||
### Automatic Certificate Generation
|
||||
|
||||
Currently there is one built-in method for generating new certificates using this role: `standalone`. Other methods (e.g. using nginx or apache and a webroot) may be added in the future.
|
||||
Currently the `standalone` and `webroot` method are supported for generating new certificates using this role.
|
||||
|
||||
**For a complete example**: see the fully functional test playbook in [molecule/default/playbook-standalone-nginx-aws.yml](molecule/default/playbook-standalone-nginx-aws.yml).
|
||||
|
||||
certbot_create_if_missing: false
|
||||
|
||||
Set `certbot_create_if_missing` to `yes` or `True` to let this role generate certs.
|
||||
|
||||
certbot_create_method: standalone
|
||||
|
||||
Set `certbot_create_if_missing` to `yes` or `True` to let this role generate certs. Set the method used for generating certs with the `certbot_create_method` variable—current allowed values include: `standalone`.
|
||||
Set the method used for generating certs with the `certbot_create_method` variable — current allowed values are: `standalone` or `webroot`.
|
||||
|
||||
certbot_testmode: false
|
||||
|
||||
Enable test mode to only run a test request without actually creating certificates.
|
||||
|
||||
certbot_hsts: false
|
||||
|
||||
Enable (HTTP Strict Transport Security) for the certificate generation.
|
||||
|
||||
certbot_admin_email: email@example.com
|
||||
|
||||
@@ -39,13 +52,14 @@ The email address used to agree to Let's Encrypt's TOS and subscribe to cert-rel
|
||||
|
||||
certbot_certs: []
|
||||
# - email: janedoe@example.com
|
||||
# webroot: "/var/www/html"
|
||||
# domains:
|
||||
# - example1.com
|
||||
# - example2.com
|
||||
# - domains:
|
||||
# - example3.com
|
||||
|
||||
A list of domains (and other data) for which certs should be generated. You can add an `email` key to any list item to override the `certbot_admin_email`.
|
||||
A list of domains (and other data) for which certs should be generated. You can add an `email` key to any list item to override the `certbot_admin_email`. When using the `webroot` creation method, a `webroot` item has to be provided, specifying which directory to use for the authentication. Make sure your webserver correctly delivers contents from this directory.
|
||||
|
||||
certbot_create_command: "{{ certbot_script }} certonly --standalone --noninteractive --agree-tos --email {{ cert_item.email | default(certbot_admin_email) }} -d {{ cert_item.domains | join(',') }}"
|
||||
|
||||
@@ -60,16 +74,27 @@ Services that should be stopped while `certbot` runs it's own standalone server
|
||||
|
||||
These services will only be stopped the first time a new cert is generated.
|
||||
|
||||
### Snap Installation
|
||||
|
||||
Beginning in December 2020, the Certbot maintainers decided to recommend installing Certbot from Snap rather than maintain scripts like `certbot-auto`.
|
||||
|
||||
Setting `certbot_install_method: snap` configures this role to install Certbot via Snap.
|
||||
|
||||
This install method is currently experimental and may or may not work across all Linux distributions.
|
||||
|
||||
#### Webroot Certificate Generation
|
||||
|
||||
When using the `webroot` creation method, a `webroot` item has to be provided for every `certbot_certs` item, specifying which directory to use for the authentication. Also, make sure your webserver correctly delivers contents from this directory.
|
||||
|
||||
### Source Installation from Git
|
||||
|
||||
You can install Certbot from it's Git source repository if desired. This might be useful in several cases, but especially when older distributions don't have Certbot packages available (e.g. CentOS < 7, Ubuntu < 16.10 and Debian < 8).
|
||||
You can install Certbot from it's Git source repository if desired with `certbot_install_method: source`. This might be useful in several cases, but especially when older distributions don't have Certbot packages available (e.g. CentOS < 7, Ubuntu < 16.10 and Debian < 8).
|
||||
|
||||
certbot_install_from_source: false
|
||||
certbot_repo: https://github.com/certbot/certbot.git
|
||||
certbot_version: master
|
||||
certbot_keep_updated: true
|
||||
|
||||
Certbot Git repository options. To install from source, set `certbot_install_from_source` to `yes`. This clones the configured `certbot_repo`, respecting the `certbot_version` setting. If `certbot_keep_updated` is set to `yes`, the repository is updated every time this role runs.
|
||||
Certbot Git repository options. If installing from source, the configured `certbot_repo` is cloned, respecting the `certbot_version` setting. If `certbot_keep_updated` is set to `yes`, the repository is updated every time this role runs.
|
||||
|
||||
certbot_dir: /opt/certbot
|
||||
|
||||
|
||||
+26
-4
@@ -6,30 +6,52 @@ certbot_auto_renew_hour: "3"
|
||||
certbot_auto_renew_minute: "30"
|
||||
certbot_auto_renew_options: "--quiet --no-self-upgrade"
|
||||
|
||||
certbot_testmode: false
|
||||
certbot_hsts: false
|
||||
|
||||
|
||||
# Parameters used when creating new Certbot certs.
|
||||
certbot_create_if_missing: false
|
||||
certbot_create_method: standalone
|
||||
certbot_admin_email: email@example.com
|
||||
|
||||
# Default webroot, overwritten by individual per-cert webroot directories
|
||||
certbot_webroot: /var/www/letsencrypt
|
||||
|
||||
certbot_certs: []
|
||||
# - email: janedoe@example.com
|
||||
# webroot: "/var/www/html/"
|
||||
# domains:
|
||||
# - example1.com
|
||||
# - example2.com
|
||||
# - domains:
|
||||
# - example3.com
|
||||
|
||||
certbot_create_command: >-
|
||||
{{ certbot_script }} certonly --standalone --noninteractive --agree-tos
|
||||
{{ certbot_script }} certonly --{{ certbot_create_method }}
|
||||
{{ '--hsts' if certbot_hsts else '' }}
|
||||
{{ '--test-cert' if certbot_testmode else '' }}
|
||||
--noninteractive --agree-tos
|
||||
--email {{ cert_item.email | default(certbot_admin_email) }}
|
||||
{{ '--webroot-path ' if certbot_create_method == 'webroot' else '' }}
|
||||
{{ cert_item.webroot | default(certbot_webroot) if certbot_create_method == 'webroot' else '' }}
|
||||
-d {{ cert_item.domains | join(',') }}
|
||||
{{ '--pre-hook /etc/letsencrypt/renewal-hooks/pre/stop_services'
|
||||
if certbot_create_standalone_stop_services
|
||||
else '' }}
|
||||
{{ '--post-hook /etc/letsencrypt/renewal-hooks/post/start_services'
|
||||
if certbot_create_standalone_stop_services
|
||||
else '' }}
|
||||
|
||||
certbot_create_standalone_stop_services:
|
||||
- nginx
|
||||
# - apache
|
||||
# - varnish
|
||||
|
||||
# To install from source (on older OSes or if you need a specific or newer
|
||||
# version of Certbot), set this variable to `yes` and configure other options.
|
||||
certbot_install_from_source: false
|
||||
# Available options: 'package', 'snap', 'source'.
|
||||
certbot_install_method: 'package'
|
||||
|
||||
# Source install configuration.
|
||||
certbot_repo: https://github.com/certbot/certbot.git
|
||||
certbot_version: master
|
||||
certbot_keep_updated: true
|
||||
|
||||
+1
-1
@@ -2,6 +2,7 @@
|
||||
dependencies: []
|
||||
|
||||
galaxy_info:
|
||||
role_name: certbot
|
||||
author: geerlingguy
|
||||
description: "Installs and configures Certbot (for Let's Encrypt)."
|
||||
company: "Midwestern Mac, LLC"
|
||||
@@ -10,7 +11,6 @@ galaxy_info:
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
- 8
|
||||
- name: Fedora
|
||||
|
||||
@@ -13,11 +13,12 @@
|
||||
changed_when: false
|
||||
|
||||
- name: Install dependencies (RedHat).
|
||||
yum: name={{ item }} state=present
|
||||
yum:
|
||||
name:
|
||||
- cronie
|
||||
- epel-release
|
||||
state: present
|
||||
when: ansible_os_family == 'RedHat'
|
||||
with_items:
|
||||
- cronie
|
||||
- epel-release
|
||||
|
||||
- name: Install cron (Debian).
|
||||
apt: name=cron state=present
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
---
|
||||
role_name_check: 1
|
||||
dependency:
|
||||
name: galaxy
|
||||
driver:
|
||||
name: docker
|
||||
lint: |
|
||||
set -e
|
||||
yamllint .
|
||||
ansible-lint
|
||||
platforms:
|
||||
- name: instance
|
||||
image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
become: true
|
||||
|
||||
vars:
|
||||
certbot_install_method: 'snap'
|
||||
certbot_auto_renew_user: root
|
||||
|
||||
pre_tasks:
|
||||
- name: Update apt cache.
|
||||
apt: update_cache=yes cache_valid_time=600
|
||||
when: ansible_os_family == 'Debian'
|
||||
changed_when: false
|
||||
|
||||
- name: Install cron (RedHat).
|
||||
yum: name=cronie state=present
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: Install cron (Debian).
|
||||
apt: name=cron state=present
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
roles:
|
||||
- geerlingguy.git
|
||||
- geerlingguy.certbot
|
||||
@@ -4,7 +4,7 @@
|
||||
become: true
|
||||
|
||||
vars:
|
||||
certbot_install_from_source: true
|
||||
certbot_install_method: 'source'
|
||||
certbot_auto_renew_user: root
|
||||
|
||||
pre_tasks:
|
||||
|
||||
@@ -4,20 +4,39 @@
|
||||
path: /etc/letsencrypt/live/{{ cert_item.domains | first | replace('*.', '') }}/cert.pem
|
||||
register: letsencrypt_cert
|
||||
|
||||
- name: Stop services to allow certbot to generate a cert.
|
||||
service:
|
||||
name: "{{ item }}"
|
||||
state: stopped
|
||||
when: not letsencrypt_cert.stat.exists
|
||||
with_items: "{{ certbot_create_standalone_stop_services }}"
|
||||
- name: Ensure pre and post hook folders exist.
|
||||
file:
|
||||
path: /etc/letsencrypt/renewal-hooks/{{ item }}
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
with_items:
|
||||
- pre
|
||||
- post
|
||||
|
||||
- name: Create pre hook to stop services.
|
||||
template:
|
||||
src: stop_services.j2
|
||||
dest: /etc/letsencrypt/renewal-hooks/pre/stop_services
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0750
|
||||
when:
|
||||
- certbot_create_standalone_stop_services is defined
|
||||
- certbot_create_standalone_stop_services
|
||||
|
||||
- name: Create post hook to start services.
|
||||
template:
|
||||
src: start_services.j2
|
||||
dest: /etc/letsencrypt/renewal-hooks/post/start_services
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0750
|
||||
when:
|
||||
- certbot_create_standalone_stop_services is defined
|
||||
- certbot_create_standalone_stop_services
|
||||
|
||||
- name: Generate new certificate if one doesn't exist.
|
||||
command: "{{ certbot_create_command }}"
|
||||
when: not letsencrypt_cert.stat.exists
|
||||
|
||||
- name: Start services after cert has been generated.
|
||||
service:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
when: not letsencrypt_cert.stat.exists
|
||||
with_items: "{{ certbot_create_standalone_stop_services }}"
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
- name: Check if certificate already exists.
|
||||
stat:
|
||||
path: /etc/letsencrypt/live/{{ cert_item.domains | first }}/cert.pem
|
||||
register: letsencrypt_cert
|
||||
|
||||
- name: Create webroot directory if it doesn't exist yet
|
||||
file:
|
||||
path: "{{ cert_item.webroot | default(certbot_webroot) }}"
|
||||
state: directory
|
||||
|
||||
- name: Generate new certificate if one doesn't exist.
|
||||
command: "{{ certbot_create_command }}"
|
||||
when: not letsencrypt_cert.stat.exists
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
- name: Ensure snapd is installed.
|
||||
package:
|
||||
name: snapd
|
||||
state: present
|
||||
register: snapd_install
|
||||
|
||||
- name: Ensure snapd is enabled.
|
||||
systemd:
|
||||
name: snapd.socket
|
||||
enabled: true
|
||||
state: started
|
||||
|
||||
- name: Enable classic snap support.
|
||||
file:
|
||||
src: /var/lib/snapd/snap
|
||||
dest: /snap
|
||||
state: link
|
||||
when: ansible_os_family != "Debian"
|
||||
|
||||
- name: Update snap after install.
|
||||
shell: snap install core; snap refresh core
|
||||
changed_when: true
|
||||
failed_when: false
|
||||
when: snapd_install is changed
|
||||
|
||||
- name: Install certbot via snap.
|
||||
snap:
|
||||
name: certbot
|
||||
classic: true
|
||||
|
||||
- name: Symlink certbot into place.
|
||||
file:
|
||||
src: /snap/bin/certbot
|
||||
dest: /usr/bin/certbot
|
||||
state: link
|
||||
ignore_errors: "{{ ansible_check_mode }}"
|
||||
|
||||
- name: Set Certbot script variable.
|
||||
set_fact:
|
||||
certbot_script: /usr/bin/certbot
|
||||
+13
-2
@@ -5,10 +5,13 @@
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- import_tasks: install-with-package.yml
|
||||
when: not certbot_install_from_source
|
||||
when: certbot_install_method == 'package'
|
||||
|
||||
- import_tasks: install-with-snap.yml
|
||||
when: certbot_install_method == 'snap'
|
||||
|
||||
- import_tasks: install-from-source.yml
|
||||
when: certbot_install_from_source
|
||||
when: certbot_install_method == 'source'
|
||||
|
||||
- include_tasks: create-cert-standalone.yml
|
||||
with_items: "{{ certbot_certs }}"
|
||||
@@ -18,5 +21,13 @@
|
||||
loop_control:
|
||||
loop_var: cert_item
|
||||
|
||||
- include_tasks: create-cert-webroot.yml
|
||||
with_items: "{{ certbot_certs }}"
|
||||
when:
|
||||
- certbot_create_if_missing
|
||||
- certbot_create_method == 'webroot'
|
||||
loop_control:
|
||||
loop_var: cert_item
|
||||
|
||||
- import_tasks: renew-cron.yml
|
||||
when: certbot_auto_renew
|
||||
|
||||
+18
-8
@@ -7,14 +7,24 @@
|
||||
name: dnf-plugins-core
|
||||
state: present
|
||||
|
||||
- name: Enable DNF module for CentOS 8+.
|
||||
shell: |
|
||||
dnf config-manager --set-enabled PowerTools
|
||||
args:
|
||||
warn: false
|
||||
register: dnf_module_enable
|
||||
changed_when: false
|
||||
- block:
|
||||
|
||||
- name: Enable DNF module for CentOS 8.3+.
|
||||
shell: |
|
||||
dnf config-manager --set-enabled powertools
|
||||
register: dnf_module_enable
|
||||
changed_when: false
|
||||
|
||||
when: ansible_facts['distribution_version'] is version('8.3', '>=')
|
||||
|
||||
- name: Enable DNF module for CentOS 8.0–8.2.
|
||||
shell: |
|
||||
dnf config-manager --set-enabled PowerTools
|
||||
register: dnf_module_enable
|
||||
changed_when: false
|
||||
|
||||
when: ansible_facts['distribution_version'] is version('8.2', '<=')
|
||||
|
||||
when:
|
||||
- ansible_os_family == 'RedHat'
|
||||
- ansible_distribution == 'CentOS'
|
||||
- ansible_distribution_major_version | int >= 8
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
|
||||
{% for item in certbot_create_standalone_stop_services %}
|
||||
echo "starting service {{ item }}"
|
||||
{% if ansible_service_mgr == 'systemd' %}
|
||||
systemctl start {{ item }}
|
||||
{% elif ansible_service_mgr == 'upstart' %}
|
||||
initctl start {{ item }}
|
||||
{% elif ansible_service_mgr == 'openrc' %}
|
||||
rc-service {{ item }} start
|
||||
{% else %}
|
||||
service {{ item }} start
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
|
||||
{% for item in certbot_create_standalone_stop_services %}
|
||||
echo "stopping service {{ item }}"
|
||||
{% if ansible_service_mgr == 'systemd' %}
|
||||
systemctl stop {{ item }}
|
||||
{% elif ansible_service_mgr == 'upstart' %}
|
||||
initctl stop {{ item }}
|
||||
{% elif ansible_service_mgr == 'openrc' %}
|
||||
rc-service {{ item }} stop
|
||||
{% else %}
|
||||
service {{ item }} stop
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
Reference in New Issue
Block a user