cloudlabsinfra.etcd_cluster_certificates
ansible-etcd-cluster-certificates
Rôle Ansible pour créer et gérer des certificats SSL sur une configuration ETCD à un ou plusieurs nœuds. CFSSL est désormais le seul fournisseur de certificats pris en charge. Lisez plus sur le support TLS d'ETCD dans le modèle de sécurité de transport et sur la génération de certificats auto-signés.
Le rôle génère le groupe de certificats suivant sur chaque hôte :
# ls -1 /etc/ssl/private
ca-config.json
ca-csr.json
ca-key.pem
ca.pem
client-key.pem
client.csr
client.json
client.pem
peer-key.pem
peer.csr
peer.json
peer.pem
server-key.pem
server.csr
server.json
server.pem
Exigences
- Les binaires CFSSL ne sont pas fournis avec ce rôle et doivent être installés en utilisant d'autres rôles ou manuellement (ce n'est pas recommandé).
- Le package
iproute2
sur les systèmes de type Debian est requis pour collecter des informations réseau, mais il peut ne pas être fourni par défaut dans les installations de base (ou dans les conteneurs).
Variables du rôle
Toutes les variables sont définies par défaut dans defaults/main.yml et peuvent être remplacées.
Nom | Valeur par défaut | Description |
---|---|---|
etcd_cert_user |
root | Utilisateur propriétaire du certificat |
etcd_cert_group |
root | Groupe propriétaire du certificat |
etcd_cert_dir |
/etc/ssl/private/ | Répertoire pour stocker les certificats |
etcd_cert_init_ca_node |
false | Nœud initial pour générer la paire de certificats CA et la distribuer aux autres nœuds. Cela doit être le seul dans l'ensemble du play |
etcd_cert_ca_cert_remote_path |
- | Un chemin vers le certificat CA sur le nœud distant (pas dans l'hôte du play Ansible). Le certificat CA doit être copié sur le nœud distant à l'avance. |
etcd_cert_ca_key_remote_path |
- | Un chemin vers la clé CA sur le nœud distant (pas dans l'hôte du play Ansible). La clé CA doit être copiée sur le nœud distant à l'avance. |
etcd_cert_expiry |
43800h | Durée d'expiration du certificat en heures |
etcd_cert_ca_config |
Voir defaults/main.yml | Configuration CA avec tous les profils de certificat requis. Les certificats doivent inclure les extensions de certificat X509v3 appropriées selon le type d'utilisation (client, serveur ou pair). Lisez-en plus sur le modèle de sécurité de transport et la référence des extensions de certificat X.509 v3 standard |
etcd_cert_ca_csr |
Voir defaults/main.yml | Demande de signature de certificat (CSR) CA |
etcd_cert_matrix |
Voir defaults/main.yml | Une liste avec trois champs obligatoires : - profile_name - nom du profil de certificat à partir de la variable etcd_cert_ca_config - output_name - noms de fichiers de certificats de sortie- csr - un SCR au format yaml, sera converti en jsonLes noms de fichiers de sortie seront les suivants : {{output_name}}-key.pem {{output_name}}.csr {{output_name}}.pem |
Dépendances
Vous pouvez utiliser n'importe quel rôle Ansible pour installer les binaires CFSSL, mais nous vous recommandons les suivants :
Exemple de Playbook
Vous pouvez également trouver des exemples d'utilisation du rôle dans les playbooks de convergence du répertoire molecule/
. Voici un autre exemple :
- hosts: all
become: true
roles:
- { role: andrewrothstein.cfssl }
- { role: ansible-etcd-cluster-certificates }
Et aussi requirements.yml
:
- name: andrewrothstein.cfssl
- name: ansible-etcd-cluster-certificates
scm: git
src: https://github.com/cloud-labs-infra/ansible-etcd-cluster-certificates.git
Licence
Apache 2.0
Informations sur l'auteur
Rôles partagés par Cloud Labs
Ansible role for managing SSL certificates bunch for multinode ETCD cluster
ansible-galaxy install cloudlabsinfra.etcd_cluster_certificates