Commit graph

583 commits

Author SHA1 Message Date
4ee149a0c6 vigie : psycopg2 sur l'hôte de la vigie ; base appliquée chez les locataires
- 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>
2026-10-03 21:17:38 -04:00
f11bb11ad7 vigie : sa base dans tous les modes ; trois restes du site corrigés
- 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>
2026-10-03 21:04:51 -04:00
2f275d8a7d make : appliquer refuse un GROUPE non donné ; locataires corrigés et mesurés
- 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>
2026-10-03 20:08:21 -04:00
b4ae92c03f journaux : le bruit de sonde du courriel filtré ; make appliquer accepte ARGS
- 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>
2026-10-03 19:01:07 -04:00
8d40c687e1 site : journaux allégés, porteur de santé retiré des hyperviseurs
- 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>
2026-10-03 17:58:47 -04:00
8b008a8cf4 nextcloud : le groupe d'habilitation redevient admin apres une restauration
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>
2026-10-01 20:26:03 -04:00
9414dca750 journal : la frontiere refuse a voix haute a l'interieur
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 16:10:40 -04:00
a4b6565056 journal : Chezlepro reconstruite en 41 minutes, sans arret
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 14:49:03 -04:00
7a2f179f39 repertoires partages : un seul mode par repertoire ; le depot de binaires du site sert de nouveau
/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>
2026-10-01 14:01:54 -04:00
c1408be9bb journal : aucune exception, la soumission suit son interrupteur
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:30:05 -04:00
e858fe60d3 journal : la frontiere reconciliee (8 regles et 2 alias retires)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:11:18 -04:00
ff518e18c2 journal : seulement_si, la sonde au site, la frontiere en attente
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:07:26 -04:00
209730b62a journal : premiere reconstruction sans arret ; parefeu par la sonde connectivite (135 s / 94 s)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 23:08:41 -04:00
49a7e12850 journal : second arret de Technolibre, OOM sur l'AC, run_once
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 19:26:20 -04:00
b5fa0e8d23 common_packages : apt-get attend le verrou dpkg lui aussi
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>
2026-09-30 18:18:13 -04:00
f425fb6cb3 journal : troisieme reconstruction de Chezlepro, arret au pare-feu, cause et correction
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:11:37 -04:00
249d37d2c4 reconstruire-locataire : le nom de l'ecosysteme n'est plus demande deux fois
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>
2026-09-30 15:56:42 -04:00
a5a21ee4c5 reconstruire-locataire : le runner du site tire ses trois depots avant toute etape
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>
2026-09-30 15:35:23 -04:00
5a6d0f28f6 reconstruire-locataire : eprouve d'armer a bilan ; le suivi ne duplique plus le journal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:24:28 -04:00
cc906af918 reconstruction : monter-flotte et parefeu-*-flotte entrent dans le code
La sequence du runner (flux, socle, deployer-tout, valider) devient
make monter-flotte ; reconstruire s'appuie dessus. eprouver_parefeu.py
--flotte : toutes les VM une a une, runner en dernier, arret au premier
refus ; les reseaux des IPSet (zone d'administration) comptent enfin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 05:23:27 -04:00
9167f67c7b client_backup : le web frontal quitte le catalogue des detenteurs d'etat
Il relaie et ne sert rien lui-meme. Un noeud qui n'a plus rien a
sauvegarder perd aussi ses verifications de depot et de restauration,
qui rapportaient sinon a des services qu'Icinga ne declare plus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:46:19 -04:00
b135b09488 client_backup : un Icinga neuf recoit le premier rapport sans attendre dimanche
La copie de l'AC d'Icinga change quand Icinga ou le noeud est neuf : elle
declenche deposer, verifier le depot, verifier la restauration. Eprouve
sur web-frontal-01 de Technolibre ; second passage sans effet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:40:20 -04:00
844568af08 journal : Chezlepro reconstruite par les runners, l'etat est revenu a l'identique
AC (meme racine), sysadmin, annuaire, Nextcloud, DKIM, bases : empreintes
identiques avant et apres. Un defaut trouve et corrige (annuaire vierge).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 04:33:56 -04:00
515aac415a restauration : la section d'une base passe a psql par l'entree standard
postgres ne lit pas le repertoire jetable de root ; trouve en repetition
sur data-sql-01 de Technolibre. Le test l'exige desormais.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:51:19 -04:00
8a9da0c31a restauration : la reconstruction remet l'etat de l'incarnation precedente
Chaque role proprietaire (AC, bases, annuaire, Nextcloud, rspamd/DKIM,
courriel, forge, web) remet son etat au moment ou il le creerait neuf,
depuis le dernier instantane anterieur a la naissance de la machine.
La sauvegarde refuse de deposer tant qu'un etat d'avant attend.
Outil de noeud setops-restaurer ; cibles sauvegarder-maintenant,
restauration-etat, restauration-renoncer ; test_restauration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:39:22 -04:00
d3437a6308 journal : etat de Technolibre remis en place sans reconstruire
La reconstruction ne reinjecte aucun instantane : annuaire, Keycloak,
Nextcloud et courriel remis depuis restic-tech (23:50) sur les machines
existantes. Le runbook coupe aussi la section sur DROP DATABASE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 02:16:27 -04:00
502feff6e0 journal : reconstruction de Technolibre par les runners, quatre defauts trouves
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 01:46:35 -04:00
cc3a4eec30 journal : 404 du frontal de Technolibre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 21:12:30 -04:00
5f23201075 frontal : page 404 du locataire pour les noms qu il ne publie pas
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:37:00 -04:00
f818143b49 journal : page du PSPBT sur essai.chezlepro.ca
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:28:22 -04:00
b01de94493 waf : le mode dit en clair par la sonde ; journal du passage en blocage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:09:02 -04:00
4678ca0223 journal : plancher de Chezlepro avec essai.chezlepro.ca
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:03:16 -04:00
80bd8e88ac dorsal : confiance limitee a la forge du site ; chemin public eprouve de bout en bout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 17:34:44 -04:00
8186389309 domaine public -> frontal ; noms publics vers l adresse du locataire ; dorsal refuse les inconnus
Zone publique : les expositions pointent vers ip_publique (les NS restent au site).
client_pki : l AC interne ne signe que le domaine interne. Dorsal : serveur par defaut 444.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 17:14:56 -04:00
6d31842b83 journal : frontal proxy + WAF et dorsal des sites, poses chez les deux locataires
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:57:33 -04:00
2903d75831 journal : frontiere appliquee, NAT des locataires prouve dans les deux sens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:22:24 -04:00
5eca6ff4f8 journal : services publics des locataires prets ; frontiere en attente d accord
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:14:34 -04:00
e9b03399b9 frontiere : NAT des locataires par leur adresse publique (devis)
Sortie traduite avec l adresse attribuee par le site ; flux externe rediriges depuis cette
adresse vers la machine du role. Gardes : pas de redirection en double, adresse du pool.
Non applique : en attente de l accord de l exploitant.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:54:36 -04:00
e84b155a5f pool d adresses publiques : le site attribue a chaque locataire la sienne
Declare dans opnsense.yml du site, rendu par le contrat (ip_publique), valide (une par
locataire, jamais celle du site), compare aux alias du WAN par frontiere-plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:24:09 -04:00
712a7da1fd frontiere : les flux admin traduits chez les tenants ; edge retire de l Internet
Le devis OPNsense ne rendait le chemin du poste chez un tenant qu au travers des flux
externe ; il traduit desormais les flux admin (gestion, VPN). Applique : 4 retraits
(WAN -> edges), 18 ajouts, 0 ecart. sonde_tcp : une fermeture propre apres la requete
est une reponse de la destination ; la mesure de la frontiere est conforme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 15:05:23 -04:00
81cdb84f66 journal : pare-feu Proxmox et nftables des edges poses ; route du poste vers le site
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 14:09:29 -04:00
1493059271 edge ferme a l Internet ; le pare-feu Proxmox recoit les flux externe
L edge n expose qu a sa zone d administration (plus de pair externe) ; le public passera
par le web frontal. Le devis Proxmox recoit les flux externe depuis +t<i>-internet (RFC 1918
exclus en nomatch) et depuis l admin quand le poste en est client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:58:01 -04:00
1bd211d62b resolution_interne : entre machines du site, chaque nom mene a son service
L edge expose les interfaces web aux personnes ; les VM du site vont directement au
service. Declare par domaine (service | edge, defaut edge) ; plancher, zone et certificat
du service suivent. Pose au site : 35 planchers sur 35 conformes ; locataires inchanges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 13:25:37 -04:00
eee6851c3b sonde plancher ; une exposition sans port n est plus attribuee a l edge
La zone publie l empreinte de ce que le plancher doit porter ; chaque machine la compare
a son /etc/hosts. Au site, elle a revele que sauvegarde, pki et dns.genese.internal
pointaient vers l edge (regression de mon deploiement du matin) : la derivation ne donne
plus a l edge ce qui n a pas de port. Zone du site corrigee, SFTP des locataires verifie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 12:34:47 -04:00
ba2020d486 powerdns : une zone plus recente que sa version servie est rechargee ; zones le voit
PowerDNS servait chez les deux locataires une zone anterieure a son fichier (console
absente) : le handler de rechargement avait ete abandonne. Reconciliation a chaque
passage (bind-reload-now) et controle dans la sonde zones. Plancher /etc/hosts rejoue
sur les deux locataires ; console se resout depuis les edges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 05:29:45 -04:00
2bbe12299f sonde passerelle : le trajet d un visiteur jusqu a la page de connexion
Apres /ping, /oauth2/start doit renvoyer vers l emetteur configure pour ce client, et
l IdP, joint depuis la passerelle, doit servir sa page de connexion. Le secret du client
n est pas teste (journal du realm). Port derive de l ecoute ; archive oauth2-proxy
plus retransferee a chaque deploiement. Fin de la revue des sondes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 00:30:43 -04:00
1653319ef1 sonde vigie : elle eprouve ce que la vigie lit, pas seulement qu elle repond
Apres check_http, la sonde lit la configuration deployee d Icinga Web 2 et eprouve
chaque ressource utilisee avec ses identifiants : base du moteur (hotes), annuaire ou
base des comptes, Redis. Au vert sur les trois ; quatre mises en defaut critiques.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 23:55:58 -04:00
4e07b52291 sonde vigie : la sonde d Icinga Web 2 ne s appelle plus console
Le vocabulaire des plans dit vigie pour Icinga Web 2 et console pour la console
d exploitation Set-OPS (sonde console-ops). Renommee et posee sur les trois
supervisions ; client_sante a retire l orphelin console.sh ; vigie au vert partout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 22:01:21 -04:00
9e6f33d1cf sonde identite : Keycloak doit atteindre l annuaire ; l archive Keycloak ne voyage plus pour rien
La sonde demande a Keycloak de s authentifier aupres de LDAP avec la federation
enregistree (testLDAPConnection, secret masque). Eprouvee sur les deux locataires ;
mise en defaut par parametre. Le repere d archive deja posee est le marqueur de
construction de la version, pas /tmp : changed=0 au redeploiement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:17:46 -04:00
6b6a56ab3f sondes filtrage et edge : elles verifient le service rendu ; l edge refuse les noms inconnus
filtrage soumet GTUBE ; edge interroge chaque exposition en local. Sans serveur
par defaut, un nom inconnu recevait Keycloak : 000-defaut.conf (444, rejet TLS).
Garde test_sondes_syntaxe : chaque gabarit de sonde se rend en bash valide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 19:40:26 -04:00