jaywink.letsencrypt
Ansible LetsEncrypt
Un rol para automatizar los certificados LetsEncrypt.
Estabilidad: beta.
Versión de Ansible requerida: 2.x
¿Qué hace?
Este rol descarga el cliente Certbot, lo instala y emite o renueva un certificado para tu dominio elegido.
La funcionalidad es la siguiente:
- Probado en Ubuntu 14.04 y Debian 8, Debian 9
- Solo un dominio por rol
- Solo funciona en modo
certonly
Las solicitudes de Pull son bienvenidas para incluir más funcionalidad.
Instalación
Puedes instalar el rol directamente desde Galaxy de la siguiente manera:
ansible-galaxy install jaywink.letsencrypt
Detalles
Ubicación y versión del cliente Cerbot
Ubuntu 14.04, Debian 8
- El cliente se instalará en
/opt/certbot
como root. - Cada ejecución obtendrá el código del cliente Certbot de una versión probada. Puedes establecer una versión específica de Certbot usando la variable
letsencrypt_certbot_version
.
Debian 9
- El cliente se instalará a través de APT en la ubicación estándar de la plataforma según la última versión en los repositorios.
Cosas a saber
Una lista de servicios que se detendrán antes y se reiniciarán después de obtener un nuevo certificado puede ser configurada usando la variable
letsencrypt_pause_services
.Se utiliza el modo
certonly
, que significa que no se instalará automáticamente el servidor web.Después de emitir el certificado, lo encontrarás en
/etc/letsencrypt/live/<nombre_dominio>
Consejo: usa esto en tu configuración de Apache2, por ejemplo, en tu rol principal. ¡Solo asegúrate de no intentar iniciar Apache2 con el virtualhost activo sin que el rol LetsEncrypt se esté ejecutando primero!
SSLCertificateFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/chain.pem
¡Nota! Si este rol falla en la parte de solicitud del certificado, es posible que hayas detenido servicios, ¡ten cuidado!
Si el certificado ya ha sido solicitado antes, este rol intentará renovarlo automáticamente, si es posible. Desactiva esta funcionalidad configurando
letsencrypt_force_renew
afalse
. En este caso, no se intentará la renovación si el certificado no está listo para renovación.Un subdominio
www.
será solicitado automáticamente junto con el certificado.- Para desactivar este comportamiento, configura
letsencrypt_request_www
afalse
en tus variables.
- Para desactivar este comportamiento, configura
Requisitos
Probado con lo siguiente:
- Ubuntu 14.04 y Debian 8, Debian 9
- Apache2 y Nginx
- Ansible 2.x
Variables del Rol
Requeridas
letsencrypt_domain
- Dominio para el cual es el certificado.letsencrypt_email
- Tu correo electrónico como propietario del certificado.
Opcionales
letsencrypt_certbot_args
- Argumentos adicionales de línea de comando para pasar a Certbot, se combinarán conletsencrypt_certbot_default_args
. Consulta la documentación de Certbot para los argumentos que puedes pasar.letsencrypt_certbot_default_args
- Consultadefaults/main.yml
para ver cuáles son los argumentos predeterminados. También puedes sobreescribir todos los argumentos para Certbot, por ejemplo, para usar otro complemento, configurándolos con esta variable.letsencrypt_certbot_verbose
- Hacer que Certbot muestre salida en consola (predeterminadotrue
).letsencrypt_certbot_version
- Establecer una versión específica de Certbot, por ejemplo, una etiqueta o rama de git. Ten en cuenta que la versión más baja de Certbot que soportamos es 0.6.0. No tiene efecto en Debian 9.letsencrypt_force_renew
- Si se debe intentar la renovación siempre, por defectotrue
.letsencrypt_pause_services
- Lista de servicios para detener/iniciar mientras se llama a Certbot.letsencrypt_request_www
- Solicitarwww.
automáticamente (predeterminadotrue
).
Ejemplo de Playbook
Este rol funciona mejor cuando se incluye justo antes de tu rol principal del sitio. O se puede usar en un playbook individual, por ejemplo, como se muestra a continuación.
Este rol debe convertirse en root en el host de destino.
---
- hosts: myhost
become: yes
become_user: root
roles:
- role: ansible-letsencrypt
letsencrypt_email: [email protected]
letsencrypt_domain: example.com
letsencrypt_pause_services:
- apache2
Licencia
MIT
Información del Autor
Jason Robinson (@jaywink) - mail@jasonrobinson.me - https://jasonrobinson.me - https://twitter.com/jaywink
Un agradecimiento especial a Stefan Grönke (@gronke) por su trabajo en la expansión de este rol.
Consulta CONTRIBUTORS para ver la lista completa de contribuyentes.
ansible-galaxy install jaywink.letsencrypt