Le deploiement de Chezlepro depuis son propre runner a franchi le socle et le
durcissement sur les quinze machines, et s est arrete sur une seule :
infra-pki-01 : Echec temporaire dans la resolution du nom
url: https://packages.smallstep.com/keys/apt/repo-signing-key.gpg
UN TENANT N A PAS DE DNS SORTANT, ET C EST VOULU. Il resout chez lui, sa requete ne
traverse jamais la frontiere. apt s en sort par le mandataire du cache, qui resout a
sa place ; get_url n a pas de mandataire. Mesure sur la machine : DNS bloque, 443
sortant OK par adresse, apt via le cache OK.
Les cinq reprises du role ne pouvaient rien : elles etaient ecrites pour un serveur
INTERMITTENT (2026-08-23), pas pour une resolution fermee. Une reprise ne repare que
ce qui est passager.
UNE DETTE NOMMEE, APPELEE. client_artefacts le disait : les depots tiers en HTTPS
vont en direct, la seconde voie est propre et RESTE A FAIRE. Elle a ete appelee le
jour ou un ecosysteme s est reconstruit derriere une frontiere qui fait son travail.
La cle est versionnee, avec son empreinte et sa procedure de rafraichissement. Meme
idiome que les collections et les roues : le depot porte, la cible n ouvre rien.
C est ce qui rend une lignee reproductible SANS INTERNET.
Cout ecrit : une rotation amont n est plus recuperee toute seule, mais elle ne passe
pas inapercue — apt refuse alors le depot, bruyamment.
TROUVE EN LA RECUPERANT : l URL publique REDIRIGE vers pkgs.infra.smallstep.com.
Sans suivre les redirections on obtient un fichier VIDE, et curl -f sans -L sort en
succes. La procedure le dit, parce que ce piege ne se voit qu au deploiement suivant.
Le correctif du pare-feu a tenu : plus une seule suspension, quinze machines a
ok=66 et 0 unreachable.
make verifier : vert. make prouver : CONFORME, 55 OK, 0 echec, 0 saute.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
2.3 KiB
La clé de signature du dépôt Smallstep — versionnée, et pourquoi
pub rsa2048 2021-05-04 [SC]
35BA A0B3 3E9E B396 F59C A838 C0BA 5CE6 DC63 15A3
uid Artifact Registry Repository Signer <artifact-registry-repository-signer@google.com>
Pourquoi elle est ici et non téléchargée
Un tenant n'a pas de DNS sortant, et c'est voulu — il résout chez lui, sa requête ne
traverse jamais la frontière. apt s'en sort par le mandataire du cache, qui résout à sa
place ; get_url n'a pas de mandataire.
Mesuré le 2026-08-30 sur infra-pki-01, première machine à porter l'autorité de
certification de Chezlepro :
Request failed: <urlopen error [Errno -3] Échec temporaire dans la résolution du nom>
url: https://packages.smallstep.com/keys/apt/repo-signing-key.gpg
La dette était déjà nommée dans roles/client_artefacts/defaults/main.yml : « les dépôts
tiers en HTTPS continuent d'aller en direct […] la seconde voie est propre et reste à
faire ». Elle a été appelée le jour où un écosystème s'est reconstruit derrière une
frontière qui fait son travail.
Ce que ça achète : une lignée qui se reproduit sans Internet. C'est le même principe que les collections Ansible et les roues Python — le contrôleur récupère une fois, le dépôt porte, la cible n'ouvre rien.
Ce que ça coûte, et qu'il faut savoir
Cette clé expirera ou tournera un jour. Le dépôt apt échouera alors bruyamment, à la vérification de signature — un échec clair, pas un silence. C'est le bon sens de la panne : mieux vaut un refus lisible qu'un téléchargement qui réussit depuis n'importe où.
La remettre à jour
Depuis une machine qui a le DNS (le poste de l'exploitant), et en suivant les
redirections — l'URL publique renvoie vers pkgs.infra.smallstep.com, et sans -L on
récupère un fichier VIDE que rien ne signale :
curl -fsSL https://packages.smallstep.com/keys/apt/repo-signing-key.gpg \
-o roles/serveur_step_ca/files/smallstep-repo-signing-key.asc
gpg --show-keys --with-fingerprint roles/serveur_step_ca/files/smallstep-repo-signing-key.asc
Comparer l'empreinte à celle du haut de ce fichier avant de committer. Une clé qu'on remplace sans regarder son empreinte n'est plus une clé, c'est un fichier.