La face reseau porte ses zones ; verifier_frontiere confronte supernet,
administration, tunnel, alias de groupe, routes et traduction sortante a
la face reseau et a la fiche du site. Aucun ecart ; cinq alterations vues.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La face reseau porte les flux resolus par le locataire ; verifier_flux
les confronte au devis Proxmox, port par port. resoudre_flux publie les
sources_declarees d un port aussi public, que le locataire jetait.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
locataire.face_reseau() publie index, machines, groupes, administration,
zones publiques et cle de sauvegarde ; verifier_face la confronte aux
consommateurs du site (decouverte, devis Proxmox, frontiere, inventaire
du site). P85 : aucun ecart ; huit alterations vues en ecart.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
site.fiche_pour(locataire) reunit attribution, offre, racine et les
trois lectures directes de l instancier ; verifier_fiche la confronte
aux copies, a la racine et a l inventaire du locataire. P84 : aucune
ecart sur les deux couples ; sept alterations vues en ecart.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/contexte.py : Ecosysteme, Site, Locataire, contexte actif
(fichier `contexte`, sinon les indices d avant via instance_courante
et underlay.chemin). 40 controles dans make test. Corrige aussi P34 et
P48, rouges depuis le commit de la page de conception.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/conception-contextes.md, arretee avec l exploitant : le releve
des devinettes de contexte et des echanges site <-> locataire, le
contrat en deux fiches, le poste selecteur, le chemin en neuf etapes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Technolibre et Chezlepro, 42 min chacun, sans arret ni echec ; (73),
(74) et les corrections de (76) relus sur les machines neuves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test_restauration fournit client_backup_attente_verrou et exige
--retry-lock ; test_frontiere_refus lit le WAN sous if_wan ; prouver
--verifier nomme les preuves en echec ; le Makefile n exporte plus une
liste de cles de voute vide (valeur identique sur le poste).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le nom par defaut etait fixe : le second export butait sur le premier.
Il porte maintenant la date (l heure en plus le meme jour) ; un export
de voutes identiques a la derniere archive n ecrit rien. Le LISEZ-MOI
et la doc restaurent la plus recente archive.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Les quatre scripts qui touchent au depot appellent restic avec
--retry-lock (client_backup_attente_verrou, 30 min) : deux minuteurs
partis ensemble ne fabriquent plus de faux critique (aucun instantane,
depot corrompu). Eprouve sur un depot jetable, dans les deux sens.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Devant un instantane vide, les sondes sauvegarde et restauration comptent
ce que les chemins sauvegardes contiennent sur le noeud : rien (RIEN A
SAUVEGARDER, avertissement), arrive apres l instantane (avertissement),
ou deja la a sa prise (critique : la sauvegarde manque ses donnees).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Technolibre en 44 min, Chezlepro en 42 min, sans arret ni failed ;
7 jeux d etat restaures chez chacun ; versions, epingles, vigie, vues
metier, filtres Alloy et synthese relus sur les machines neuves.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- metier: sur chaque sonde (47) ; catalogue des vues et services dans
serveur_icingaweb2 ; vues Mes outils / Services rendus / Exploitation
- contrôles calculés comme serveur_icinga (sauvegardes, socle, matériel,
frontière) ; vue vide non posée ; ancien exemple supervision retiré
- CHANGELOG 71
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- setops.conf : GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH vers setops-synthese.json
- CHANGELOG 70 complété
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- tableau-synthese : faut-il agir, marge, activité, où regarder ensuite ;
hyperviseurs au site seulement ; chaque panneau dit quoi faire
- CHANGELOG 70
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- materiel.py : textes accentués et champ action par mesure (seuils inchangés)
- tableau-materiel : mode d'emploi en tête ; descriptions en trois temps
(ce que ça mesure, seuils, quoi faire)
- CHANGELOG 69
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- serveur_nextcloud : tasks/monter.yml (maintenance, ancien code mis de côté,
data/config/ajouts repris, occ upgrade) ; signature PGP vérifiée
- serveur_forgejo : 16.0.5 ; une montée se simule
- serveur_artefacts : le site sert aussi la signature de Nextcloud
- CHANGELOG 68
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- serveur_keycloak : une montée remplace la distribution (arrêt, retrait,
extraction) au lieu de construire les anciens fichiers sous le nouveau repère
- serveur_oauth2_proxy : repère = version du binaire ; empreinte SHA-256
épinglée, archive refusée et retirée du cache si elle diffère
- CHANGELOG 67
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- épingles posées en préférences apt (990) par chaque rôle et par le socle
avant son dist-upgrade ; garde : paquet plus récent ou épingle inopérante
- quatre épingles relevées (step-cli, icingadb-redis, icinga-php-*)
- paquets_tiers : --force-confold aux mises à jour ; une mise à jour compte
comme un changement
- CHANGELOG 66
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- alloy 1.20.1-1, grafana 13.2.3, loki 3.7.8 (les runners avaient tiré
la dernière version publiée ; le cache du poste aurait rétrogradé)
- CHANGELOG 65
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- serveur_icingaweb2 : python3-psycopg2 avant la première requête vers sa base ;
au site il venait de PostgreSQL, co-localisé, chez un locataire il manquait
- CHANGELOG 64 : déploiement relu chez Chezlepro et Technolibre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- serveur_icingaweb2 : base de console résolue et utilisée en SSO comme en db
(config_backend db) ; le badge de migrations la réclame sans condition
- serveur_icingaweb2 : php8.4-fpm et nginx avant les paquets tiers ; apache2
retiré s'il part seul (apt-get -s purge)
- serveur_nginx : ssl_protocols de Debian neutralisé (doublon à chaque reload)
- site_inventaire : les hyperviseurs ne reçoivent plus le cache du site ni ses
amorçages, qu'ils n'atteignent pas
- exemple de voûte : vault_bd_icingaweb2 dans tous les modes ; CHANGELOG 64
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- appliquer, deployer-groupe et site-appliquer refusent quand GROUPE vient
du défaut du Makefile ($(origin GROUPE) = file) ; l'ancienne garde -z ne
pouvait jamais se déclencher, et un make appliquer seul avait appliqué
serveur_debian à tout Technolibre
- CHANGELOG 63 : déploiement chez les deux locataires relu sur 26 machines ;
journal -77 % / -86 %, audit -72 % / -80 %, edge-mta-01 -96 % / -98 %
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- client_journal : sept stage.drop de plus pour Postfix (connect, lost
connection after CONNECT, disconnect commands=0/0, SSL_accept error) et
Dovecot LMTP ; phrase exacte, seulement depuis une machine sondeuse
- éprouvé sur une heure réelle de Chezlepro (69 % jeté, 96 % sur
edge-mta-01, le scanner externe reste visible) et avec le binaire Alloy
1.20.1 (9 lignes de sonde jetées, 7 légitimes reçues)
- Makefile : appliquer passe ARGS, comme site-appliquer
- CHANGELOG 63 : mesure des locataires ; cache de paquets du poste plus
vieux qu'eux (alloy 1.19.2 / loki 3.7.7 contre 1.20.1 / 3.7.8)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- client_sante : tasks/retirer.yml, joué sur hyperviseurs:!client_sante ;
le minuteur resté depuis le 2026-09-10 visait 10.0.36.11 et échouait
toutes les 15 min (une unité en échec permanente par hyperviseur)
- site_inventaire : plus de client_sante_icinga_url pour les hyperviseurs
- client_journal : loki.process jette le bruit de la sonde connectivite,
phrase exacte et seulement depuis une machine de client_sante
- serveur_loki : log_level warn (Loki réingérait ses propres requêtes)
- auditd : règle never pour adjtimex de node_exporter (35 % de l'audit) ;
nouveau handler augenrules --load, un restart d'auditd ne rechargeait
pas les règles sur Debian 13
- audit : rapport de preuves du 2026-10-03, carte à 51 pièces
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'etape tournait avant la remise du Nextcloud restaure, sur une base ou le
groupe n'existait pas encore : la base d'avant revenait avec son etat d'avant.
sysadmin etait admin chez Technolibre, pas chez Chezlepro. Sortie dans
admin.yml et rejouee apres la remise.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Un reject final, journalise, sur chaque interface interne (zones du site,
gestion, transit, WireGuard) : un flux mal declare entre deux zones echoue
au lieu d'expirer. P53 affinee, P50 ne compte que les block, test du devis.
La sonde classe ECONNREFUSED en avertissement : le RST de la frontiere est
indiscernable d'un port ferme.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/var/lib/setops etait tenu par quatre roles (0750 contre 0755) : apt-cacher-ng
ne le traversait plus, le depot rendait 403 et chaque runner reconstruit allait
chercher 500 Mo sur Internet. /etc/setops (0700 contre 0755) et /srv/restic au
site portaient le meme desaccord. test_repertoires_partages.py le refuse.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conditionnee a serveur_postfix_submission_actif, que seuls les locataires
levent. Le relais du site fait sortir le courriel des machines par le 25 ;
il n'a ni utilisateurs ni annuaire, et n'offre pas la soumission.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La forge du site sert son propre TLS (443) : le flux 3000 derriere un edge
ne vaut que si serveur_forgejo_tls est faux. L'AXFR 5300 ne vaut que la ou
l'instance publique existe (dns_public_site non vide) : pas au site.
Absente partout = vide ; une expression Jinja garde le statu quo.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Au site, l'inventaire est dynamique : le chemin de la liste pointait hors du
depot (meme surcharge que le ruleset). /etc/setops a deja ses gardiens : la
liste, qui n'a rien de secret, va dans /usr/local/lib/setops. L'activation
du minuteur ne s'execute plus en --check.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La vigie (8080) et la console (8090) n'ecoutent sur le reseau qu'en mode
locale ; en SSO, nginx est lie a 127.0.0.1 et la regle ne menait a rien.
Evaluee par ecosysteme dans les trois generateurs (nftables, Proxmox,
frontiere). Locataires : 8 regles Proxmox et 4 nftables en moins. Site :
inchange.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
make flux ecrit, a cote de chaque .nft et depuis les memes regles, la
liste de ce que chaque VM doit joindre. La sonde (nftables_baseline) la
teste chaque minute avec la cause (rejete, delai, personne n'ecoute) ;
client_sante la porte en mode minute ; Icinga a une fraicheur par sonde.
eprouver_parefeu --sondes : tout activer d'un coup, juger par Icinga.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Treize modules Python en parallele sur l'AC (765 Mo, 1 vCPU) : le noyau
a tue celui de collab-01 (rc=137) a la reconstruction de Technolibre.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lock_timeout ne protege que la verification du module ; apt-get n'attend
pas (APT 3.0 ne l'accorde qu'a la commande apt). Verrou repris par
unattended-upgrades sur mon-01 de Technolibre, ne une minute plus tot.
DPkg::Lock::Timeout pour tout appel d'APT, en premiere tache.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
L'etape parefeu est restee muette douze minutes : ecrivant dans un tuyau,
le Python enfant gardait sa sortie par blocs. PYTHONUNBUFFERED pour tous
les enfants, -u pour eprouver_parefeu.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La copie de l'AC d'Icinga est deposee aussi par client_sante, plus tot :
sur une flotte neuve elle ne changeait jamais ici, et rien ne partait
(reconstruction de Chezlepro). client_backup retient desormais l'empreinte
de l'Icinga qui l'a entendu, apres le rapport. eprouver_parefeu ne s'arrete
plus sur les critiques presents avant l'activation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TENANT= le designe en toutes lettres ; le nom qu'exige raser en est
derive par raser.nom_court (une seule derivation). raser seul garde
son garde-fou.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Moteur, plan du locataire, depot du site (deduit d'underlay.yml), en
avance rapide seulement ; refus devant une modification locale. Vaut
aussi pour une reprise DEPUIS=creer ou inseminer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>