artefacts : la forge sert aussi les binaires

serveur_artefacts colocalise sur forge-01. Toute la flotte prend ses paquets
Debian dans l'ecosysteme. Eprouve en coupant l'amont.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-08-23 14:42:26 -04:00
parent aeb0e1635a
commit 163383185c
3 changed files with 26 additions and 7 deletions

View file

@ -48,7 +48,7 @@ Les cinq machines tournent. L'adressage dérive du seul seed `index: 29` — sup
| `infra-dns-01` | infra-dns | `10.29.19.11` | PowerDNS autoritatif |
| `infra-pki-01` | infra-pki | `10.29.19.21` | step-ca — l'autorité interne |
| `ops-01` | ops | `10.29.19.41` | le **poste d'exploitation** |
| `forge-01` | forge | `10.29.21.11` | Forgejo — le génome |
| `forge-01` | forge | `10.29.21.11` | Forgejo — le génome, **et** le cache d'artefacts |
**Forgejo tourne sur SQLite**, pas sur une VM PostgreSQL dédiée : une base qu'une
poignée de personnes sollicite ne justifie pas un serveur, une zone, un secret et une
@ -64,6 +64,11 @@ d'irremplaçable (les clés de l'AC, les dépôts).
**Il est hébergé par la fabric de Chezlepro** (`SITE-Chezlepro`), au même titre qu'un
autre tenant. Il n'a pas d'underlay à lui.
**Il sert ses propres binaires.** `forge-01` porte aussi la source d'artefacts
(apt-cacher-ng) : toute la flotte y prend ses paquets Debian au lieu d'aller chez Debian.
La forge est la source, du code **et** des binaires. Éprouvé en coupant l'amont — un
paquet en cache est servi en `0 o/s`, un paquet absent est refusé par un `503`.
**Il résout par lui-même.** Les quatre hôtes clients interrogent un Unbound local, qui
tient la zone `genese.internal` de `infra-dns-01` et **récurse depuis les serveurs
racine** pour le reste — `forward-addr` = 0, aucun résolveur tiers n'est consulté.
@ -154,7 +159,6 @@ ses VLAN n'auraient existé nulle part.
déménagement tient en **trois** valeurs de `group_vars/proxmox.yml` — nœud, stockage,
gabarit. Le pont n'en fait pas partie : chaque VM atterrit sur le VNet dérivé de sa
zone.
- [ ] **Une source d'artefacts.** Sa forge héberge du code, pas des binaires. Les
collections Ansible sont réglées (cache du contrôleur, poussé par SSH) ; Forgejo,
step-ca et les autres viennent encore du dehors. Un enfant coupé de l'internet ne
se construit pas.
- [ ] **Les dépôts tiers en HTTPS** (Smallstep, Grafana, Icinga) vont encore en direct :
les faire passer par le cache demande de réécrire leurs sources en
`http://cache/<remap>/…`. Les dépôts Debian, eux, sont couverts.

View file

@ -3,6 +3,13 @@
# Source : instance/plan/serveurs.yml + instance/plan/applications.yml + instance/plan/nomenclature.yml.
all:
children:
client_artefacts:
hosts:
forge-01: null
infra-dns-01: null
infra-edge-01: null
infra-pki-01: null
ops-01: null
client_backup:
hosts:
forge-01: null
@ -26,10 +33,10 @@ all:
ansible_host: 10.29.21.11
ansible_user: ansible
proxmox_cidr: 24
proxmox_coeurs: 1
proxmox_coeurs: 2
proxmox_disque_taille: 80G
proxmox_etiquette_vlan: ''
proxmox_memoire: 2048
proxmox_memoire: 2560
proxmox_passerelle: 10.29.21.1
proxmox_pont: t29appl
proxmox_vlan: 1296
@ -93,6 +100,9 @@ all:
hosts: {}
modeles_vm:
hosts: {}
serveur_artefacts:
hosts:
forge-01: null
serveur_debian:
hosts:
forge-01: null

View file

@ -5,3 +5,8 @@ applications:
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
forgejo: { groupe: serveur_forgejo, hote: forge-01, port: 3000, expose: [forge.genese.internal] }
ops: { groupe: serveur_ops, hote: ops-01 }
# LA FORGE EST LA SOURCE — du code ET des binaires. Colocalise sur forge-01 plutot
# que sur une VM a elle : c'est la meme fonction (servir a ses enfants ce dont ils
# ont besoin pour exister), et patient 0 est deliberement le plus petit ecosysteme
# complet. Un autre ecosysteme peut le placer ou il veut.
artefacts: { groupe: serveur_artefacts, hote: forge-01 }