Set-OPS-Public/roles/serveur_artefacts/templates/zzz-setops.conf.j2
Daniel Allaire c6a7150c60 les depots tiers passent par le cache, et le tenant n a plus le sien
Deux mouvements d une seule doctrine : le site fournit tout ce dont un
tenant a besoin pour venir au monde.

1. LES DEPOTS TIERS. Grafana, Icinga, Smallstep et Collabora ne publient
qu en HTTPS ; apt-cacher-ng ne relaie pas un tunnel, et le socle pose donc
Acquire::https::Proxy DIRECT. Chaque machine sortait elle-meme sur
Internet. Le cache declare desormais un Remap par fournisseur, et chaque
role demande en {{ ..._depot_schema }}:// - http des qu un cache est
declare, https sinon. Le TLS n est rompu nulle part : il est TERMINE au
cache, qui est notre machine, et l integrite vient des signatures.

  avant : 4 fournisseurs en HTTPS direct, 14 machines sortant seules
  apres : 0 source en HTTPS direct, 0 erreur apt sur 14 machines

Trois lecons. Le remap appartient au cache qui SORT : pose sur un cache
chaine, il tente le HTTPS a travers son amont et rend 503. apt_repository
AJOUTE au lieu de remplacer, donc l ancienne ligne https sortait toujours.
Et la liste des fournisseurs ne se devine pas - j en avais trois, l audit
en a revele un quatrieme.

2. LE CACHE DU TENANT. Sa ligne portait son propre retrait depuis toujours
- service MUTUALISABLE, un ecosysteme au premier age peut pointer sur celui
de son hote. Retiree. Ce qu on perd, dit franchement : plus de trafic
inter-zone et plus de charge sur site-cache-01, contre un service de moins
a poser, superviser et reproduire.

3. UN ROLE QU ON RETIRE DOIT DEFAIRE CE QU IL A FAIT. Le retrait a montre
que rien ne nettoie derriere. Le fichier apt visait un cache eteint en
ecrasant le plancher qui fonctionnait - le defaut deja paye a quinze
machines. Et les sondes du cache restaient, le porteur poussant pour des
services qu Icinga ne definit plus (404). Le socle retire le premier,
client_sante derive les sondes attendues et retire les orphelines.

P65 refuse tout role visant un depot relaye en https ecrit en dur. Sa
limite est dite : elle empeche une regression sur ce qui est connu, elle ne
decouvre pas l inconnu.

Mesure : Icinga 87 OK sur 96, prouver 65 OK, lint 0 defaut.

Reste, et c est dit : apt-cacher-ng tourne toujours sur forge-01 que plus
aucun plan ne declare.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-10 14:53:48 -04:00

52 lines
2.2 KiB
Django/Jinja

# GÉNÉRÉ par Set-OPS (rôle serveur_artefacts). NE PAS éditer à la main.
#
# Lu APRÈS acng.conf et zz_debconf.conf : ces valeurs l'emportent.
Port: {{ serveur_artefacts_port }}
BindAddress: {{ serveur_artefacts_ecoute }}
CacheDir: {{ serveur_artefacts_cache }}
LogDir: {{ serveur_artefacts_journal }}
ExThreshold: {{ serveur_artefacts_expiration_jours }}
{% if serveur_artefacts_hors_ligne | bool %}
# MODE HORS LIGNE : le cache ne va plus rien chercher en amont. Il sert ce qu'il détient
# et refuse le reste — c'est l'état d'un écosystème coupé du monde, et l'épreuve qui
# montre ce que le cache détient VRAIMENT.
Offlinemode: 1
{% else %}
Offlinemode: 0
{% endif %}
{% if serveur_artefacts_amont %}
# CHAÎNAGE : ce cache passe par celui de l'hébergeur plutôt que d'aller chez Debian.
# Debian n'est ainsi téléchargé qu'une fois pour tout le site.
Proxy: {{ serveur_artefacts_amont }}
{% endif %}
{% if serveur_artefacts_remaps %}
# ETEND le motif des fichiers relayables — il ne le REMPLACE pas. Sans lui, une cle de
# signature en `.key` rend 403 la ou la meme en `.gpg` passe. Vaut pour TOUT cache de la
# chaine : celui qui relaie refuse avant meme de transmettre.
PfilePatternEx: {{ serveur_artefacts_motif_fichiers_sup }}
{% if not serveur_artefacts_amont %}
# --- DEPOTS TIERS : LE REMAP APPARTIENT AU CACHE QUI SORT (mesure du 2026-09-10) ---
#
# Le client demande en `http://`, ce cache va chercher en `https://` chez le fournisseur.
#
# POURQUOI SEULEMENT ICI. Un cache CHAINE (`Proxy:` vers l'amont) qui porte le meme remap
# tente le HTTPS A TRAVERS son amont — ce qui exige un tunnel CONNECT que l'amont ne fait
# pas. Mesure : le cache du tenant rendait alors 503 sur les trois fournisseurs, la ou il
# rendait 200 en se contentant de TRANSMETTRE la requete en clair.
#
# remap sur le cache du tenant (chaine) -> 503
# remap sur le seul cache du site -> 200
#
# Un cache qui relaie n'a rien a remapper : il passe la demande a qui sort. C'est la meme
# forme que la filiation elle-meme — le locataire emprunte, le site va chercher.
{% for r in serveur_artefacts_remaps %}
Remap-{{ r.nom }}: http://{{ r.hote }} ; https://{{ r.hote }}/
{% endfor %}
{% endif %}
{% endif %}