Set-OPS-Public/roles/serveur_artefacts/defaults/main.yml
Daniel Allaire 32e1f6fbcd
Some checks failed
verifier / verifier (push) Has been cancelled
artefacts : la forge sert le code, il manquait qui sert les binaires
serveur_artefacts (apt-cacher-ng) + client_artefacts, integration universelle
qui s'eteint quand aucun hote ne porte le service et RETIRE la direction posee.
Chez patient 0 : colocalise sur forge-01 -- la forge est la source, du code et
des binaires.

La preuve est le mode hors ligne : paquet en cache servi en 0 o/s, paquet absent
refuse par un 503. Tant qu'internet repond, un apt update qui reussit ne dit pas
d'ou vient l'octet.

Trois lecons : apt fait heriter Acquire::https::Proxy de la valeur HTTP (d'ou
403 CONNECT denied sur les depots tiers, et smallstep injoignable) ; un service
ne doit pas dependre de lui-meme pour se reparer (l'apt update du role passait
par le cache hors ligne) ; et rediriger 2>/dev/null, c'est choisir de ne pas
voir.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 14:41:56 -04:00

47 lines
2.6 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"