trombik.cfssl
trombik.cfssl
Rôle ansible
pour cfssl
. Le serveur API (cfssl serve
) est supporté.
Pour tous les utilisateurs
Comme peu de distributions prennent en charge le serveur API dans leurs paquets, les variables de rôle cfssl_db_*
peuvent changer.
Pour exécuter cfssl
en tant que serveur, votre paquet de distribution doit prévoir un script de démarrage et d'autres modifications au paquet. À ma connaissance, celui d'Ubuntu ne le fait pas. Ainsi, la prise en charge du serveur API n'est pas mise en œuvre pour les variantes Debian.
Exigences
Aucune
Variables de rôle
Variable | Description | Par défaut |
---|---|---|
cfssl_user |
nom d'utilisateur de cfssl |
{{ __cfssl_user }} |
cfssl_group |
nom du groupe de cfssl |
{{ __cfssl_group }} |
cfssl_package |
nom du paquet de cfssl |
{{ __cfssl_package }} |
cfssl_extra_packages |
liste des paquets supplémentaires à installer | [] |
cfssl_ca_root_dir |
chemin vers le répertoire CA racine | {{ __cfssl_ca_root_dir }} |
cfssl_ca_secret_key_file |
chemin vers le fichier clé secrète racine | {{ cfssl_ca_root_dir }}/ca-key.pem |
cfssl_ca_public_key_file |
chemin vers le fichier clé publique racine | {{ cfssl_ca_root_dir }}/ca.pem |
cfssl_ca_csr_file |
chemin vers le fichier JSON CSR de la CA racine | {{ cfssl_ca_root_dir }}/ca.csr |
cfssl_ca_csr_config |
contenu du fichier de configuration cfssl_ca_csr_config_file |
{} |
cfssl_ca_config_file |
chemin vers le fichier de configuration de la CA en JSON | {{ cfssl_ca_root_dir }}/ca-config.json |
cfssl_ca_csr_config_file |
chemin vers le fichier de configuration CSR de la CA en JSON | "{{ cfssl_ca_root_dir }}/ca-csr.json" |
cfssl_ca_config |
contenu du fichier de configuration de la CA | {} |
cfssl_certs_dir |
chemin vers le répertoire pour garder les certificats signés | {{ cfssl_ca_root_dir }}/certs |
cfssl_service |
nom du service de cfssl |
cfssl |
cfssl_db_config |
Configuration de la base de données en YAML. Voir certdb/README.nd dans le code source pour plus de détails. | {} |
cfssl_db_type |
Le type de base de données. La valeur supportée est uniquement sqlite . Si précisé, le rôle exécute des tâches spécifiques pour la base de données et démarre cfssl en tant que serveur. |
"" |
cfssl_db_dir |
Chemin vers le répertoire de la base de données | {{ __cfssl_db_dir }} |
cfssl_db_sqlite_bin |
Nom du fichier de commande sqlite |
sqlite3 |
cfssl_db_sqlite_database_file |
Chemin vers le fichier de base de données sqlite |
{{ cfssl_db_dir }}/certdb.db |
cfssl_db_sqlite_sql_file_dir |
Chemin vers un répertoire où les fichiers SQL sont stockés. | {{ __cfssl_db_sqlite_sql_file_dir }} |
cfssl_db_migration_dir |
Chemin vers le répertoire de migration de la base de données | {{ cfssl_ca_root_dir }}/goose/{{ cfssl_db_type }} |
cfssl_db_migration_config |
Configuration pour la migration de la base de données | {} |
cfssl_db_migration_environment |
Environnement pour la migration de la base de données | development |
cfssl_flags |
Options supplémentaires pour le script de démarrage | "" |
cfssl_certs |
liste des certificats à signer (voir ci-dessous) | "" |
cfssl_certs
Ceci est une liste de dictionnaires. Un élément représente un CSR.
Clé | Description | Obligatoire ? |
---|---|---|
name |
nom de fichier relatif depuis cfssl_certs_dir |
oui |
SAN |
liste des noms alternatifs pour le sujet | non |
profile |
nom du profil à utiliser lors de la signature | oui |
json |
contenu du fichier JSON de demande au format YAML | oui |
owner |
Nom d'utilisateur Unix du propriétaire du fichier de clé privée (par défaut cfssl_user ) |
non |
Inclusion de trombik.cfssl
Vous pouvez inclure le rôle dans vos tâches ou rôles. Utilisez vars
pour définir des variables de rôle spécifiques par vars
.
- name: Inclure le rôle trombik.cfssl
include_role:
name: trombik.cfssl
vars:
cfssl_extra_packages:
- zsh
Cependant, lorsque vous souhaitez passer une seule variable qui inclut les variables de rôle, vous devez passer votre variable à une variable de pont spéciale, cfssl_vars
.
- name: Inclure le rôle trombik.cfssl
include_role:
name: trombik.cfssl
vars:
cfssl_vars: "{{ my_variable }}"
L'exemple suivant NE fonctionne PAS :
- name: Inclure le rôle trombik.cfssl
include_role:
name: trombik.cfssl
vars: "{{ my_variable }}"
voir tests/serverspec/intermediate.yml, qui inclut le rôle plusieurs fois pour créer des CAs intermédiaires.
Debian
Variable | Par défaut |
---|---|
__cfssl_user |
cfssl |
__cfssl_group |
cfssl |
__cfssl_package |
golang-cfssl |
__cfssl_ca_root_dir |
/etc/cfssl |
__cfssl_db_dir |
/var/lib/cfssl |
__cfssl_db_sqlite_sql_file_dir |
"" |
FreeBSD
Variable | Par défaut |
---|---|
__cfssl_user |
cfssl |
__cfssl_group |
cfssl |
__cfssl_package |
security/cfssl |
__cfssl_ca_root_dir |
/usr/local/etc/cfssl |
__cfssl_db_dir |
/var/db/cfssl |
__cfssl_db_sqlite_sql_file_dir |
/usr/local/share/cfssl/certdb/sqlite/migrations |
OpenBSD
Variable | Par défaut |
---|---|
__cfssl_user |
_cfssl |
__cfssl_group |
_cfssl |
__cfssl_package |
cfssl |
__cfssl_ca_root_dir |
/etc/cfssl |
__cfssl_db_dir |
/var/db/cfssl |
__cfssl_db_sqlite_sql_file_dir |
/usr/local/share/cfssl/certdb/sqlite/migrations |
Dépendances
Aucune
Exemple de Playbook
Cet exemple gère cfssl
et signe quelques certificats.
Pour un exemple de serveur API, voir tests/serverspec/api.yml.
Pour un exemple de plusieurs CAs intermédiaires sous une CA racine, voir tests/serverspec/intermediate.yml.
---
- hosts: localhost
roles:
- role: ansible-role-cfssl
vars:
cfssl_certs:
- name: agent1.example.com.json
SAN: []
profile: agent
owner: nobody
json:
CN: agent1.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-1.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.1
- backend-1
profile: backend
json:
CN: backend-1.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-2.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.2
- backend-2
profile: backend
json:
CN: backend-2.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
- name: backend-3.example.com.json
SAN:
- localhost
- 127.0.0.1
- 10.0.0.3
- backend-3
profile: backend
json:
CN: backend-3.example.com
hosts:
- ""
key:
algo: rsa
size: 2048
cfssl_ca_config:
signing:
default:
expiry: 17520h
usages:
- signing
- key encipherment
- client auth
profiles:
backend:
expiry: 4320h
usages:
- signing
- key encipherment
- server auth
agent:
expiry: 4320h
usages:
- signing
- key encipherment
- client auth
cfssl_ca_csr_config:
CN: Sensu Test CA
key:
algo: rsa
size: 2048
Licence
Copyright (c) 2020 Tomoyuki Sakurai <[email protected]>
La permission d'utiliser, copier, modifier et distribuer ce logiciel pour toute
finalité, avec ou sans frais, est par la présente accordée, à condition que le
mention de copyright ci-dessus et cette mention de permission apparaissent dans toutes les copies.
LE LOGICIEL EST FOURNI "TEL QUEL" ET L'AUTEUR DÉCLINE TOUTE GARANTIE
CONCERNANT CE LOGICIEL, Y COMPRIS TOUTE GARANTIE IMPLICITE DE
QUALITÉ MARCHANDE ET D'ADAPTABILITÉ. EN AUCUN CAS, L'AUTEUR NE SAURAIT ÊTRE TENU RESPONSABLE DE
TOUS DÉGÂTS SPÉCIAUX, DIRECTS, INDIRECTS OU CONSÉCUTIFS OU DE TOUS DÉGÂTS
QUELS QU'ILS SOIENT RÉSULTANT DE LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS, QUE CE SOIT EN
RAISON D'UN CONTRAT, D'UNE NÉGLIGENCE OU D'AUTRES ACTES ILLEGAUX, NÉCESSITAIRE
À L'UTILISATION OU À LA PERFORMANCE DE CE LOGICIEL.
Informations sur l'auteur
Tomoyuki Sakurai y@trombik.org
Ce README a été créé par qansible
ansible-galaxy install trombik.cfssl