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 json

Les 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

À propos du projet

Ansible role for managing SSL certificates bunch for multinode ETCD cluster

Installer
ansible-galaxy install cloudlabsinfra.etcd_cluster_certificates
Licence
apache-2.0
Téléchargements
592