Le socle pose l'un de DEUX fichiers dans /etc/nftables.conf : le ruleset derive (table setops_flux) s'il existe, sinon un gabarit de repli plat (table setops_filter) qui n'ouvre que le 22. Ce sont des ALTERNATIVES, jamais des couches. Mais le rechargement est `nft -f`, qui AJOUTE sans purger, et le fichier derive retirait setops_flux — jamais setops_filter. Un hote passe du repli au derive gardait donc DEUX chaines input sur le meme hook, toutes deux en policy drop. Le paquet traverse les deux : seule l'intersection de leurs accept passait. Symptome parfaitement trompeur : AC debout, 8443 en ecoute, regle posee et acceptante, ICMP entre les deux VM a 0,15 ms — et step ca bootstrap qui expire. Il a fallu lire le ruleset entier pour voir la seconde table. Le fichier derive retire desormais les DEUX tables (le repli portait deja flush ruleset). Pas de flush ruleset cote derive : choix du depot pour ne pas detruire de tables etrangeres, respecte. Ce qui l'avait rendu possible : `make reconstruire` ne generait JAMAIS les flux. `make flux` en est maintenant la premiere etape. Et `no_log` a masque la cause trois fois dans la journee — dont au terme d'un deploiement de 157 taches. Les taches concernees extraient desormais le verdict a part (ce qui a echoue, quel code, quel message) sans toucher aux en-tetes. Une garde qui protege un secret ne doit pas emporter le diagnostic. Verifie : TLS OK depuis infra-dns-01 vers l'AC, une seule table nftables, 13/14 hotes deployes sans echec, prouver.py 34 OK, ansible-lint production. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| files/themes/alliance-boreale | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_keycloak
SSO / IAM Keycloak (distribution Quarkus) — hub d'authentification centralisée (OIDC/SAML) pour les services internes.
Rôle
- Installe un JRE, télécharge et extrait la distribution Keycloak dans
/opt/keycloak. - Configure la base PostgreSQL via le registre
instance/plan/bases-donnees.yml(entréekeycloak). - Publie derrière
serveur_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 instance/plan/bases-donnees.yml fait que :
serveur_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 serveur_keycloak requiert serveur_postgresql actif déjà dans docs/dependances-groupes.yml.
Secrets requis (Vault)
serveur_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 |
|---|---|---|
serveur_keycloak_version |
26.0.7 |
Version (à vérifier/bumper sur keycloak.org/downloads) |
serveur_keycloak_hostname |
keycloak.exemple.internal |
Hostname public (via nginx) |
serveur_keycloak_db_host |
10.0.13.11 |
IP de data-01 (serveur_postgresql) |
serveur_keycloak_admin_user |
admin |
Admin bootstrap |
serveur_keycloak_login_theme |
"" |
Thème de login du realm (vide = défaut Keycloak) |
serveur_keycloak_account_theme |
"" |
Thème de la console de compte |
serveur_keycloak_theme_cache |
true |
Cache des ressources de thème (true=prod/perf, false=lab/itération) |
Thème (identité Alliance Boréale)
Un thème alliance-boreale (dans files/themes/) applique l'identité visuelle du site de
l'Alliance : ciel nocturne aurore + constellation animée, cartes en verre, accents aurore,
logo étoile, police système. Il couvre le login (login/) et la console de compte
(account/).
Comment ça marche :
theme.properties:parent=keycloak(login) /parent=keycloak.v3(account) +styles=(CSS)scripts=(la constellation JS). C'est un calque CSS/JS posé sur la structure PatternFly de Keycloak.
- Déployé dans
{{ serveur_keycloak_home }}/themes/(copie inconditionnelle, à chaque déploiement, après l'extraction de Keycloak) et appliqué au realm viakcadm -s loginTheme/accountTheme. serveur_keycloak_theme_cache: false(lab) sert les ressources enno-cache— sinon Keycloak les marque « immuables » et le navigateur garde l'ancien CSS même enCtrl+Shift+R(piège classique ; utiliser une fenêtre privée pour vérifier un changement).- Le JS de constellation s'initialise sur
DOMContentLoaded(Keycloak injecte le<script>dans<head>, avant que<body>existe).
⚠️ Mise à jour de Keycloak — à savoir :
- Pas de réapparition de l'ancien thème : le thème est codifié + réappliqué à chaque
make deployer(la copie survit à l'extraction et n'a pas de gardecreates). Une MAJ via Set-OPS réinstalle le thème. - Le vrai risque = compatibilité : le calque dépend des classes PatternFly (
.pf-c-*/.pf-v5-*) et des thèmes parents (keycloak,keycloak.v3). Une MAJ majeure de Keycloak peut changer PatternFly ou renommer un parent → le rendu se dégrade ou tombe sur le défaut ; il faut alors retoucher le CSS / leparent(le thème ne « redevient » pas l'ancien, il demande un ajustement). - Check-list MAJ : après un bump de
serveur_keycloak_version, ouvrir le login + la console de compte et vérifier le rendu (~2 min). La version étant épinglée, les MAJ sont délibérées.
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é
serveur_nginx(serveur_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
serveur_postgresql).