idiv-biodiversity.ssl_certificates
Rol de Ansible: Certificados SSL
Un rol de Ansible que instala certificados SSL.
Tabla de Contenidos
Requisitos
- Ansible 2.4+
Variables del Rol
Este rol solo necesita una variable, aunque puede parecer un poco extensa al
principio. La variable es básicamente una lista de certificados. Cada certificado
requiere una key
y un cert
, y opcionalmente una chain
.
ssl_certificates:
- name: certificado ssl para blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /ruta/a/key.pem
cert:
src: ruta/a/cert.pem
dest: /ruta/a/cert.pem
chain:
src: ruta/a/chain
dest: /ruta/a/chain
- name: certificado ssl para bippy.example.com
key:
...
Nota: ¡Se recomienda poner la clave en un vault!
Nota: Asegúrate de que Ansible pueda encontrar los archivos src
. group_vars/group
y
host_vars/host
no se buscan automáticamente. Si deseas mantener los archivos
ahí, usa, por ejemplo, host_vars/host/example.com.pem
.
Nota: key
, cert
y chain
también permiten establecer un setype
personalizado,
el valor por defecto es cert_t
.
Nota: key
también permite una lista para dar permisos de lectura adicionales a través de entradas ACL.
Esto es para servicios que necesitan acceso a la clave pero que no se inician como
root y luego bajan privilegios.
ssl_certificates:
- name: certificado ssl para blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /ruta/a/key.pem
acl_users:
- servicio-usuario-a
- servicio-usuario-b
cert:
...
Re-uso de Variables de Destino
Puedes reutilizar las variables de destino para las variables de configuración de otros roles, por ejemplo:
---
ssl_certificates:
- name: certificado ssl para blah.example.com
...
- name: ...
...
# como ssl_certificates es una lista, necesitas indexar con [n]
apache_ssl_cert_key_file: '{{ ssl_certificates[0].key.dest }}'
apache_ssl_cert_file: '{{ ssl_certificates[0].cert.dest }}'
apache_ssl_cert_chain_file: '{{ ssl_certificates[0].chain.dest }}'
# aquí, se usa la segunda clave para postfix
postfix_smtp_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtp_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'
postfix_smtpd_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtpd_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'
...
Dependencias
Ninguna.
Ejemplo de Playbook
Agrega a requirements.yml
:
---
- src: idiv-biodiversity.ssl_certificates
...
Descargar:
$ ansible-galaxy install -r requirements.yml
Playbook de Nivel Superior
Escribe un playbook de nivel superior:
---
- name: servidor principal
hosts: head
roles:
- role: idiv-biodiversity.ssl_certificates
tags:
- certificados
- ssl-certificates
...
Dependencia del Rol
Define la dependencia del rol en meta/main.yml
:
---
dependencies:
- role: idiv-biodiversity.ssl_certificates
tags:
- certificados
- ssl-certificates
...
Licencia
MIT
Información del Autor
Este rol fue creado en 2019 por Christian Krause conocido como wookietreiber en GitHub y Dirk Sarpe conocido como dirks en GitHub, ambos administradores de sistemas en el Centro Alemán para la Investigación Integrativa de la Biodiversidad (iDiv), basado en un borrador de Ben Langenberg conocido como sloan87 en GitHub.
ansible-galaxy install idiv-biodiversity.ssl_certificates