vigie : la console de supervision porte enfin un nom de fonction
icinga.<tenant>.internal devient vigie.<tenant>.internal, sur les trois locataires a la fois. Le mot avait ete ecarte pour Grafana precisement parce qu il connote la guette du danger : c est le metier d Icinga. Quatrieme recopie du meme FQDN a tomber : serveur_oauth2_proxy_redirect_url etait posee a la main dans les group_vars de chaque instance. Elle derive maintenant de serveur_oauth2_proxy_hostname. Le repli reste vide et non fabrique : l assertion doit refuser un deploiement sans exposition, pas inventer un nom que personne ne resout. Deploye et VERIFIE sur Chezlepro : le SSO renvoie sur vigie, le certificat servi porte observatoire et vigie et plus aucun ancien nom. Deployer nginx pose le vhost mais laisse le SAN en arriere — c est client_pki qui reemet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
This commit is contained in:
parent
d1ae41cfdf
commit
53e2f78148
7 changed files with 50 additions and 7 deletions
36
CHANGELOG.md
36
CHANGELOG.md
|
|
@ -1,5 +1,41 @@
|
|||
# CHANGELOG — Set-OPS
|
||||
|
||||
## 2026-09-10 (18) — `vigie` pour Icinga, et la quatrieme liste tombe
|
||||
|
||||
Suite du renommage precedent, decide par l'exploitant : `vigie` est le nom de la console de
|
||||
supervision. Le mot avait ete ecarte pour Grafana precisement parce qu'il connote la guette
|
||||
du danger — c'est le metier d'Icinga, pas celui d'un tableau de bord.
|
||||
|
||||
icinga.chezlepro.internal -> vigie.chezlepro.internal
|
||||
icinga.technolibre.internal -> vigie.technolibre.internal
|
||||
icinga.lab.chezlepro.internal -> vigie.lab.chezlepro.internal
|
||||
|
||||
Les trois locataires en meme temps : deux vocabulaires entre ecosystemes, c'est le defaut
|
||||
qu'on vient de corriger.
|
||||
|
||||
### La quatrieme liste
|
||||
|
||||
`serveur_oauth2_proxy_redirect_url` etait posee A LA MAIN dans les group_vars de chaque
|
||||
instance, avec le FQDN recopie du plan. Quatrieme recopie du meme nom, apres les SAN (deja
|
||||
derives), les clients Keycloak (P66) et les noms publics des roles (P67).
|
||||
|
||||
Elle derive maintenant de `serveur_oauth2_proxy_hostname`, que `instancier` pose depuis
|
||||
`expose:`. Le repli reste VIDE et non fabrique : l'assertion du role doit refuser un
|
||||
deploiement sans exposition, pas inventer un nom que personne ne resout. La ligne a ete
|
||||
retiree des trois instances.
|
||||
|
||||
### Ce qu'il faut savoir pour le prochain renommage
|
||||
|
||||
Changer une exposition ne suffit pas a refaire le certificat de l'edge. Deployer
|
||||
`serveur_nginx` pose le vhost mais laisse le SAN en arriere ; c'est `client_pki` qui
|
||||
reemet. L'ordre eprouve deux fois aujourd'hui :
|
||||
|
||||
serveur_powerdns -> serveur_keycloak -> le service -> serveur_nginx -> client_pki
|
||||
|
||||
Le certificat servi a ete VERIFIE apres coup, pas suppose : il porte `observatoire` et
|
||||
`vigie`, et plus aucun des deux anciens noms. Aucune garde ne compare encore le SAN SERVI aux
|
||||
expositions du plan — ce serait un controle a la demande, pas une preuve statique.
|
||||
|
||||
## 2026-09-10 (17) — La console d'observabilite s'appelle pareil des deux cotes
|
||||
|
||||
Deux ecosystemes, deux noms pour le meme service : `grafana.chezlepro.internal` chez le
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ le côté humain **est** la preuve de l'affirmation « exploitable sans IA » (c
|
|||
|
||||
| # | Ce qu'on éprouve | Le geste (avec l'attendu) | Type | Preuve auto |
|
||||
|---|---|---|---|---|
|
||||
| 1 | Ouvre Icinga Web 2 | (https://icinga.chezlepro.internal, via le SSO) : la liste des hôtes et services supervisés, avec leur état (vert/jaune/rouge). | 👁 observe | — |
|
||||
| 1 | Ouvre Icinga Web 2 | (https://vigie.chezlepro.internal, via le SSO) : la liste des hôtes et services supervisés, avec leur état (vert/jaune/rouge). | 👁 observe | — |
|
||||
| 2 | Vois l'impact | Menu *Business Processes* → « Supervision Chezlepro » : un processus qui agrège des checks (load, procs, ping…) en un état roulé. C'est l'impact, pas une case. | 👁 observe | — |
|
||||
| 3 | Casse & répare | Provoque l'échec d'un check (ex. arrête un service surveillé) : l'état passe CRITICAL, et le processus BPM qui en dépend rougit (l'impact remonte). Répare : tout reverdit. Tu *sens* la différence entre *mesurer* et *superviser/alerter*. | 🔨 casse-répare | — |
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
| P29 | Authentification : chaque role declare sa position | AFF-111 | ✅ OK | 32 role(s) serveur declares (interne-sans-auth 2, ldap-direct 2, sans-auth-humaine 21, socle-identite 2, web-sso 5) ; 2 lacune(s) nommee(s) : serveur_loki, serv |
|
||||
| P30 | SDN EVPN : zones, VNets et sous-reseaux derives | AFF-112 | ✅ OK | CONFORME : SDN EVPN, 3 zone(s), 15 VNet(s), 15 sous-reseau(x), aucune collision. |
|
||||
| P31 | Documentation : tout ce que le depot FAIT est nomme | — | ✅ OK | 59 scripts expliques et atteignables, 116 cibles make documentees, 67 roles avec README. |
|
||||
| P32 | Intrants exiges par les roles : tous fournis | — | ✅ OK | CONFORME : 38 exigence(s) de role, toutes satisfaites (138 cle(s) declaree(s) par l'instance). |
|
||||
| P32 | Intrants exiges par les roles : tous fournis | — | ✅ OK | CONFORME : 38 exigence(s) de role, toutes satisfaites (137 cle(s) declaree(s) par l'instance). |
|
||||
| P33 | Aucune collision de port entre roles co-localises | — | ✅ OK | CONFORME : 34 revendication(s) de port, aucune collision entre roles co-localises (36 groupes). |
|
||||
| P34 | Chaque document declare son lecteur | — | ✅ OK | 44 document(s) declarent leur lecteur (36 genere(s) exempte(s)). |
|
||||
| P35 | Toute application exigeant une base en a une au plan | — | ✅ OK | 5 application(s) exigeant une base l'ont toutes (4 entree(s) au registre). |
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
| P57 | Comptes en prose : les chiffres du depot sur lui-meme | — | ✅ OK | Les comptes ecrits en prose correspondent a la mesure (67 preuves, 67 roles, 41 groupes). |
|
||||
| P58 | Habilitations : chaque service dit a quel GROUPE, et par quoi | — | ✅ OK | 8 habilitation(s) declarees, toutes nommant un groupe, un mecanisme connu et une raison ; les `role-realm` sont projetees. |
|
||||
| P59 | Enumerations annoncees : le nombre correspond a ce qui suit | — | ✅ OK | 2 enumeration(s) annoncee(s) correspondent a ce qu'elles annoncent (formes non ambigues seulement). |
|
||||
| P60 | Wiki publie : la forge sert ce que le depot dit | AFF-002 | ✅ OK | Le wiki publie correspond au depot : `wiki/` n'a pas bouge depuis `2450c9e` (publie le 2026-09-10). |
|
||||
| P60 | Wiki publie : la forge sert ce que le depot dit | AFF-002 | ✅ OK | Le wiki publie correspond au depot : `wiki/` n'a pas bouge depuis `d1ae41c` (publie le 2026-09-10). |
|
||||
| P61 | Schema du plan : il decrit tout ce que les plans contiennent | AFF-033 | ✅ OK | Le schema decrit 47 champ(s) sur 6 registres ; il couvre tout ce que les plans reels contiennent, et la FORME de chaque champ (scalaire / objet / table) corresp |
|
||||
| P62 | Schema du plan : il decrit tout ce que le MOTEUR accepte | AFF-033 | ✅ OK | Les 4 validateurs n'acceptent aucun champ que le schema ignore (applications:8, bases_donnees:4, domaines_publics:5, serveurs:3 champ(s) lus par validateur). |
|
||||
| P63 | cloud-init nait avec la VM et ne lui survit pas | — | ✅ OK | cloud-init est au gabarit (la premiere seconde), absent du socle (pas de va-et-vient), et retire par le durcissement — avec la garde qui verifie que le reseau s |
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
# Ecrit par `make wiki-publier`, lu par la preuve P60. Ne pas editer a la main.
|
||||
remote: ssh://git@forge.genese.internal/genome/set-ops-public.wiki.git
|
||||
source: 2450c9e
|
||||
source: d1ae41c
|
||||
date: 2026-09-10
|
||||
|
|
|
|||
|
|
@ -26,7 +26,14 @@ serveur_oauth2_proxy_app_idp: "keycloak"
|
|||
serveur_oauth2_proxy_issuer: "https://keycloak.{{ domaine_interne }}/realms/{{ serveur_oauth2_proxy_realm }}"
|
||||
serveur_oauth2_proxy_client_id: "" # OBLIGATOIRE (par instance)
|
||||
serveur_oauth2_proxy_client_secret: "" # OBLIGATOIRE (voûte)
|
||||
serveur_oauth2_proxy_redirect_url: "" # OBLIGATOIRE (https://<app>/oauth2/callback)
|
||||
# DERIVE de l'exposition que le plan declare pour l'application protegee.
|
||||
# `instancier` pose `serveur_oauth2_proxy_hostname` depuis `expose:` ; l'URL de retour
|
||||
# s'en deduit. Une valeur posee dans les group_vars gagne encore — et le repli reste
|
||||
# vide, pour que l'assertion refuse un deploiement sans exposition plutot que de
|
||||
# fabriquer un nom que personne ne resout.
|
||||
serveur_oauth2_proxy_redirect_url: >-
|
||||
{{ ('https://' ~ serveur_oauth2_proxy_hostname ~ '/oauth2/callback')
|
||||
if (serveur_oauth2_proxy_hostname | default('') | length > 0) else '' }}
|
||||
|
||||
# Application protégée (upstream local).
|
||||
serveur_oauth2_proxy_upstream: "" # OBLIGATOIRE (ex. http://127.0.0.1:8080)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ Un seul endroit gère les certificats → simple et cohérent.
|
|||
## ② Comment Set-OPS le fait
|
||||
|
||||
`serveur_nginx` déployé sur l'**edge** (`infra-edge`) est le reverse-proxy. Le point élégant :
|
||||
l'**exposition est auto-dérivée**. Déclarer `expose: [icinga.chezlepro.internal]` sur une app
|
||||
l'**exposition est auto-dérivée**. Déclarer `expose: [vigie.chezlepro.internal]` sur une app
|
||||
génère **tout** :
|
||||
|
||||
```
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ Tu as appris **supervision active vs observabilité passive, l'état, l'alerting
|
|||
|
||||
## ④ À toi de jouer
|
||||
|
||||
1. **Ouvre Icinga Web 2** (`https://icinga.chezlepro.internal`, via le SSO) : la liste des hôtes
|
||||
1. **Ouvre Icinga Web 2** (`https://vigie.chezlepro.internal`, via le SSO) : la liste des hôtes
|
||||
et services **supervisés**, avec leur **état** (vert/jaune/rouge).
|
||||
2. **Vois l'impact.** Menu *Business Processes* → « **Supervision Chezlepro** » : un processus qui
|
||||
**agrège** des checks (load, procs, ping…) en un état roulé. C'est l'impact, pas une case.
|
||||
|
|
|
|||
Loading…
Reference in a new issue