Set-OPS-Public/roles/serveur_debian
Daniel Allaire 6786d15068 l heure vient de la frontiere : la derniere dependance vivante tombe
Mesure sur les quatorze : aucune sortie TCP vers une adresse publique, apt
par le cache, noms autoritaires en local, unattended-upgrades masked. Et
quatre pairs NTP publics par machine. Le role chrony posait le fuseau et
installait le demon sans jamais toucher a ses sources : le defaut de Debian
tenait depuis le premier jour, herite et jamais choisi.

L autorite est la frontiere, par decision de l exploitant. Elle etait deja
stratum 2 et ecoutait en 123 ; il ne manquait que le passage. 9 anciennes
regles port 123 vers !SETOPS_INTERNES retirees, 9 regles nommees vers
SETOPS_FRONTIERE posees : le changement resserre autant qu il centralise.

Deux chemins parce que la topologie en a deux. Un tenant n atteint pas la
frontiere par sa passerelle de zone — tenue par le SDN — mais par le lien de
transit. Une machine du site a la frontiere pour passerelle directe. Les deux
valeurs sont derivees de l underlay, via reseau_transit() plutot que d un
prefixe d adresse qui aurait menti chez le prochain hebergeur.

La patte face aux tenants manquait a opnsense_if_zones, pour la meme raison
que grappe-controle la veille.

Sonde horloge ecrite en meme temps : synchronisee ET contre la source
DECLAREE. Une machine peut etre parfaitement a l heure contre quatre serveurs
publics — c est exactement l etat d avant.

14 tenant + 7 site, toutes disciplinees, sources publiques = 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-11 12:08:13 -04:00
..
meta l heure vient de la frontiere : la derniere dependance vivante tombe 2026-09-11 12:08:13 -04:00
README.md docs : un README par rôle (12 manquants) + carte remise à l'état du code 2026-07-29 11:32:06 -04:00

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.