Keycloak¶
Rôle¶
Brique prévue pour le SSO/IAM applicatif (fédération d'identité pour les applications internes de l'infrastructure Indio). À ce jour, elle n'a jamais été mise en service : les deux VM provisionnées ont été détruites trois jours après leur création, avant toute installation du logiciel Keycloak lui-même.
Divergence corrigée par rapport à la version précédente de cette page
La version précédente de cette page décrivait Keycloak comme une brique
dont « seul le provisioning de l'infrastructure VM est réalisé »,
laissant entendre que les VM existaient toujours. Ce n'est plus le
cas depuis le 2026-07-07 : les VM ont été détruites à la demande
explicite de l'utilisateur, avec nettoyage complet (NetBox, inventaire
Ansible, aucune règle DFW dédiée à retirer). Vérifié pour cette page par
inventaire complet de vCenter (aucune VM keycloak*/INDSERV012/
INDSERV013 nulle part, toutes zones confondues) et par lecture directe
de terraform.tfstate (0 ressource). Voir « Contrôle de santé » ci-dessous
pour la méthode de vérification, reproductible par tout lecteur de cette
page.
Architecture¶
Cycle de vie constaté (aucune VM active aujourd'hui)¶
stateDiagram-v2
[*] --> Provisionné: 2026-07-04 terraform apply<br/>keycloak-01/02 (10.100.2.141/.142)
Provisionné --> Renommé: 2026-07-05<br/>convention IND<SEGMENT>NNN<br/>-> INDSERV012/013
Renommé --> Détruit: 2026-07-07 terraform destroy -auto-approve<br/>(demande explicite : "supprime ocs postfix et keycloak glpi")
Détruit --> [*]: État actuel (2026-07-19)<br/>terraform.tfstate = 0 ressource<br/>aucune trace dans vCenter
| VM (historique) | Nom d'origine | IP (historique) | État constaté aujourd'hui |
|---|---|---|---|
| INDSERV012 | keycloak-01 |
10.100.2.141 | N'existe plus — détruite le 2026-07-07 |
| INDSERV013 | keycloak-02 |
10.100.2.142 | N'existe plus — détruite le 2026-07-07 |
- Zone d'origine :
seg-service(admin), gateway10.100.2.190/26, clonées depuistmpl-rocky96-hardened— comme le reste du segment. - Contrairement à d'autres VM détruites le même jour dans le même lot
(
ocs/INDSERV001,postfix-01/02/INDSERV009/010,glpi/INDSERV014), Keycloak n'a jamais été redéployée sous un nouveau numéro — OCS a été recréée enINDSERV026, GLPI enINDSERV025, Postfix a été redéployé plus tard surINDSERV009/010(voir Services métiers). Les numéros012/013restent vacants dans la séquenceseg-service(INDSERV011puisINDSERV015— ce dernier étant une VM Windows hors IaC sans rapport, voir Durcissement Active Directory). - Ceci résout l'ambiguïté laissée par la convention de nommage (documentée comme « décommissionnés ou renumérotés depuis ») : c'est bien une décommission pure, sans renumérotation.
Provisioning Terraform¶
Fichiers : main.tf, variables.tf, versions.tf, terraform.tfvars.example.
Le code ci-dessous reste présent et syntaxiquement valide dans le dépôt
/root/keycloak — un terraform apply le rejouerait tel quel et
recréerait deux VM nues — mais ne correspond à aucune ressource vivante
aujourd'hui.
- Providers
hashicorp/vsphere(>= 2.6.0) ete-breuninger/netbox(>= 5.0.0, < 6.0.0) — schéma identique aux autres dépôts VM de l'infra. vsphere_virtual_machine.keycloakenfor_eachsurvar.nodes(défaut : INDSERV012/013), IP réservées viadata.netbox_ip_addresses(provider NetBox), personnalisation clone (hostname, domaine, IP/masque/gateway/DNS).output vms: map nom → IP.- Variables sensibles (
vsphere_password,netbox_token) marquéessensitive = true; seulterraform.tfvars.example(valeursCHANGE_ME) est versionné, le vraiterraform.tfvarsest gitignoré. terraform.tfstatelocal contient"resources": [](serial 16) — un état cohérent avec la réalité vivante (pas de drift caché), mais qui résulte de la destruction du 2026-07-07 et non d'un état initial jamais appliqué. Les fichiersterraform.tfstate.*.backupdu dépôt montrent l'historique : serial 4 (VM nomméeskeycloak-01/-02), serial 6 (VM renomméesINDSERV012/013), avant de retomber à 0 ressource.- Historique git (
git log --oneline) : 4 commits, du provisioning initial (ad7e92c) au raccordement NetBox (7ebf35f) — aucun commit ne trace la destruction elle-même, cohérent avec le fait queterraform.tfstaten'est jamais suivi par git dans les dépôts de ce projet (gitignoré comme partout ailleurs).
Configuration Ansible¶
Aucun dossier ansible/ dans ce dépôt, et ceci n'a jamais changé : les VM
ont été détruites avant qu'une quelconque installation applicative
(paquet/conteneur Keycloak, realms, base de données, fédération d'identité)
n'ait pu être envisagée. Il n'y a donc aucune configuration Ansible
existante ni obsolète à documenter ici — l'absence est totale depuis
l'origine du projet, pas seulement depuis la destruction.
Procédure de déploiement¶
Hypothétique : rien de tout cela n'a jamais été exécuté au-delà de l'étape 1
Cette section décrit ce qu'impliquerait un redéploiement complet aujourd'hui, pas une procédure déjà validée en conditions réelles pour la partie applicative.
terraform apply(racine du dépôt/root/keycloak) — recréerait deux VM nuesINDSERV012/013surseg-service, à partir du code inchangé depuis 2026-07-05.- Enregistrement NetBox/inventaire Ansible de la flotte (
baseline,populate.py) — retiré lors du nettoyage du 2026-07-07, à refaire manuellement en cas de redéploiement (voir Convention de nommage). - Installation et configuration du service Keycloak lui-même (paquet ou conteneur, base de données, realms, clients OIDC/SAML, fédération avec FreeIPA/AD) : aucun playbook Ansible n'existe pour cette étape, à écrire intégralement — contrairement à FreeIPA ou Vault, ce composant n'a jamais eu de couche Ansible, même avant sa destruction.
Contrôle de santé / Vérification¶
Méthode utilisée pour établir l'état de cette page (reproductible) :
# 1. terraform.tfstate local : 0 ressource = rien géré par ce dépôt
python3 -c "import json; print(json.load(open('/root/keycloak/terraform.tfstate'))['resources'])"
# 2. Recherche exhaustive dans vCenter (aucune limitation de dossier —
# couvre les VM "orphelines" hors IaC, ex. dossier "Discovered virtual
# machine")
govc find / -type m | grep -i 'keycloak\|012\|013'
# -> aucun résultat
# 3. Historique de decommission (si accès à la mémoire projet)
grep -i keycloak <mémoire indio-decommission-2026-07-07>
Les trois méthodes convergent : Keycloak n'existe sous aucune forme dans l'infrastructure Indio au 2026-07-19.
Points d'attention¶
Détruit le 2026-07-07 en tant que VM nue jamais mise en service
À la demande du user (« supprime ocs postfix et keycloak glpi »), les
deux VM (INDSERV012/013) ont été détruites via terraform destroy
-auto-approve, dans le même lot que ocs/postfix-01/02/glpi —
toutes qualifiées de « VM nues du 2026-07-04 jamais mises en service ».
Nettoyage complet confirmé (NetBox VM+interface+IP, populate.py,
baseline/ansible/inventory.ini). Aucune règle DFW dédiée n'existait
pour Keycloak (seg-service est en zone admin, DFW default-ALLOW),
donc rien à retirer côté NSX.
- Le rôle fonctionnel réel de Keycloak dans l'infra reste non défini — aucune configuration, aucun realm, aucune intégration (Vault, FreeIPA/AD, applications consommatrices) n'a jamais existé, y compris avant la destruction. Toute reprise de ce projet repart entièrement de zéro, y compris pour la conception applicative.
- Si ce composant redevient nécessaire, envisager de le renuméroter
directement (nouveau nom de VM en fin de séquence
seg-service, comme cela a été fait pour OCS et GLPI) plutôt que de réutiliserINDSERV012/013— cohérent avec la règle « ne jamais réutiliser un numéro libéré quand le segment reste partiellement occupé » (voir Convention de nommage). apply.log(log brut duterraform applydu 2026-07-04) reste présent dans le dépôt ; il ne contient aucune valeur sensible (vsphere_password/netbox_tokenmarquéssensitive, masqués dans la sortie), mais documente l'historique de nommagekeycloak-01/02avant renommage — sans rapport avec la destruction ultérieure, non tracée dans ce fichier.