coopdevs.certbot_nginx
Certbot NGINX 
Rôle Ansible simple pour installer certbot
avec le plugin NGINX sur Ubuntu 16.04 et Ubuntu 18.04.
Ce rôle va :
- Ajouter le dépôt PPA de
certbot
- Installer les paquets
certbot
etpython-certbot-nginx
- Le paquet
certbot
ajoutera une tâche cron pour le renouvellement et un timer systemd (Plus d'infos) - Générer des certificats SSL Let's Encrypt pour le
nom_de_domaine
donné.
Avertissement
Si vous avez déjà Nginx installé avec un site configuré pointant vers des fichiers dans /etc/letsencrypt
, la création du certificat échouera (exemple).
En général, il est recommandé d'exécuter ce rôle avant tout autre rôle installant et configurant Nginx.
Variables de rôle
nom_de_domaine: www.mondomaine.io
email_letsencrypt: [email protected]
nom_certificat_certbot_nginx: moncertificat # optionnel
version_certbot: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # optionnel
version_certbot_nginx: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # optionnel
Si défini, la valeur de nom_certificat_certbot_nginx
sera passée à l'argument --cert-name
de certbot, qui est utilisé pour identifier le certificat dans les commandes certbot comme certbot delete
. Vous verrez une liste des certificats identifiés avec ce nom en exécutant certbot certificates
. Ce nom sera également utilisé comme chemins de fichiers pour le certificat dans /etc/letsencrypt/live/
.
Exemple de Playbook - Certificat unique
# Playbook
- hosts: serveurs
roles:
- role: coopdevs.certbot_nginx
vars:
nom_de_domaine: www.mondomaine.io
email_letsencrypt: [email protected]
Exemple de Playbook - Création de plusieurs certificats
Permet aussi de générer et gérer plusieurs certificats sur le même hôte.
Vous pouvez définir la variable noms_de_domaines
et configurer un rôle pour inclure ce rôle dans une boucle.
# Playbook
- hosts: serveurs
roles:
- role: coopdevs.certbot_nginx
vars:
email_letsencrypt: [email protected]
- role: certificats
vars:
noms_de_domaines:
- communauté.coopdevs.org
- formulaires.coopdevs.org
Créer un rôle personnalisé incluant le rôle certbot_nginx
qui génère les certificats :
# rôle certificats.yml
---
- name: Installer des certificats SSL
include_role:
name: vendor/coopdevs.certbot_nginx
tasks_from: certificat.yml
with_items: "{{ noms_de_domaines }}"
loop_control:
loop_var: nom_de_domaine
Vous devez déclarer le
loop_control
pour mapper la variableitem
de la bouclewith_item
avec la valeur deloop_var
commenom_de_domaine
. Voir la doc deloop_control
Mise à jour des certificats existants
Si les détails de votre site ont changé depuis la création du certificat, vous pouvez mettre à jour la liste des domaines et le rôle vérifiera la différence entre les domaines présents dans le certificat et la liste des domaines fournie, et décidera s'il faut renouveler le certificat ou non. Si vous souhaitez forcer le processus de renouvellement, vous pouvez le faire en définissant certbot_force_update: true
ou en passant --extra-vars "certbot_force_update=true"
via la ligne de commande.
Environnement de staging Let's Encrypt
Ce rôle inclut la variable letsencrypt_staging
qui est par défaut à non
. À des fins de développement ou de débogage, on peut la définir à oui
, par exemple en passant des variables sur la ligne de commande --extra-vars "letsencrypt_staging=yes"
Cela entraînera l'utilisation de l'environnement de staging de Let's Encrypt et réduira les chances de rencontrer des limites de taux.
Licence
BSD
Informations sur l'auteur
Coopdevs http://coopdevs.org
free software for Social and Solidarity Economy
ansible-galaxy install coopdevs.certbot_nginx