idiv-biodiversity.ssl_certificates

Rôle Ansible : Certificats SSL

Un rôle Ansible qui installe des certificats SSL.

Table des Matières

Exigences

  • Ansible 2.4+

Variables du Rôle

Ce rôle nécessite une seule variable, bien que celle-ci paraisse un peu verbeuse au début. La variable est en fait une liste de certificats. Chaque certificat nécessite une clé et un certificat, et éventuellement une chaîne.

ssl_certificates:
  - name: certificat ssl pour blah.example.com
    key:
      content: '{{ vault_ssl_certificate_key }}'
      dest: /chemin/vers/key.pem
    cert:
      src: chemin/vers/cert.pem
      dest: /chemin/vers/cert.pem
    chain:
      src: chemin/vers/chain
      dest: /chemin/vers/chain
  - name: certificat ssl pour bippy.example.com
    key:
      ...

Remarque : Il est recommandé de mettre la clé dans un coffre !

Remarque : Assurez-vous qu’Ansible peut trouver les fichiers src. Les fichiers group_vars/group et host_vars/host ne sont pas automatiquement recherchés. Si vous souhaitez conserver les fichiers là, utilisez par exemple host_vars/host/example.com.pem.

Remarque : key, cert et chain permettent également de définir un setype personnalisé, la valeur par défaut est cert_t.

Remarque : key permet également une liste pour donner des autorisations supplémentaires via des entrées ACL. Ceci est pour les services qui ont besoin d'accéder à la clé et qui ne démarrent pas en tant que root puis abaissent les privilèges.

ssl_certificates:
  - name: certificat ssl pour blah.example.com
    key:
      content: '{{ vault_ssl_certificate_key }}'
      dest: /chemin/vers/key.pem
      acl_users:
        - service-user-a
        - service-user-b
    cert:
      ...

Réutiliser les Variables de Destination

Vous pouvez réutiliser les variables de destination pour les variables de configuration d'autres rôles, par exemple :

---

ssl_certificates:
  - name: certificat ssl pour blah.example.com
    ...
  - name: ...
    ...

# Comme ssl_certificates est une liste, vous devez indexer avec [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 }}'

# ici, la deuxième clé est utilisée pour 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 }}'

...

Dépendances

Aucune.

Exemple de Playbook

Ajoutez à requirements.yml :

---

- src: idiv-biodiversity.ssl_certificates

...

Téléchargez :

$ ansible-galaxy install -r requirements.yml

Playbook de Haut Niveau

Écrivez un playbook de haut niveau :

---

- name: serveur principal
  hosts: head

  roles:
    - role: idiv-biodiversity.ssl_certificates
      tags:
        - certificats
        - certificats-ssl

...

Dépendance de Rôle

Définissez la dépendance de rôle dans meta/main.yml :

---

dependencies:

  - role: idiv-biodiversity.ssl_certificates
    tags:
      - certificats
      - certificats-ssl

...

Licence

MIT

Informations sur l'Auteur

Ce rôle a été créé en 2019 par Christian Krause, alias wookietreiber sur GitHub et Dirk Sarpe, alias dirks sur GitHub, tous deux administrateurs systèmes au Centre Allemand pour la Recherche Intégrative sur la Biodiversité (iDiv), basé sur un projet de Ben Langenberg, alias sloan87 sur GitHub.

À propos du projet

install SSL certificates

Installer
ansible-galaxy install idiv-biodiversity.ssl_certificates
Licence
mit
Téléchargements
47k