Trois depots tiers etaient en HTTPS, et client_artefacts pose Acquire::https::Proxy DIRECT — sans quoi le cache du site refuse les tunnels et aucun depot tiers n est joignable. La ligne est juste ; sa consequence ne l avait pas ete vue : ces trois depots CONTOURNENT le cache, et chaque VM neuve allait les chercher sur Internet a sa naissance. step-cli et alloy sont poses par des integrations UNIVERSELLES. Sans lien, une machine neuve n obtenait ni son client d autorite ni ses metriques — elle n entrait dans aucun flux chiffre. Dernier obstacle a une reconstruction hors ligne, et il tenait dans un mot. make cacher-paquets tire les 21 deb aux versions epinglees, empreinte SHA256 verifiee depuis l index du depot. Le role partage paquets_tiers les depose et les installe EN UN SEUL appel a apt — il sait resoudre un ensemble de fichiers locaux qui se dependent, la ou paquet par paquet echouerait sur l ordre (Icinga en apporte dix-sept). Six roles branches ; chacun retombe sur le depot distant pour ce que le cache n a PAS fourni, et rien d autre. Eprouve pour de vrai : packages.smallstep.com renvoye vers 127.0.0.1, step-cli desinstalle, cache local efface. Le role rejoue installe 0.30.6-1 depuis le cache et la machine obtient ses certificats. Zero echec. Deux defauts de mon propre outil, trouves en le construisant : Smallstep sert son index NON COMPRESSE (404 sur .gz) donc step-cli n etait jamais mis en cache ; et un depot injoignable faisait continue AVANT d incrementer le total, si bien que le script rapportait 20 sur 20 alors qu il en manquait un. Une garde qui ne peut pas echouer ne garde rien — troisieme fois cette semaine. Corrige puis eprouve en le faisant echouer. Reste hors ligne : NTP externe, et l expedition des alertes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2.7 KiB
paquets_tiers — poser ce que Debian ne fournit pas, sans Internet
Pour qui : celui qui prépare une reconstruction hors ligne, ou qui se demande pourquoi une VM neuve va chercher un paquet sur Internet.
Le problème qu'il ferme
Trois dépôts tiers sont configurés sur la flotte — Smallstep, Icinga, Grafana — tous en
HTTPS. Or client_artefacts pose Acquire::https::Proxy "DIRECT", sans quoi le cache
du site refuse les tunnels HTTPS (« 403 CONNECT denied ») et aucun dépôt tiers n'est
joignable.
Cette ligne est juste. Sa conséquence n'avait pas été vue : ces trois dépôts contournent le cache par conception, et chaque VM allait les chercher sur Internet à sa naissance.
step-cli (Smallstep) et alloy (Grafana) sont posés par des intégrations
universelles. Sans lien, une machine neuve n'obtenait ni son client d'autorité ni ses
métriques — elle n'entrait dans aucun flux chiffré. C'était le dernier obstacle à une
reconstruction hors ligne.
Comment il s'en sort
make cacher-paquets lit paquets-tiers.yml, va chercher l'index de chaque dépôt, tire
les .deb aux versions épinglées et vérifie leur empreinte SHA256 — celle que l'index
annonce. Tout atterrit dans ~/.cache/setops/paquets/, à côté de Forgejo, Keycloak et
Nextcloud, qui suivent le même patron depuis toujours.
Ce rôle dépose ensuite ces fichiers sur l'hôte et les installe en un seul appel à
apt — c'est le point : apt sait résoudre un ensemble de fichiers locaux qui se
dépendent mutuellement, alors qu'une installation paquet par paquet échouerait sur
l'ordre. Icinga en apporte dix-sept dans ce cas.
Les dépendances Debian restent l'affaire d'apt et du cache du site, en HTTP. Ce rôle ne s'occupe que de ce que Debian ne fournit pas.
Ce qu'il fait quand le cache est vide
Rien, et il le dit. L'appelant retombe alors sur le dépôt distant, comme avant. Un déploiement connecté ne casse pas parce qu'un cache manque — mais on sait, à la lecture du journal, qu'une reconstruction hors ligne échouerait là.
Usage
- name: Poser les paquets tiers depuis le cache du contrôleur
ansible.builtin.include_role:
name: paquets_tiers
vars:
paquets_tiers_noms: "{{ mon_role_paquets }}"
Puis, pour le reste seulement :
name: "{{ mon_role_paquets
| difference((paquets_tiers_disponibles | default({})).keys() | list) }}"
Éprouver la coupure
Rendre le dépôt injoignable sur un hôte, retirer le paquet, rejouer le rôle :
echo "127.0.0.1 packages.smallstep.com" >> /etc/hosts
apt-get remove -y step-cli
Mesuré le 2026-09-03 : step-cli 0.30.6-1 s'installe depuis le cache, la machine obtient
ses certificats, zéro échec.