LA GARDE FICHIER ENTIER, en deux corrections. Un telechargement interrompu laisse un fichier de zero octet QUI EXISTE, et toutes les gardes demandaient seulement s il etait la. infra-mail-01 a garde une cle smallstep de 0 octet apres l epreuve hors ligne. La premiere correction n a pas suffi. Ajouter le controle de taille faisait bien s executer la tache - et le fichier faisait toujours 0 octet au passage suivant. get_url sur une destination existante emet une requete CONDITIONNELLE : l amont repond non modifie, le module rend ok, la ruine reste. Le play etait vert et ne reparait rien. Il faut effacer avant de redemander. Controle negatif : 0 -> 1022 octets, 0 erreur apt. Cinq roles. LA SONDE CORRECTIFS, 23e. Set-OPS desarme unattended-upgrades et applique les correctifs au deploiement - choix defendable, le verrou dpkg a fait decrocher une machine d une reconstruction entiere le matin meme. Mais rien ne disait QUAND le geste etait du : une flotte pouvait deriver des mois en restant verte. Elle mesure les paquets de securite en attente ET depuis quand. Elle ne lance pas apt-get update - une sonde qui rafraichit l index toutes les quinze minutes deviendrait la cause de la panne qu elle surveille. Et le seuil de 72 h est un choix d exploitation, pas une derivation : le mecanisme qui applique les correctifs est un geste humain. P64 REFUSAIT UNE DECLARATION CORRECTE. serveur_debian et serveur_durci sont des roles de declaration pure, sans une tache ; le travail est fait par les roles que leur playbook applique. La preuve exigeait declaration et depot dans le meme role - vrai des vingt-deux premieres sondes, faux des qu une sonde appartient au socle. Une garde qui force a contourner ce qu elle protege est un defaut. Elle suit desormais le playbook du groupe. Mesure : 21/21 machines vertes, 65 preuves, 23 sondes, 0 echec. 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.