This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/docs/bases-donnees.yml
Daniel Allaire 25d0c73275 Gerer les bases de donnees par chaines de connexion (GUI + CLI)
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>
2026-06-22 19:14:12 -04:00

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