94 lines
2 KiB
Markdown
94 lines
2 KiB
Markdown
|
|
# Vault Ansible
|
|||
|
|
|
|||
|
|
Ce répertoire contient les **secrets chiffrés** utilisés par Ansible pour l’écosystème de l’Alliance Boréale.
|
|||
|
|
|
|||
|
|
## Rôle de ce répertoire
|
|||
|
|
|
|||
|
|
On y place les variables sensibles, par exemple :
|
|||
|
|
|
|||
|
|
- mots de passe applicatifs
|
|||
|
|
- secrets PostgreSQL
|
|||
|
|
- clés API
|
|||
|
|
- jetons d’intégration
|
|||
|
|
- secrets Keycloak / Forgejo / PowerDNS
|
|||
|
|
- mots de passe de comptes techniques
|
|||
|
|
|
|||
|
|
Ces fichiers sont destinés à être utilisés avec **Ansible Vault**.
|
|||
|
|
|
|||
|
|
## Fichiers typiques
|
|||
|
|
|
|||
|
|
Exemples :
|
|||
|
|
|
|||
|
|
- `production.yml`
|
|||
|
|
- `production-phase2.yml`
|
|||
|
|
|
|||
|
|
Des fichiers d’exemple non sensibles peuvent aussi exister :
|
|||
|
|
|
|||
|
|
- `production.yml.example`
|
|||
|
|
- `production-phase2.yml.example`
|
|||
|
|
|
|||
|
|
Les fichiers `*.example` servent de gabarits et **ne doivent contenir aucun vrai secret**.
|
|||
|
|
|
|||
|
|
## Commandes utiles
|
|||
|
|
|
|||
|
|
### Créer un nouveau fichier chiffré
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-vault create vault/production.yml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Modifier un fichier chiffré
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-vault edit vault/production.yml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Voir un fichier chiffré
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-vault view vault/production.yml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Chiffrer un fichier existant
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-vault encrypt vault/production.yml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Utilisation dans les playbooks
|
|||
|
|
|
|||
|
|
Exemple :
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-playbook playbooks/site.yml --ask-vault-pass
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Ou avec un fichier de mot de passe :
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ansible-playbook playbooks/site.yml --vault-password-file ~/.ansible/vault-pass.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Discipline minimale
|
|||
|
|
|
|||
|
|
- Ne jamais committer de secret en clair.
|
|||
|
|
- Ne jamais renommer un fichier `.example` en fichier réel sans le chiffrer.
|
|||
|
|
- Garder les secrets regroupés par environnement ou par phase logique.
|
|||
|
|
- Préférer des noms explicites.
|
|||
|
|
- Éviter de mélanger secrets de prod et secrets de labo dans le même fichier.
|
|||
|
|
|
|||
|
|
## Convention recommandée
|
|||
|
|
|
|||
|
|
- `production.yml` : secrets communs de production
|
|||
|
|
- `production-phase2.yml` : secrets propres aux services phase 2
|
|||
|
|
- autres fichiers : seulement si un découpage clair est utile
|
|||
|
|
|
|||
|
|
## Rappel important
|
|||
|
|
|
|||
|
|
Le dépôt peut contenir :
|
|||
|
|
|
|||
|
|
- la structure,
|
|||
|
|
- les exemples,
|
|||
|
|
- les références de variables,
|
|||
|
|
|
|||
|
|
mais **jamais les secrets en clair**.
|