From 163383185c7d392bc28775f99666c17526a7f4a1 Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Sun, 23 Aug 2026 14:42:26 -0400 Subject: [PATCH] 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 --- README.md | 14 +++++++++----- inventories/production/hosts.yml | 14 ++++++++++++-- plan/applications.yml | 5 +++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 653715d..8cbc50b 100644 --- a/README.md +++ b/README.md @@ -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//…`. Les dépôts Debian, eux, sont couverts. diff --git a/inventories/production/hosts.yml b/inventories/production/hosts.yml index 461de2e..a382e78 100644 --- a/inventories/production/hosts.yml +++ b/inventories/production/hosts.yml @@ -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 diff --git a/plan/applications.yml b/plan/applications.yml index 6e8e340..0e6c9f0 100644 --- a/plan/applications.yml +++ b/plan/applications.yml @@ -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 }