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>
44 lines
1.4 KiB
YAML
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
|