- épingles posées en préférences apt (990) par chaque rôle et par le socle avant son dist-upgrade ; garde : paquet plus récent ou épingle inopérante - quatre épingles relevées (step-cli, icingadb-redis, icinga-php-*) - paquets_tiers : --force-confold aux mises à jour ; une mise à jour compte comme un changement - CHANGELOG 66 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| meta | ||
| tasks | ||
| README.md | ||
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.