Set-OPS-Public/roles/serveur_resolveur_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 resolveur du site : le troisieme service prete pendant la jeunesse d un tenant 2026-08-30 12:37:33 -04:00

serveur_resolveur_site

Le marqueur du résolveur du site. Il dit que ce résolveur est celui que les écosystèmes de ce site interrogent tant qu'ils n'ont pas le leur, et déclare le flux qui le permet. Il n'installe rien.

Le troisième service prêté

C'est le même patron que serveur_artefacts + serveur_cache_site, et que serveur_forgejo + serveur_forge_site : un installateur, un marqueur.

ce que le site prête pendant la jeunesse du tenant
les paquets serveur_cache_site
le génome serveur_forge_site
les noms ce rôle

Ce qu'il a corrigé

Mesuré le 2026-08-30 sur infra-pki-01, première machine à porter l'autorité de certification de Chezlepro :

DNS               BLOQUÉ      un tenant résout chez lui, sa requête ne sort pas
443 sortant       OK          par adresse
apt via le cache  OK          le mandataire résout à sa place

apt s'en sortait ; tout le reste était aveugle aux noms — un get_url, un dépôt tiers en HTTPS, un git clone. Versionner la clé de signature Smallstep a fait passer une tâche, et l'échec s'est déplacé d'un cran : le dépôt lui-même devait être joint par son nom.

Pourquoi pas l'Unbound de la frontière

Il tourne sur le boîtier sans être un service géré, et le plan du site l'avait déjà écrit une fois : « un processus n'est pas un service ». site-dns-01 est déployé par le moteur, vérifié par le harnais, et porte ses flux.

Où vit la dérivation

La liste d'autorisation est calculée par scripts/site_inventaire.py, qui connaît le plan du site et le registre des tenants. Le rôle, lui, tourne sur une machine qui n'a aucune raison de lire la carte de l'hébergeur — la dérivation appartient à qui détient les deux sources.

Attention au filtre : resoudre_flux._supernets_voisins() exclut l'instance montée (personne n'est son propre voisin). Le site sert tous ceux qu'il héberge, y compris celui qu'on déploie — sans quoi le seul tenant en cours de montage serait précisément celui qu'on prive de résolution.

Ce que ce rôle ne fait pas

Il n'installe rien, n'ouvre aucun port, ne sauvegarde rien. Il attribue une responsabilité — et vérifie deux choses : que le résolveur écoute, et que sa liste d'autorisation admet réellement les tenants du site. Sans la seconde, la panne chez le locataire ressemblerait à un DNS mort alors que c'est une ACL.