From 1410fe41ec4ed094d952c4d68d7db337002ae3b1 Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Thu, 10 Sep 2026 15:41:56 -0400 Subject: [PATCH] les cles de signature passent aussi par le cache get_url IGNORE la configuration d apt : le mandataire pose dans /etc/apt/apt.conf.d/ ne vaut que pour apt. Les six cles de signature sortaient donc TOUJOURS en direct, malgre tout le travail sur le remap. Un trou reste ouvert derriere une porte qu on croyait fermee. Et ce n etait pas theorique. Depuis collab-01 : en direct grafana 200 collabora TIMEOUT via le cache collabora 200 La route directe vers Collabora ne passe pas depuis cette zone. Trois cles sur quatre avaient reussi PAR CHANCE, parce que leurs fournisseurs etaient joignables. Le meme geste corrige les deux : plus rien ne sort, et la machine qui n avait pas de route en trouve une. POURQUOI SEULE UNE NAISSANCE POUVAIT LE MONTRER. Mes deploiements de convergence rendaient failed=0 parce que les cles etaient DEJA sur disque et que la tache etait sautee. Le defaut existait depuis le premier commit du remap, invisible a tout deploiement sur une flotte existante. C est l argument de la reconstruction depuis zero, applique a moi-meme. Troisieme reconstruction : 32 minutes, un seul echec - celui-ci. Clonage 3 min 52, zero fatal dans le journal, 963 Mo servis par le cache contre 183 tires de l Internet, soit 81 pourcent servis localement. Et la derive s est effacee toute seule : apt-cacher-ng tournait encore sur forge-01 que plus aucun plan ne declarait. Je proposais de l arreter a la main ; la reconstruction l a fait. Ce qui n est pas au plan n existe pas apres une naissance. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q --- CHANGELOG.md | 58 ++++++++++++++++++++++++++ roles/client_journal/tasks/main.yml | 22 ++++++++++ roles/client_pki/tasks/main.yml | 22 ++++++++++ roles/serveur_collabora/tasks/main.yml | 22 ++++++++++ roles/serveur_grafana/tasks/main.yml | 22 ++++++++++ roles/serveur_icinga/tasks/main.yml | 22 ++++++++++ roles/serveur_loki/tasks/main.yml | 22 ++++++++++ 7 files changed, 190 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c7d9d9..bc2d6c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,63 @@ # CHANGELOG — Set-OPS +## 2026-09-10 (11) — Le trou reste ouvert derriere la porte qu'on croyait fermee + +Troisieme reconstruction complete de Chezlepro : **32 minutes, un seul echec — le mien**, +introduit par le passage au cache et revele par la naissance. + + clonage 3 min 52 + placement {'asgard': 14} + `fatal:` dans le journal 0, pas meme un ignore + servi par le cache +963 Mo + tire de l'Internet +183 Mo -> 81 % servis localement + +### `get_url` IGNORE la configuration d'apt + +Le mandataire pose dans `/etc/apt/apt.conf.d/` ne vaut **que pour apt**. Les six cles de +signature sortaient donc TOUJOURS en direct, malgre tout le travail sur le remap. + +Et ce n'etait pas theorique. Depuis `collab-01` : + + en direct grafana 200 collabora TIMEOUT + via le cache collabora 200 + +La route directe vers Collabora ne passe pas depuis cette zone. Trois cles sur quatre +avaient reussi PAR CHANCE — parce que leurs fournisseurs, eux, etaient joignables. Le meme +geste corrige les deux : plus rien ne sort, et la machine qui n'avait pas de route en +trouve une. + +### Pourquoi seule une NAISSANCE pouvait le montrer + +Mes deploiements de convergence rendaient `failed=0` — parce que les cles etaient **deja +sur disque** et que la tache etait sautee. Le defaut existait depuis le premier commit du +remap, invisible a tout deploiement sur une flotte existante. + +C'est l'argument de la reconstruction depuis zero, applique a moi-meme : *un correctif +qu'on ne verifie que sur une machine deja construite n'est pas verifie.* + +### La derive s'est effacee toute seule + +`apt-cacher-ng` tournait encore sur `forge-01`, que plus aucun plan ne declarait. Je +proposais de l'arreter a la main. La reconstruction l'a fait : + + apt-cacher-ng : absent paquet : 0 sondes : les 4 legitimes + +**Ce qui n'est pas au plan n'existe pas apres une naissance.** La propriete centrale du +depot, verifiee sur un cas qu'on n'avait pas provoque pour elle. + +### Etat mesure + + 14 / 14 machines 0 source en HTTPS direct + 14 / 14 machines 0 erreur `apt-get update` + prouver 65 OK, 0 echec + ansible-lint 0 defaut sur 79 fichiers + +### Les trois reconstructions de la journee + + 1re (matin) 3 echecs 1 h 08 + 2e (confirmation) 0 echec 34 min + 3e (avec le cache) 1 echec 32 min — le mien, corrige + ## 2026-09-10 (10) — Plus rien ne sort chercher ses paquets, et un tenant de moins a nourrir Deux mouvements d'une seule doctrine : **le site fournit tout ce dont un tenant a besoin diff --git a/roles/client_journal/tasks/main.yml b/roles/client_journal/tasks/main.yml index 7a38394..b28b376 100644 --- a/roles/client_journal/tasks/main.yml +++ b/roles/client_journal/tasks/main.yml @@ -29,6 +29,28 @@ owner: root group: root mode: "0644" + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" # `apt_repository` AJOUTE, IL NE REMPLACE PAS (mesure du 2026-09-10). # diff --git a/roles/client_pki/tasks/main.yml b/roles/client_pki/tasks/main.yml index 855551e..f5d9a46 100644 --- a/roles/client_pki/tasks/main.yml +++ b/roles/client_pki/tasks/main.yml @@ -79,6 +79,28 @@ retries: 5 delay: 6 until: client_pki_cle_depot_telechargee is succeeded + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" - name: Ajouter le depot apt Smallstep ansible.builtin.template: diff --git a/roles/serveur_collabora/tasks/main.yml b/roles/serveur_collabora/tasks/main.yml index 767c3e7..0225e7b 100644 --- a/roles/serveur_collabora/tasks/main.yml +++ b/roles/serveur_collabora/tasks/main.yml @@ -47,6 +47,28 @@ retries: 5 delay: 6 until: serveur_collabora_cle is succeeded + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" # DEPOT PLAT : `Suites: ./`, aucun composant. Une source classique ne le trouverait pas. - name: Ajouter le depot apt Collabora diff --git a/roles/serveur_grafana/tasks/main.yml b/roles/serveur_grafana/tasks/main.yml index 8ba51df..8d430fa 100644 --- a/roles/serveur_grafana/tasks/main.yml +++ b/roles/serveur_grafana/tasks/main.yml @@ -61,6 +61,28 @@ owner: root group: root mode: "0644" + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" # `apt_repository` AJOUTE, IL NE REMPLACE PAS (mesure du 2026-09-10). # diff --git a/roles/serveur_icinga/tasks/main.yml b/roles/serveur_icinga/tasks/main.yml index 6376ab9..4c6c7e0 100644 --- a/roles/serveur_icinga/tasks/main.yml +++ b/roles/serveur_icinga/tasks/main.yml @@ -19,6 +19,28 @@ url: "{{ serveur_icinga_keyring_url }}" dest: "/tmp/icinga-archive-keyring.deb" mode: "0644" + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" - name: Installer le trousseau de cles Icinga ansible.builtin.apt: diff --git a/roles/serveur_loki/tasks/main.yml b/roles/serveur_loki/tasks/main.yml index 2506473..d47ed03 100644 --- a/roles/serveur_loki/tasks/main.yml +++ b/roles/serveur_loki/tasks/main.yml @@ -29,6 +29,28 @@ owner: root group: root mode: "0644" + # LA CLE PASSE PAR LE CACHE, ELLE AUSSI (mesure du 2026-09-10). + # + # `get_url` ignore la configuration d'apt : le mandataire pose dans + # `/etc/apt/apt.conf.d/` ne vaut que pour apt. Les cles de signature sortaient donc + # TOUJOURS en direct, meme apres que tous les depots soient passes par le cache — un + # trou reste ouvert derriere une porte qu'on croyait fermee. + # + # Et ce n'est pas theorique : depuis `collab-01`, la route directe vers + # `www.collaboraoffice.com` EXPIRE, quand le cache l'atteint sans peine. + # + # en direct grafana 200 collabora TIMEOUT + # via le cache collabora 200 + # + # Le meme geste corrige donc les deux : plus rien ne sort, et la machine qui n'avait + # pas de route en trouve une. + # + # DEGRADE, JAMAIS DEVINE : sans cache d'amorcage declare, la valeur est VIDE et + # `get_url` sort en direct comme avant. On n'invente pas un mandataire. + environment: + http_proxy: >- + {{ ('http://' ~ artefacts_amorcage) if (artefacts_amorcage | default('') | string | length > 0) else '' }} + https_proxy: "" # `apt_repository` AJOUTE, IL NE REMPLACE PAS (mesure du 2026-09-10). #