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 33b1933a6d Rendre explicites les bindings appli<->BD (consommateur, multi-BD)
Modele:
- Chaque base porte un "consommateur" (le groupe applicatif qui l'utilise) et un
  "usage" (principale/cache...). Une application peut avoir plusieurs bases.
- Le binding appli<->base n'est plus une convention de nom mais un champ gere.

Regles partagees (inventory_rules): consommateur requis a la validation;
helper bases_du_groupe(registre, groupe).

GUI (make inventaire-ui):
- Vue "Bases": menu deroulant Consommateur + champ Usage par base -> on fait les
  connexions ici; plusieurs bases par appli supportees.
- Vue "Chaine" detaillee: chaque groupe affiche ses roles ET ses bases avec leur
  chaine de connexion (appli -> base -> serveur de BD -> hote).

CLI (bases_donnees.py): ajouter-base --consommateur --usage; lister affiche
"base <- consommateur (usage): DSN".

Roles serveurs_keycloak / serveurs_forgejo / serveurs_icinga: resolution de leur
base par consommateur (groupe), plus de cle codee en dur.

Valide: ansible-lint (roles), node --check (JS), round-trips GUI et CLI,
multi-BD verifie (serveurs_web_dorsaux -> 2 bases), make inventaire-verifier.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:44:05 -04:00

44 lines
1.4 KiB
YAML

---
# Registre des bases de donnees applicatives Set-OPS.
#
# Trois niveaux :
# serveurs_bd : les serveurs de base de donnees (un ou plusieurs), nommes.
# "groupe" relie un serveur nomme au groupe Ansible qui l'heberge.
# bases_donnees: une base = un identifiant unique -> serveur, base, proprietaire, secret.
# consommateur : le groupe applicatif qui UTILISE la base (le binding appli <-> base).
# Une appli peut avoir plusieurs bases (meme consommateur, "usage" different).
#
# La chaine de connexion se derive : <type>://<proprietaire>:<secret>@<hote>:<port>/<base>
# C'est elle, plus le couple (consommateur, base), qui fait le lien appli <-> BD.
#
# "secret" nomme une variable Ansible Vault (jamais le mot de passe en clair).
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
consommateur: serveurs_keycloak
usage: principale
icingadb:
serveur: pg-principal
base: icingadb
proprietaire: icingadb
secret: vault_bd_icingadb
consommateur: serveurs_icinga
usage: principale
forgejo:
serveur: pg-principal
base: forgejo
proprietaire: forgejo
secret: vault_bd_forgejo
consommateur: serveurs_forgejo
usage: principale