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> |
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| tasks | ||
| templates | ||
| README.md | ||
serveurs_keycloak
SSO / IAM Keycloak (distribution Quarkus) — hub d'authentification centralisée (OIDC/SAML) pour les services Chezlepro.
Rôle
- Installe un JRE, télécharge et extrait la distribution Keycloak dans
/opt/keycloak. - Configure la base PostgreSQL via le registre
docs/bases-donnees.yml(entréekeycloak). - Publie derrière
serveurs_nginx(TLS à l'edge) :hostname,proxy-headers=xforwarded,http-enabled=true. - Secrets (mot de passe BD + admin bootstrap) dans
/etc/keycloak/keycloak.env(0640,no_log). kc.sh build --db=postgres(une fois par version) puis service systemdstart --optimized.
Premier consommateur du registre de BD
L'entrée keycloak de docs/bases-donnees.yml fait que :
serveurs_postgresqlcrée la basekeycloak+ le compte propriétairekeycloak.- Ce rôle lit la même entrée pour bâtir sa connexion (
db-url-database,db-username, mot de passe =vault_bd_keycloak).
Mot de passe partagé, source unique. Dépendance serveurs_keycloak requiert serveurs_postgresql actif déjà dans docs/dependances-groupes.yml.
Secrets requis (Vault)
serveurs_keycloak_admin_password: "{{ vault_keycloak_admin }}" # admin bootstrap
vault_bd_keycloak: "..." # mot de passe BD (partage avec postgres)
Variables principales
| Variable | Défaut | Rôle |
|---|---|---|
serveurs_keycloak_version |
26.0.7 |
Version (à vérifier/bumper sur keycloak.org/downloads) |
serveurs_keycloak_hostname |
keycloak.chezlepro.internal |
Hostname public (via nginx) |
serveurs_keycloak_db_host |
10.1.13.11 |
IP de data-01 (serveurs_postgresql) |
serveurs_keycloak_admin_user |
admin |
Admin bootstrap |
Notes / limites
- Version : à confirmer/bumper ; l'URL suit le motif officiel des releases GitHub.
- L'unité systemd est dérivée des conventions Keycloak (la doc officielle ne fournit pas d'unité) — sandboxing volontairement modéré pour ne pas casser le démarrage.
- Le site nginx publiant Keycloak se déclare côté
serveurs_nginx(serveurs_nginx_sites), pas ici. - Certificats : TLS terminé à l'edge ; aucun certificat sur Keycloak.
Prérequis
- Réseau sortant pour télécharger la distribution.
- Base PostgreSQL atteignable (dépendance
serveurs_postgresql).