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
|
||
|---|---|---|
| .. | ||
| defaults | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
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.