Set-OPS-Public/roles
Daniel Allaire 840b21bfb6 artefacts : le controleur telecharge et pousse, la cible ne tire plus
Inventaire mesure de ce qu'une reconstruction de tenant telecharge — ~1,5 Gio :
Nextcloud 230 Mio, image collabora/code 471 Mio (Docker Hub), Keycloak 140,
Forgejo 101, oauth2-proxy 18, plus les paquets apt (Debian + Grafana +
smallstep + Icinga) sur 14 hotes.

Les quatre archives sont EPINGLEES EN VERSION et vont chacune sur UN SEUL
hote. Les retelecharger a chaque reconstruction est un gaspillage et une
dependance de plus sur le chemin critique — un serveur tiers lent a deja fait
tomber un deploiement le 2026-08-09, sur le binaire Forgejo precisement.

POURQUOI POUSSER PLUTOT QUE SERVIR UN CACHE. L'exploitant proposait son poste
comme cache HTTP ; l'intention est juste mais elle butait sur ce qu'on avait
ferme le matin meme : les regles sortantes visent !SETOPS_INTERNES, donc une
VM de tenant ne peut plus atteindre le poste. Servir un cache aurait exige de
ROUVRIR un flux vers le plan d'administration.

L'inversion evite le probleme entier : le controleur telecharge dans son cache
(~/.cache/setops, garde par un stat), puis pousse par le canal SSH qui existe
deja. Aucun port, aucun service, aucune regle, aucun couplage. Et ces
artefacts deviennent deployables HORS LIGNE une fois le cache rempli.

Ce que ca ne couvre pas, et qu'il faut nommer : l'image collabora/code, seule
entorse a la doctrine « zero Docker » du depot — elle merite sa propre
decision, pas un contournement discret ; et les paquets apt, dont le cache a
sa place cote HEBERGEUR, partage entre tenants.

Et une mesure qui a contredit mon hypothese : le .zip de Nextcloud pese
271 Mio contre 230 pour le .tar.bz2. Il telecharge PLUS pour decompresser
moins lentement. Le changement de format attend une mesure, pas une intuition.

Verifie : cache rempli (491 Mio, 4/4), ansible-lint production sur 79 fichiers,
prouver.py 35 OK, plus aucun get_url n'ecrit sur la cible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 20:58:58 -04:00
..
amorcage_acces identite : une declaration de politique de mot de passe, deux executants 2026-08-08 06:28:10 -04:00
apparmor Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
auditd Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
chrony Découplage instance : realm centralisé + vars génériques 2026-07-05 00:47:44 -04:00
client_backup docs : un README par rôle (12 manquants) + carte remise à l'état du code 2026-07-29 11:32:06 -04:00
client_journal get_url : plus aucun sans garde — la dependance externe tombe a zero 2026-08-09 14:05:25 -04:00
client_metrique metriques : node_exporter mourait a chaque renouvellement de certificat 2026-08-09 14:14:16 -04:00
client_pki get_url : plus aucun sans garde — la dependance externe tombe a zero 2026-08-09 14:05:25 -04:00
client_smtp Reconstruction propre : orchestrateur ordonné, registre des flux + pare-feu 2026-07-07 03:08:09 -04:00
client_unbound client_unbound : survivre a la perte de connexion sans la masquer 2026-08-09 11:55:41 -04:00
cloud_init Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
common_packages deploiement : deux attentes de premier demarrage, et trois defauts leves 2026-08-07 09:30:48 -04:00
core_dumps Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
fail2ban_ssh Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
hardening_packages Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
hosts_statiques docs : un README par rôle (12 manquants) + carte remise à l'état du code 2026-07-29 11:32:06 -04:00
journald Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
motd Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
nftables_baseline Reconstruction propre : orchestrateur ordonné, registre des flux + pare-feu 2026-07-07 03:08:09 -04:00
qemu_guest_agent Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
resoudre_annuaire annuaire : l'hote se derive du plan, il ne s'ecrit plus 2026-08-07 12:46:48 -04:00
resoudre_base deploiement : deux attentes de premier demarrage, et trois defauts leves 2026-08-07 09:30:48 -04:00
resoudre_idp resoudre_idp : le nom invente etait dans QUATRE roles 2026-08-07 15:33:32 -04:00
resoudre_politique_mdp identite : une declaration de politique de mot de passe, deux executants 2026-08-08 06:28:10 -04:00
serveur_backup P33 / D-73 : aucune collision de port entre roles co-localises 2026-08-09 09:46:17 -04:00
serveur_collabora empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
serveur_debian authentification : chaque rôle déclare sa position, gardé par P29 2026-08-03 17:05:43 -04:00
serveur_dovecot courriel : routage local par identifiant, et la livraison interne remise en marche 2026-08-08 09:42:45 -04:00
serveur_forgejo artefacts : le controleur telecharge et pousse, la cible ne tire plus 2026-08-10 20:58:58 -04:00
serveur_grafana keycloak : un jeton frais la ou on s'en sert ; grafana : un echec lisible 2026-08-10 20:19:50 -04:00
serveur_icinga get_url : plus aucun sans garde — la dependance externe tombe a zero 2026-08-09 14:05:25 -04:00
serveur_icingaweb2 icingaweb2 : habilitation par groupe d'annuaire, plus par liste d'uid 2026-08-07 19:54:41 -04:00
serveur_keycloak artefacts : le controleur telecharge et pousse, la cible ne tire plus 2026-08-10 20:58:58 -04:00
serveur_loki get_url : plus aucun sans garde — la dependance externe tombe a zero 2026-08-09 14:05:25 -04:00
serveur_nextcloud artefacts : le controleur telecharge et pousse, la cible ne tire plus 2026-08-10 20:58:58 -04:00
serveur_nginx nginx : dimensionner les tampons d'en-tetes pour les sessions OIDC 2026-08-08 11:06:05 -04:00
serveur_oauth2_proxy artefacts : le controleur telecharge et pousse, la cible ne tire plus 2026-08-10 20:58:58 -04:00
serveur_openldap identite : une declaration de politique de mot de passe, deux executants 2026-08-08 06:28:10 -04:00
serveur_postfix frontiere : etanche — CONFORME sur 56 lignes, dans les deux sens 2026-08-09 21:33:04 -04:00
serveur_postgresql authentification : chaque rôle déclare sa position, gardé par P29 2026-08-03 17:05:43 -04:00
serveur_powerdns D-71 : PKI et DNS debout avant tout, et la zone inverse manquait 2026-08-08 15:29:57 -04:00
serveur_prometheus idempotence : Prometheus trie ses cibles, Forgejo conserve son secret JWT 2026-08-09 14:44:03 -04:00
serveur_redis authentification : chaque rôle déclare sa position, gardé par P29 2026-08-03 17:05:43 -04:00
serveur_rspamd authentification : chaque rôle déclare sa position, gardé par P29 2026-08-03 17:05:43 -04:00
serveur_step_ca get_url : plus aucun sans garde — la dependance externe tombe a zero 2026-08-09 14:05:25 -04:00
serveur_web_dorsal empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
serveur_web_frontal empreintes muettes, courses de premier demarrage, collision de noms 2026-08-07 16:22:38 -04:00
ssh_baseline Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
ssh_hardening reconstruction complete sans echec, et correction : ssh_hardening declarait deja 2026-08-09 13:45:24 -04:00
sudo_ansible Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
sysctl_hardening Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
systemd_ssh_auto Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
template_cleanup gabarit recapture : copie de travail preparee, nettoyee, convertie 2026-08-09 11:29:51 -04:00
unattended_upgrades Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00