Set-OPS-Public/roles/serveur_cache_site
Daniel Allaire aac74f6043 supervision : les huit derniers roles, et deux defauts que l epreuve a trouves
Les 33 roles serveur_* declarent maintenant une sonde. Les huit qui manquaient
sont ceux dont la verite ne ressemble pas a « ce service repond-il ».

Quatre marqueurs du site : ce que tasks/main.yml verifie UNE FOIS au deploiement
cesse d etre vrai sans que rien ne tombe. La racine du cache se retrouve chainee,
la forge du genome repond en n ayant plus rien dedans, un locataire n est plus
admis a resoudre, l isolation d un depot glisse.

serveur_ops_site ne sert rien : il detient un pouvoir. La sonde verifie que la
carte est la, que la voute du site est chiffree et que sa cle est en 0600 — sans
lire le contenu d aucun des trois.

serveur_icingaweb2 surveille la vitrine de la supervision elle-meme : si la
console meurt, tout reste vert et l exploitant est aveugle.

DEFAUT 1 — quatre gabarits qu Ansible aurait refuse de rendre. Jinja lit le
{# de ${#tableau[@]} comme un debut de commentaire. Le depot connaissait le
remede et l appliquait la ou quelqu un s etait fait prendre, nulle part ailleurs.
P76 rend desormais chaque gabarit de role, avec les delimiteurs qu Ansible en
tirerait — pas une recherche de motif.

DEFAUT 2 — la doctrine promettait 54 greffons et citait check_pgsql. La flotte a
monitoring-plugins-basic : 53, sans check_pgsql ni check_dns ni check_ldap. Le
paquet qui les porte traine samba et snmp sur chaque machine. Un greffon absent
sort en 127, qui n est pas un code Nagios.

21 controles negatifs sur les machines reelles du site. ansible-lint production
0/91, harnais 75 OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-14 15:43:52 -04:00
..
defaults supervision : les huit derniers roles, et deux defauts que l epreuve a trouves 2026-09-14 15:43:52 -04:00
meta supervision : les huit derniers roles, et deux defauts que l epreuve a trouves 2026-09-14 15:43:52 -04:00
tasks supervision : les huit derniers roles, et deux defauts que l epreuve a trouves 2026-09-14 15:43:52 -04:00
templates supervision : les huit derniers roles, et deux defauts que l epreuve a trouves 2026-09-14 15:43:52 -04:00
README.md frontiere : appliquee, et la contrainte de nommage d'OPNsense consignee 2026-08-24 17:51:29 -04:00

serveur_cache_site

Le cache d'artefacts du SITE : celui que les écosystèmes voisins prennent comme amont, pour que Debian ne soit téléchargé qu'une fois pour toute la fabric.

Le chaînage

VM du tenant  →  cache du tenant  →  cache du SITE  →  Debian

Chaque écosystème garde le sien — il reste maître de ses paquets et s'en émancipe d'un drapeau — mais il ne va plus chercher chez Debian.

Un cache unique où toutes les VM taperaient aurait demandé un flux de chaque machine de chaque tenant vers un hôte d'un autre tenant : N×M chemins à travers le default-deny. Avec le chaînage il n'y en a qu'un par écosystème, entre deux caches.

Et l'étanchéité y gagne : le cache du site ne voit que des requêtes agrégées, jamais quelle machine installe quoi.

Pourquoi deux rôles plutôt qu'un drapeau

Les flux se déclarent dans meta/flux.yml, qui est statique. Un rôle unique aurait dû déclarer l'ingress inter-tenant pour tous les caches — et le devis l'a montré :

+ TENANT_PATI29 -> CHEZ17_SERVEUR_ARTEFACTS     un maillage complet,
+ TENANT_TECH23 -> CHEZ17_SERVEUR_ARTEFACTS     chaque cache acceptant chaque autre

Avec la séparation, l'ingress n'existe qu'ici, et un seul cache est joignable.

Qui peut le déclarer

L'écosystème de l'hébergeur, celui qui exploite la fabric. Un tenant ordinaire qui le déclarerait s'offrirait à servir ses voisins sans y être invité.

C'est le même patron que serveur_ops_site : le runner de site prépare le terrain — VNets, routes, flux — pour que les plans des tenants tiennent. Aucun écosystème n'ouvre de porte chez un autre ; c'est le site qui autorise.

Ce qu'il vérifie

Qu'il ne se chaîne pas lui-même. Il est le bout de la chaîne : le laisser pointer sur un amont ferait tourner les paquets en rond entre deux caches, ou les ferait sortir du site sans que personne ne l'ait décidé.

Que le cache écoute vraiment. Le rôle n'installe rien : sa seule prise sur le réel est de vérifier que le service qu'il désigne existe. Sans ça, il attribuerait une responsabilité à un port que personne n'écoute.

Ce que ce rôle ne fait pas

Il n'installe ni ne configure apt-cacher-ng — c'est serveur_artefacts. Il attribue une responsabilité et la rend lisible dans le plan.