resolveur du site : le troisieme service prete pendant la jeunesse d un tenant
Apres les paquets (serveur_cache_site) et le genome (serveur_forge_site), les NOMS.
Meme patron : un installateur, un marqueur.
CE QUE CA CORRIGE, mesure sur infra-pki-01, premiere machine a porter l autorite
de Chezlepro :
DNS BLOQUE un tenant resout chez lui, sa requete ne sort pas
443 sortant OK par adresse
apt via le cache OK le mandataire resout a sa place
apt s en sortait ; TOUT LE RESTE ETAIT AVEUGLE AUX NOMS. Versionner la cle de
signature Smallstep a fait passer une tache et l echec s est deplace d un cran : le
depot lui-meme devait etre joint par son nom.
POURQUOI PAS L UNBOUND DE LA FRONTIERE : il tourne sur le boitier sans etre un
service gere, et le plan du site l avait deja ecrit une fois — un processus n est
pas un service. site-dns-01 est deploye par le moteur et verifie par le harnais.
OU VIT LA DERIVATION : dans site_inventaire.py, qui connait le plan du site ET le
registre des tenants. Le role tourne sur une machine qui n a aucune raison de lire
la carte de l hebergeur — la derivation appartient a qui detient les deux sources.
PIEGE DE FILTRE, ATTRAPE EN LE BRANCHANT : _supernets_voisins() EXCLUT l instance
montee (personne n est son propre voisin). Le site sert TOUS ceux qu il heberge — y
compris celui qu on deploie. Reutilise tel quel, il privait de resolution le seul
tenant en cours de montage. On reutilise donc la DECOUVERTE partagee sans son
filtre : deux recensements divergent, deux filtres non.
Le marqueur verifie deux choses : que le resolveur ECOUTE, et que sa liste
d autorisation ADMET reellement les tenants. Sans la seconde, la panne chez le
locataire ressemblerait a un DNS mort alors que c est une ACL.
make verifier : vert. make prouver : CONFORME, 55 OK, 0 echec, 0 saute.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2026-08-30 12:37:33 -04:00
|
|
|
---
|
|
|
|
|
# LE RÉSOLVEUR DU SITE — le marqueur, pas l'installateur.
|
|
|
|
|
#
|
|
|
|
|
# `serveur_resolveur` pose Unbound et son ACL ; ce rôle dit que CE résolveur est celui que
|
|
|
|
|
# les écosystèmes du site interrogent pendant leur jeunesse, et déclare le flux qui le
|
|
|
|
|
# permet.
|
|
|
|
|
#
|
|
|
|
|
# La liste d'autorisation se dérive dans `scripts/site_inventaire.py`, qui connaît le plan
|
|
|
|
|
# du site ET le registre des tenants. On ne la redéclare pas ici : une seconde source
|
|
|
|
|
# finirait par diverger de la première, et la divergence se lirait « tout va bien ».
|
|
|
|
|
serveur_resolveur_site_port: "{{ serveur_resolveur_port | default(53) }}"
|
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
|
|
|
|
|
|
|
|
# LA SONDE « resolution-locataires ».
|
|
|
|
|
#
|
|
|
|
|
# LE NOM TEMOIN N'EST PAS UN NOM D'ICI. Demander un nom de la zone souveraine ne prouverait
|
|
|
|
|
# que l'autoritatif local ; c'est deja ce que fait la sonde `zones`. Un nom PUBLIC exerce
|
|
|
|
|
# le chemin entier — racine signee comprise — qui est exactement ce qu'un locataire vient
|
|
|
|
|
# chercher ici.
|
|
|
|
|
serveur_resolveur_site_sonde_nom: "deb.debian.org"
|
|
|
|
|
serveur_resolveur_site_sonde_config: "/etc/unbound/unbound.conf.d"
|
|
|
|
|
|
|
|
|
|
# L'ADRESSE OU LES LOCATAIRES FRAPPENT — pas 127.0.0.1, qui est deja couvert par la sonde
|
|
|
|
|
# `resolution` de `serveur_resolveur`. Une ecoute peut se deplacer sans que la boucle
|
|
|
|
|
# locale cesse de repondre.
|
|
|
|
|
serveur_resolveur_site_sonde_adresse: "{{ ansible_default_ipv4.address | default('127.0.0.1') }}"
|