SITE-Chezlepro n avait jamais ete rase. La limite qu on repetait partout — l infrastructure d accueil n a jamais ete reconstruite depuis zero — se lisait comme de la prudence. C etait seize defauts que rien d autre n aurait pu reveler. Un locataire naît dans un monde deja peuple : le site lui fournit paquets, noms, genome, heure et depot. Un site n a personne au-dessus, sauf sa frontiere. Onze des seize murs viennent de la. DEUX CAPACITES QUI N EXISTAIENT PAS. make site-raser — rien ne detruisait les machines du site, donc la limite etait un trou d outillage. make forge-amorcer — la forge naît vide et le runner y clone ; l amorcage part du poste, seul endroit qui detienne alors le genome. TROIS GARDES QUI VERIFIAIENT LA FORME. La plus couteuse des familles : elles donnent l apparence d une verification. Le resolveur comparait des adresses au lieu de mesurer si la resolution aboutit, et protegeait ainsi l etat casse. L administration etait reconnue a son port. Un flux a deux paires n obtenait qu une branche. UN ECART DE SECURITE. Le PostgreSQL du site servait le certificat auto-signe de Debian, sans reseaux autorises ni hostssl — invisible tant qu aucun client n exigeait la verification. Le defaut n a pas casse la construction : la construction a revele le defaut. UN ACCES ACCIDENTEL. Celui de l exploitant tenait au chevauchement d adressage que le renumerotage a supprime. Separer les index n a pas cause le probleme, il a retire le hasard qui le masquait. La sequence du premier jour est ecrite : runbooks §9, avec les seize murs et ce que chacun enseigne. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q |
||
|---|---|---|
| .. | ||
| meta | ||
| README.md | ||
serveur_debian
Rôle-catégorie du socle : il ne porte aucune tâche. Son unique contenu est
meta/flux.yml — la déclaration du plan de gestion (SSH) de tout nœud de la flotte.
Pourquoi un rôle sans tâches
Le résolveur de flux (scripts/resoudre_flux.py, make flux) agrège les
roles/<rôle>/meta/flux.yml par nom de groupe. Le groupe serveur_debian est le socle
appliqué à tous les hôtes ; c'est donc ici que se déclare le flux SSH d'administration.
⚠️ Critique : sans cette déclaration, les rulesets nftables générés (
nftables_baseline,policy drop) couperaient l'accès Ansible/SSH à toute la flotte.
Le travail réel
Il est fait par le playbook du groupe, playbooks/groupes/serveur_debian.yml, qui applique
dans l'ordre :
| Rôle | Apport |
|---|---|
common_packages |
Paquets de base |
hosts_statiques |
Plancher de résolution /etc/hosts (indépendant du DNS) |
qemu_guest_agent |
Agent invité Proxmox |
cloud_init |
Cohérence du premier démarrage |
sudo_ansible |
Compte de déploiement |
chrony |
Horloge (fuseau_horaire) |
ssh_baseline |
Base SSH |
systemd_ssh_auto |
Démarrage SSH fiable |
motd |
Bannière |
Le playbook refuse toute cible non-Debian (assertion ansible_facts.distribution).
Place dans l'ordre
Couche socle (docs/couches-deploiement.yml) — la première. Le durcissement
(serveur_durci) vient juste après, tout le reste ensuite.
Notes
- Ajouter un flux réseau du socle (pas d'un service) se fait ici, pas ailleurs.
hosts_statiquesétant appliqué ici, la résolution par nom fonctionne dès le socle, avant que PowerDNS existe — c'est ce qui permet l'ordre de reconstruction from-zero.