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.
ansible-galaxy install idiv-biodiversity.ssl_certificates