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.

Acerca del proyecto

install SSL certificates

Instalar
ansible-galaxy install idiv-biodiversity.ssl_certificates
Licencia
mit
Descargas
47k