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
113 lines
6.2 KiB
YAML
113 lines
6.2 KiB
YAML
---
|
||
# LA SOURCE D'ARTEFACTS DE L'ÉCOSYSTÈME — apt-cacher-ng.
|
||
#
|
||
# Un écosystème qui prétend se reproduire depuis son propre génome allait chercher, pour
|
||
# poser une seule machine, les binaires de **six serveurs étrangers** : deb.debian.org,
|
||
# security.debian.org, packages.smallstep.com, apt.grafana.com, packages.icinga.com,
|
||
# codeberg.org. La forge héberge le CODE ; il manquait qui héberge les BINAIRES.
|
||
#
|
||
# CE N'EST PAS THÉORIQUE. Deux cicatrices dans ce dépôt :
|
||
# - `packages.smallstep.com` est intermittent — la même URL pend au premier essai et
|
||
# répond en 0,48 s au second. Ça a fait échouer un déploiement de quarante minutes
|
||
# sur la PREMIÈRE machine (2026-08-23) ;
|
||
# - `galaxy.ansible.com` est carrément injoignable depuis l'overlay, et c'est très bien
|
||
# ainsi — on l'a réglé par le cache du contrôleur, pas en ouvrant la frontière.
|
||
#
|
||
# CE RÔLE COUVRE LES DÉPÔTS APT. Les téléchargements DIRECTS (binaire Forgejo, Keycloak,
|
||
# Nextcloud, oauth2-proxy, collections Ansible) sont déjà couverts, autrement : le
|
||
# contrôleur télécharge une fois dans son cache et pousse par SSH. Deux mécanismes,
|
||
# parce que ce sont deux problèmes — on ne sert pas un dépôt apt par `scp`.
|
||
|
||
serveur_artefacts_paquets:
|
||
- apt-cacher-ng
|
||
serveur_artefacts_service: "apt-cacher-ng"
|
||
serveur_artefacts_port: 3142
|
||
# L'écoute est large : les clients sont sur d'autres hôtes de la flotte. C'est le pare-feu
|
||
# est-ouest, dérivé de meta/flux.yml, qui restreint QUI peut s'y adresser — pas l'adresse
|
||
# d'écoute, qui ne saurait distinguer un voisin légitime d'un autre.
|
||
serveur_artefacts_ecoute: "0.0.0.0"
|
||
serveur_artefacts_cache: "/var/cache/apt-cacher-ng"
|
||
|
||
# Combien de temps un paquet reste en cache sans être redemandé. 30 jours : assez pour
|
||
# qu'une reconstruction complète retrouve tout ce que la précédente a téléchargé.
|
||
serveur_artefacts_expiration_jours: 30
|
||
|
||
# --- LE MODE HORS LIGNE, QUI EST AUSSI L'ÉPREUVE -----------------------------
|
||
#
|
||
# `true` : le cache ne va PLUS rien chercher en amont — il sert ce qu'il détient, et
|
||
# refuse le reste. C'est le mode d'un écosystème coupé du monde, et c'est surtout le seul
|
||
# moyen de PROUVER que le cache sert vraiment : tant qu'internet répond, un `apt update`
|
||
# qui réussit ne dit pas d'où vient l'octet.
|
||
#
|
||
# Laisser à `false` en exploitation normale.
|
||
serveur_artefacts_hors_ligne: false
|
||
|
||
# Journalisation : apt-cacher-ng tient un journal des requêtes servies. C'est lui qui
|
||
# permet de répondre à « ce paquet, l'avons-nous servi ou est-il venu du dehors ? ».
|
||
serveur_artefacts_journal: "/var/log/apt-cacher-ng"
|
||
|
||
# --- LE CHAINAGE DES CACHES (2026-08-24) --------------------------------------
|
||
#
|
||
# Chaque écosystème garde SON cache, et celui-ci prend le cache de l'hébergeur comme
|
||
# amont. Debian n'est alors téléchargé qu'UNE FOIS pour tout le site :
|
||
#
|
||
# VM du tenant -> cache du tenant -> cache du SITE -> Debian
|
||
#
|
||
# POURQUOI PAS UN CACHE UNIQUE OÙ TOUTES LES VM TAPENT. Il aurait fallu ouvrir un flux de
|
||
# chaque machine de chaque tenant vers un hôte d'un autre tenant — N×M chemins à travers
|
||
# le default-deny. Avec le chaînage il n'y en a qu'UN par écosystème, entre deux caches.
|
||
#
|
||
# Et l'étanchéité y gagne : le cache du site ne voit que des requêtes AGRÉGÉES, jamais
|
||
# quelle machine installe quoi.
|
||
#
|
||
# Vide = ce cache va directement à l'amont Debian. C'est le cas du cache du SITE lui-même,
|
||
# et de tout écosystème qui s'est émancipé (docs/filiation-emancipation.md).
|
||
serveur_artefacts_amont: ""
|
||
|
||
# --- Sonde de supervision -----------------------------------------------------------
|
||
# La cible et les seuils sont des VARIABLES pour que la sonde puisse etre mise en defaut
|
||
# sans casser le service (docs/supervision-conception.md).
|
||
serveur_artefacts_sonde_port: "{{ serveur_artefacts_port }}"
|
||
serveur_artefacts_sonde_repertoire: /var/cache/apt-cacher-ng
|
||
# Un cache plein ne se plaint pas : il cesse simplement de servir ce qu'il n'a pas pu
|
||
# ecrire. On prend de l'avance.
|
||
serveur_artefacts_sonde_pct_avert: 85
|
||
serveur_artefacts_sonde_pct_crit: 93
|
||
|
||
# --- LE RELAIS DES DEPOTS TIERS (2026-09-10) -----------------------------------------
|
||
#
|
||
# Set-OPS tire ses paquets applicatifs de trois fournisseurs qui ne servent QU'EN HTTPS :
|
||
# Grafana (grafana, loki, alloy), Icinga (icinga2, icingadb), Smallstep (step-ca). Le
|
||
# cache ne relaie pas le HTTPS — il faudrait rompre le TLS de bout en bout — si bien que
|
||
# CHAQUE machine allait les chercher elle-meme sur Internet. Mesure du 2026-09-10 : 58
|
||
# references de depot sur la flotte, quatorze machines sortant chacune de son cote.
|
||
#
|
||
# LE REMAP EST LA VOIE PROPRE, et le role `client_artefacts` la nommait deja : le client
|
||
# demande `http://apt.grafana.com/...` au cache, le cache va chercher en `https://` chez
|
||
# le fournisseur. Le TLS n'est rompu nulle part — il est simplement TERMINE au cache, qui
|
||
# est notre machine. Et l'integrite ne depend pas du transport : elle vient des signatures
|
||
# du depot, qu'apt verifie de toute facon. C'est exactement le raisonnement deja tenu pour
|
||
# `deb.debian.org`, applique aux memes conditions.
|
||
#
|
||
# `hote` sans schema : le gabarit fabrique la paire `http://<hote>` -> `https://<hote>/`.
|
||
serveur_artefacts_remaps:
|
||
- { nom: grafana, hote: "apt.grafana.com" }
|
||
- { nom: icinga, hote: "packages.icinga.com" }
|
||
- { nom: smallstep, hote: "packages.smallstep.com" }
|
||
# Collabora — trouve APRES coup, et c'est la lecon : la liste ne se devine pas.
|
||
# L'audit des sources apt de la flotte l'a rendu visible quand les trois autres
|
||
# etaient deja passes au cache. Une machine sur quatorze le portait.
|
||
- { nom: collabora, hote: "www.collaboraoffice.com" }
|
||
|
||
# LES CLES DE SIGNATURE PASSENT AUSSI, et il a fallu le demander (mesure du 2026-09-10).
|
||
#
|
||
# apt-cacher-ng ne relaie que les chemins qu'il RECONNAIT comme fichiers de depot. Une
|
||
# cle en `.gpg` passait, la meme en `.key` rendait 403 :
|
||
#
|
||
# packages.smallstep.com/keys/apt/repo-signing-key.gpg 200
|
||
# apt.grafana.com/gpg-full.key 403
|
||
#
|
||
# `PfilePatternEx` ETEND le motif par defaut au lieu de le remplacer — remplacer ferait
|
||
# tomber tout le reste. Sans cette ligne, le remap serait vrai a moitie : les paquets
|
||
# passeraient par le cache, et chaque machine sortirait quand meme chercher sa cle.
|
||
serveur_artefacts_motif_fichiers_sup: '.*\.(key|asc)$'
|