client_pki : la cle de signature vient du depot, non d un CDN tiers
Le depot porte deja cette cle : `serveur_step_ca` la pose depuis ses `files/`, et les deux fichiers ont le meme SHA-256. Le client la telechargeait. Une flotte d AMORCAGE n a ni serveur d artefacts ni cache, donc le schema reste `https` et chaque hote sort en direct ; le telechargement echouait trois amorcages sur quatre, sur une bordure amont que rien ici ne controle. Le repli reste. Verifie sur une grappe jetable : la copie joue sur l hote qui echouait, le telechargement est saute, et le CDN n est appele aucune fois. Assisted-by: Claude Opus 5
This commit is contained in:
parent
bff1396af3
commit
1cb85094ea
2 changed files with 44 additions and 1 deletions
|
|
@ -67,6 +67,21 @@ client_pki_provisioner_password: "{{ vault_step_ca_provisioner_password | defaul
|
|||
# Depot apt officiel Smallstep (partage avec serveur_step_ca).
|
||||
client_pki_depot_cle_url: "{{ client_pki_depot_schema }}://packages.smallstep.com/keys/apt/repo-signing-key.gpg"
|
||||
client_pki_depot_cle_fichier: "/etc/apt/keyrings/smallstep.asc"
|
||||
|
||||
# LA MEME CLE QUE `serveur_step_ca` POSE, et c'est le DEPOT qui la porte : les deux
|
||||
# fichiers ont le meme SHA-256. La chercher ici d'abord evite de sortir sur un CDN tiers
|
||||
# pour des octets qu'on possede.
|
||||
#
|
||||
# CE N'EST PAS THEORIQUE POUR UNE FLOTTE D'AMORCAGE. Elle n'a par definition ni serveur
|
||||
# d'artefacts ni cache, donc `client_pki_depot_schema` reste `https` et chaque hote sort
|
||||
# EN DIRECT ; le telechargement echouait alors trois amorcages sur quatre, avec cinq
|
||||
# reprises, sur une bordure amont que rien ici ne controle.
|
||||
#
|
||||
# Le chemin traverse `serveur_step_ca` plutot que de dupliquer le fichier : deux copies
|
||||
# d'une meme cle divergent le jour ou l'amont la remplace, et rien ne dirait laquelle
|
||||
# fait foi.
|
||||
client_pki_depot_cle_locale: >-
|
||||
{{ role_path }}/../serveur_step_ca/files/smallstep-repo-signing-key.asc
|
||||
client_pki_depot_uri: "{{ client_pki_depot_schema }}://packages.smallstep.com/stable/debian"
|
||||
client_pki_depot_suite: "debs"
|
||||
|
||||
|
|
|
|||
|
|
@ -103,8 +103,36 @@
|
|||
- telecharger_la_cle_de_signature_smallste_present.stat.exists
|
||||
- (telecharger_la_cle_de_signature_smallste_present.stat.size | default(0)) == 0
|
||||
|
||||
- name: Voir si le depot porte la cle de signature Smallstep
|
||||
ansible.builtin.stat:
|
||||
path: "{{ client_pki_depot_cle_locale }}"
|
||||
delegate_to: localhost
|
||||
become: false
|
||||
changed_when: false
|
||||
check_mode: false
|
||||
register: client_pki_cle_depot_locale
|
||||
|
||||
# LE DEPOT D'ABORD, LE RESEAU ENSUITE. `serveur_step_ca` pose deja cette cle depuis ses
|
||||
# `files/` sans rien demander a personne ; le client la telechargeait. Les deux fichiers
|
||||
# sont identiques — meme SHA-256 — si bien que la sortie n'achetait rien et exposait
|
||||
# chaque amorcage a une bordure tierce.
|
||||
- name: Poser la cle de signature Smallstep depuis le depot
|
||||
ansible.builtin.copy:
|
||||
src: "{{ client_pki_depot_cle_locale }}"
|
||||
dest: "{{ client_pki_depot_cle_fichier }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
when:
|
||||
- not (telecharger_la_cle_de_signature_smallste_present.stat.exists and telecharger_la_cle_de_signature_smallste_present.stat.size | default(0) > 0)
|
||||
- client_pki_cle_depot_locale.stat.exists
|
||||
|
||||
# LE REPLI RESTE, et il n'est pas mort : un depot qui ne porterait plus ce fichier doit
|
||||
# encore pouvoir amorcer. Ce qui change est l'ORDRE — on ne sort que faute de mieux.
|
||||
- name: Telecharger la cle de signature Smallstep
|
||||
when: not (telecharger_la_cle_de_signature_smallste_present.stat.exists and telecharger_la_cle_de_signature_smallste_present.stat.size | default(0) > 0)
|
||||
when:
|
||||
- not (telecharger_la_cle_de_signature_smallste_present.stat.exists and telecharger_la_cle_de_signature_smallste_present.stat.size | default(0) > 0)
|
||||
- not client_pki_cle_depot_locale.stat.exists
|
||||
# `force` PARCE QU'UNE REPRISE CONDITIONNELLE NE REPREND RIEN (2026-09-12).
|
||||
#
|
||||
# Sans lui, `get_url` envoie un `If-Modified-Since` des que le fichier existe. Le cache
|
||||
|
|
|
|||
Loading…
Reference in a new issue