coopdevs.certbot_nginx
Certbot NGINX
Rol de Ansible simple para instalar certbot
con el plugin de NGINX en Ubuntu 16.04 y Ubuntu 18.04.
Esta rol hará:
- Agregar el repositorio PPA de
certbot
- Instalar los paquetes
certbot
ypython-certbot-nginx
- El paquete
certbot
añadirá un trabajo cron para renovación y un temporizador de systemd (Más info) - Generar certificados SSL de Let's Encrypt para el
domain_name
dado.
Advertencia
Si ya tienes Nginx instalado con un sitio configurado que apunta a archivos en /etc/letsencrypt
, la tarea de creación del certificado fallará (ejemplo).
En general, se recomienda ejecutar esta rol antes de cualquier otra rol que instale y configure Nginx.
Variables de la Rol
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
certbot_nginx_cert_name: mycert # opcional
certbot_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # opcional
certbot_nginx_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # opcional
Si se establece, el valor de certbot_nginx_cert_name
se pasará al argumento --cert-name
de certbot, que se utiliza para identificar el certificado en comandos de certbot como certbot delete
. Verás una lista de certificados identificados con este nombre al ejecutar certbot certificates
. Este nombre también se usará como las rutas de archivo para el certificado en /etc/letsencrypt/live/
.
Ejemplo de Playbook - Certificado único
# Playbook
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
Ejemplo de Playbook - Creación de múltiples certificados
También permite generar y gestionar múltiples certificados en el mismo host. Puedes definir la variable domain_names
y configurar una rol para incluir esta rol en un bucle.
# Playbook
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
letsencrypt_email: [email protected]
- role: certificates
vars:
domain_names:
- community.coopdevs.org
- forms.coopdevs.org
Crea una rol personalizada incluyendo la rol certbot_nginx
que genera los certificados:
# certificates.yml Rol
---
- name: Instalar certificados SSL
include_role:
name: vendor/coopdevs.certbot_nginx
tasks_from: certificate.yml
with_items: "{{ domain_names }}"
loop_control:
loop_var: domain_name
Debes declarar el
loop_control
para mapear la variableitem
del buclewith_item
con el valorloop_var
comodomain_name
. Consulta la documentación deloop_control
Actualizando Certificados Existentes
Si los detalles de tu sitio han cambiado desde que se creó el certificado, puedes actualizar la lista de dominios y la rol verifica la diferencia entre los dominios presentes en el certificado y la lista de dominios proporcionada para decidir si necesita renovar el certificado o no. Si deseas forzar el proceso de renovación, puedes hacerlo definiendo certbot_force_update: true
o pasando --extra-vars "certbot_force_update=true"
desde la línea de comandos.
Entorno de Pruebas de Let's Encrypt
Esta rol incluye la variable letsencrypt_staging
que por defecto está en no
. Para fines de desarrollo o depuración, puedes establecerla en yes
, por ejemplo, utilizando Pasando Variables en la Línea de Comando --extra-vars "letsencrypt_staging=yes"
.
Esto resultará en el uso del Entorno de Pruebas de Let's Encrypt y reducirá la posibilidad de encontrarse con límites de tasa.
Licencia
BSD
Información del Autor
Coopdevs http://coopdevs.org
free software for Social and Solidarity Economy
ansible-galaxy install coopdevs.certbot_nginx