Registre multi-serveurs (docs/bases-donnees.yml): - Section serveurs_bd: serveurs de BD nommes (type/hote/port/groupe). - Chaque base reference un serveur nomme; la chaine de connexion derivee fait le lien appli <-> BD. L'hote n'est plus code en dur dans les roles applicatifs. Regles partagees (scripts/inventory_rules.py): - charger_bases_donnees, valider_bases, chaine_connexion (GUI et CLI s'appuient dessus). GUI (make inventaire-ui): - Vue "Bases": serveurs, bases et chaines de connexion (mot de passe masque), gestion complete (ajout/edition/retrait), endpoint POST /api/bases (valide, jeton). CLI (scripts/bases_donnees.py): - lister/verifier/ajouter-serveur/ajouter-base/retirer-*; cibles make bases et bases-verifier; registre valide dans make inventaire-verifier. Roles migres: serveurs_postgresql (filtre par serveur nomme relie a son groupe), serveurs_keycloak / serveurs_forgejo / serveurs_icinga (hote et port depuis le registre). Valide: ansible-lint (roles migres), node --check (JS), round-trips GUI et CLI. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
---
|
|
# Registre des bases de donnees applicatives Set-OPS.
|
|
#
|
|
# Patron : 1 appli -> 1 base nommee -> 1 compte proprietaire -> 1 chaine de connexion.
|
|
#
|
|
# Deux niveaux :
|
|
# serveurs_bd : les serveurs de base de donnees (un ou plusieurs), nommes.
|
|
# Le champ "groupe" relie un serveur nomme au groupe Ansible qui
|
|
# l'heberge (le role serveur cree les bases dont le serveur lui correspond).
|
|
# bases_donnees: une entree par appli, qui REFERENCE un serveur_bd nomme.
|
|
#
|
|
# La chaine de connexion se DERIVE :
|
|
# <type>://<proprietaire>:<secret>@<hote>:<port>/<base>
|
|
# Avec plusieurs serveurs de BD, c'est cette chaine (et le serveur nomme) qui fait
|
|
# le lien appli <-> base ; l'hote n'est plus code en dur dans les roles applicatifs.
|
|
#
|
|
# Le champ "secret" nomme la variable Ansible Vault contenant le mot de passe
|
|
# (jamais le mot de passe en clair). La GUI/CLI ne voient jamais le secret reel.
|
|
#
|
|
# Deux consommateurs : serveurs_postgresql (cree base + compte) et le role applicatif
|
|
# (construit sa connexion). Secret partage, source unique.
|
|
|
|
serveurs_bd:
|
|
pg-principal:
|
|
type: postgres
|
|
hote: "10.1.13.11"
|
|
port: 5432
|
|
groupe: serveurs_postgresql
|
|
|
|
bases_donnees:
|
|
keycloak:
|
|
serveur: pg-principal
|
|
base: keycloak
|
|
proprietaire: keycloak
|
|
secret: vault_bd_keycloak
|
|
icingadb:
|
|
serveur: pg-principal
|
|
base: icingadb
|
|
proprietaire: icingadb
|
|
secret: vault_bd_icingadb
|
|
forgejo:
|
|
serveur: pg-principal
|
|
base: forgejo
|
|
proprietaire: forgejo
|
|
secret: vault_bd_forgejo
|