serveurs_nginx derive ses vhosts de docs/domaines.yml (bloc exposition) :
pour chaque exposition web ciblant cet edge, un server block est genere
(expositions.conf.j2). Amont = entree 'amont' explicite, sinon
http://<IP interne de la cible>:<port> resolu depuis l'inventaire. Une
exposition non resolvable (cible sans hote actif, ou sans port) est listee
mais non publiee.
- defaults : serveurs_nginx_groupe (edge cible), serveurs_nginx_publier_expositions.
- Les sites declares a la main coexistent.
- Ajout du port 3000 a l'exposition forge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Registre declaratif docs/domaines.yml pour la publication externe des
hostnames, symetrique de docs/bases-donnees.yml. Modele d'autorite :
primaire cache + secondaires. Le bloc « exposition » est le binding
nom public -> service interne (cible) -> edge, destine a trois
consommateurs (zone publique, vhosts nginx, ACME).
- inventory_rules.py : charger_domaines, valider_domaines,
fqdn_exposition, expositions_du_groupe, AUTORITES_DNS.
- scripts/domaines.py : CLI miroir (lister / verifier).
- Makefile : cibles domaines / domaines-verifier + validation dans
inventaire-verifier.
Premiere entree reelle : forge.alliance-boreale.ca -> serveurs_forgejo.
Secondaires, mail et DNSSEC laisses a renseigner (structurel, pas
encore operationnel ; l'interne chezlepro.internal n'est pas touche).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Acter dans les docs d'autorite que Set-OPS ne se limite plus a
l'exploitation mais definit et construit l'ecosysteme numerique
souverain de Chezlepro Inc.
- AGENTS.md : nouvelle section « Mission et identite » (piliers,
proprietes visees, nuances honnetes : pas auto-repare, defini avant
deploiement, registres = source unique).
- README.md : section « Mission » + « Domaines prevus » rationalise en
« Portee transverse » (retire ce que les piliers couvrent deja).
- CHANGELOG.md : entree du 2026-06-22.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
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>