`ansible-vault` chiffre avec la cle de voute de l'exploitant — le mot de passe n'a jamais transite, seul son chemin. Les valeurs sont tirees au hasard (40 caracteres) et n'ont ete affichees nulle part. La voute est ignoree par git : seul le gabarit est versionne. CAS PARTICULIER, `vault_backup_ssh_privkey` : une VRAIE paire de cles ed25519 a ete generee. La privee est en voute ; la PUBLIQUE est dans cle-publique-sauvegarde.txt, a poser sur le depot restic le jour venu. Une cle publique n'est pas un secret. DEUX SECRETS MANQUENT DELIBEREMENT — `proxmox_api_token_id` et `_secret`. Ils n'ont pas le prefixe `vault_` et echappaient au reperage : le gabarit les nomme desormais. Ils doivent etre CREES DANS PROXMOX, propres a patient 0 (Datacenter > Permissions > API Tokens). Recopier le jeton d'un autre tenant leur donnerait la meme clef, et on ne pourrait plus en revoquer un sans revoquer l'autre. P18 refuse donc encore patient 0, et c'est le comportement voulu : la preuve attend une action humaine, elle ne l'invente pas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
51 lines
3.3 KiB
Text
51 lines
3.3 KiB
Text
---
|
|
# GABARIT de voute de patient 0 — des NOMS, jamais de valeurs.
|
|
#
|
|
# La voute reelle (group_vars/all/vault.yml, chiffree) se cree a la main :
|
|
# ansible-vault create inventories/production/group_vars/all/vault.yml
|
|
# Son mot de passe ne vit NI ici, NI dans aucun depot : c'est le seul objet que la
|
|
# reproduction exige d'un humain. Le mettre dans la forge reviendrait a enfermer la
|
|
# cle dans le coffre.
|
|
#
|
|
# P18 confronte ce gabarit aux secrets que le plan exige, puis la voute reelle a ce
|
|
# gabarit. Une cle qui manque ici passe inapercue jusqu'au deploiement.
|
|
|
|
# --- Exiges par des roles que patient 0 DEPLOIE ---
|
|
vault_backup_ssh_privkey: "" # role client_backup
|
|
vault_bd_forgejo: "" # base 'forgejo'
|
|
vault_forgejo_admin: "" # role serveur_forgejo
|
|
vault_forgejo_internal_token: "" # role serveur_forgejo
|
|
vault_forgejo_oidc: "" # role serveur_forgejo
|
|
vault_forgejo_secret_key: "" # role serveur_forgejo
|
|
vault_openldap_admin: "" # role amorcage_acces (playbook serveur_openldap.yml)
|
|
vault_postgresql_keycloak: "" # role serveur_postgresql
|
|
vault_redis: "" # role serveur_redis
|
|
vault_restic_password: "" # role client_backup
|
|
vault_step_ca_password: "" # role serveur_step_ca
|
|
vault_step_ca_provisioner_password: "" # role client_pki
|
|
|
|
# --- Exiges par le harnais, pour des services que patient 0 NE DEPLOIE PAS ---
|
|
# Ces references vivent dans des roles que patient 0 installe (ex. serveur_backup
|
|
# pousse ses resultats vers Icinga, serveur_postgresql connait les bases des
|
|
# autres). Le perimetre est donc plus large que la flotte : meme question de
|
|
# cadrage que celle corrigee sur P32 le 2026-08-20. Les laisser vides tant que le
|
|
# service correspondant n'existe pas.
|
|
vault_grafana_admin: "" # role serveur_grafana (playbook serveur_grafana.yml)
|
|
vault_grafana_oidc: "" # role serveur_grafana (playbook serveur_grafana.yml)
|
|
vault_icinga_api_depot: "" # role serveur_backup (playbook serveur_backup.yml)
|
|
vault_keycloak_admin: "" # role serveur_keycloak (playbook serveur_keycloak.yml)
|
|
vault_nextcloud_admin: "" # role serveur_nextcloud (playbook serveur_nextcloud.yml)
|
|
vault_nextcloud_oidc: "" # role serveur_nextcloud (playbook serveur_nextcloud.yml)
|
|
vault_oauth2_cookie: "" # role serveur_oauth2_proxy (playbook serveur_oauth2_proxy.yml)
|
|
vault_sysadmin_amorcage: "" # role amorcage_acces (playbook serveur_openldap.yml)
|
|
|
|
# --- Acces au CLUSTER, exiges hors motif `vault_` ---
|
|
# Ces deux-la ne commencent pas par `vault_` et echappent donc au reperage automatique :
|
|
# c'est P18 qui les exige nommement. Ils ouvrent l'API Proxmox pour cloner les VM.
|
|
#
|
|
# A CREER DANS PROXMOX, propre a patient 0 : Datacenter > Permissions > API Tokens.
|
|
# Un jeton PAR TENANT, revocable seul — recopier celui d'un autre tenant reviendrait a
|
|
# leur donner la meme clef, et a ne plus pouvoir en retirer un sans retirer l'autre.
|
|
# Les poser ensuite : ansible-vault edit inventories/production/group_vars/all/vault.yml
|
|
proxmox_api_token_id: ""
|
|
proxmox_api_token_secret: ""
|