Ajout de meta/supervision.yml a six roles, chacun deposant sa propre sonde selon le contrat des greffons Nagios. DEUX PRINCIPES POSES AU DOCUMENT DE CONCEPTION, parce que la premiere sonde les a imposes : 1. UNE SONDE DOIT POUVOIR ETRE MISE EN DEFAUT PAR PARAMETRE. Cible et seuils sont des variables du role : on la prouve rouge avec un port ferme ou un seuil impossible, sur une machine reelle, sans rien casser, et aussi souvent qu on veut. Une sonde qu on ne peut prouver qu en cassant un service ne sera prouvee qu une fois. 2. LA SONDE VIT LA OU VIT LA VERITE. « Ce noeud est-il collecte ? » est une sonde de serveur_prometheus, pas de client_metrique : une seule y voit les N noeuds, et surtout elle voit le cas SILENCIEUX — celui qui a cesse d etre collecte ne peut pas s en plaindre. LES SIX : cache-apt (artefacts, repond + place), resolution (resolveur, zone interne ET Internet — deux chemins distincts), forge (forgejo, son propre /api/healthz), collecte (prometheus, 15/15 cibles), tableaux (grafana, base ok), ingestion (loki, PRET a ingerer, pas seulement en ecoute). TROIS FOIS J AI ECRIT LA SONDE AVANT DE MESURER, ET TROIS FOIS ELLE A EU TORT. La forge : port 443 et chemin des depots INVENTES — elle ecoute en 3000 derriere l edge et n a legitimement aucun depot. Loki : j ai conclu « panne persistante » sur deux lectures prises a quelques secondes d intervalle, juste apres un redemarrage ; l anneau etait ACTIVE et la reponse est passee a ready moins d une minute plus tard. Le delai de stabilisation est desormais un AVERTISSEMENT nomme, pas une panne. On demande au service ce qu il pense de lui-meme quand il sait le dire (healthz, /ready, /api/health) plutot que d inventer un critere de l exterieur. make prouver : CONFORME. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
75 lines
4 KiB
YAML
75 lines
4 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
|