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 ca0f95da28 Mettre les noms de roles et playbooks au singulier
serveurs_* -> serveur_, clients_ -> client_, suffixes pluriels au
singulier (serveur_web_dorsal/frontal, client_metrique, client_journal).

Renommage par tokens exacts : repertoires de roles, playbooks de groupes,
group_vars, variables internes des roles (serveur_nginx_*, conformite
ansible-lint), groupes du plan, constantes de code, docs. Faux-amis
preserves (serveurs_bd, scripts/serveurs.py, fonctions Python). Groupes
d'etat gardes au pluriel (hotes_actifs/planifies, modeles_vm).

Valide : ansible-lint 0 echec (0 var-naming), diff vide de la generation,
node --check, tous les registres. Ajout de .ansible-lint excluant docs/
(registres de donnees, pas du contenu Ansible).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 23:18:52 -04:00

56 lines
2 KiB
YAML

---
# Registre des bases de donnees applicatives Set-OPS.
#
# 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 : QUI utilise la base. Interprete selon "portee" :
# portee=application : consommateur = id d'une application (docs/applications.yml)
# portee=groupe : consommateur = groupe operationnel (base PARTAGEE)
# portee=hote : consommateur = hote de l'inventaire
# Defaut : groupe (retrocompatible).
# usage : etiquette libre (principale, partagee, ...). Une appli peut avoir
# plusieurs bases (portee/usage differents).
#
# Une application A (groupe G, hote H) recoit les bases ou :
# (portee=application ET consommateur=A) OU (portee=groupe ET consommateur=G)
# OU (portee=hote ET consommateur=H). Plusieurs DSN par application sont possibles.
#
# La chaine de connexion (DSN) se derive : <type>://<proprietaire>:<secret>@<hote>:<port>/<base>
# C'est le DSN qui lie la bonne instanciation d'application a sa base.
#
# "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: serveur_postgresql
bases_donnees:
keycloak:
serveur: pg-principal
base: keycloak
proprietaire: keycloak
secret: vault_bd_keycloak
consommateur: serveur_keycloak
portee: groupe
usage: principale
icingadb:
serveur: pg-principal
base: icingadb
proprietaire: icingadb
secret: vault_bd_icingadb
consommateur: serveur_icinga
portee: groupe
usage: principale
forgejo:
serveur: pg-principal
base: forgejo
proprietaire: forgejo
secret: vault_bd_forgejo
consommateur: serveur_forgejo
portee: groupe
usage: principale