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
certbotypython-certbot-nginx - El paquete
certbotañ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_namedado.
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_controlpara mapear la variableitemdel buclewith_itemcon el valorloop_varcomodomain_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