Set-OPS-Public/roles/client_backup/vars/main.yml
Daniel Allaire f1a7e43645 supervision : c'est le DEPOT qui dit ou en sont les sauvegardes
Icinga ne surveillait rien : aucun objet Host ni Service de Set-OPS, seulement
la config Debian d'origine sur localhost.

Superviser setops-sauvegarde.service aurait reproduit le defaut du jour meme :
l'unite etait VERTE sur onze noeuds pendant qu'elle n'emportait rien. Le noeud
sait qu'il a LANCE sa sauvegarde, pas qu'elle est ARRIVEE. backup-01 evalue donc
ses depots et pousse un resultat passif par noeud vers l'API Icinga.

Trois criteres, parce qu'un seul suffit a mentir : l'instantane existe, il est
recent (26 h / 50 h), il contient au moins un fichier.

Le sens du flux est delibere : le depot parle a la supervision, jamais l'inverse
— compromettre mon-01 ne donne aucun acces aux sauvegardes.

Le ttl de 6 h fait la fraicheur : si le rapporteur se tait, Icinga perime les
services tout seul. C'est le silence qui a laisse le defaut vivre un mois.

Deux erreurs corrigees par la mesure :
  - --data-urlencode refuse en Bad Request (l'API veut du JSON) ; le flux, le TLS
    et l'auth marchaient, seule la charge etait perdue.
  - le seuil « vide » en octets signalait a tort idm-01 (2363 o) : un export LDIF
    d'un annuaire a un compte pese cela. « Vide » se mesure en FICHIERS. Et le
    verdict est un AVERTISSEMENT : la machine ne distingue pas « les donnees ont
    disparu » de « il n'y en a pas encore ».

Reserve assumee : curl -k — l'API presente le cert de sa propre AC, pas step-ca.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 21:39:05 -04:00

23 lines
1.1 KiB
YAML

---
# Groupes DETENTEURS D'ETAT — la porte d'entree publique du catalogue de sauvegarde.
#
# Pourquoi un fichier a part, et SANS Jinja. Deux consommateurs externes ont besoin de
# cette liste : `serveur_backup` (qui rapporte a Icinga l'etat reel des instantanes) et
# `serveur_icinga` (qui cree les objets a surveiller). Tous deux la lisent par
# `include_vars` — et `include_vars` charge le FICHIER ENTIER. Charger `defaults/main.yml`
# forcerait le rendu de `client_backup_repo`, qui reference des variables absentes de leur
# play : le deploiement echouait sur « client_backup_utilisateur_distant is undefined »
# (mesure le 2026-08-11). Ce fichier ne contient donc que des litteraux.
#
# `tasks/main.yml` REFUSE si cette liste et `client_backup_catalogue` divergent : on ne
# peut pas ajouter un detenteur d'etat sans que la supervision et P36 l'apprennent.
client_backup_groupes_etat:
- serveur_step_ca
- serveur_openldap
- serveur_postgresql
- serveur_dovecot
- serveur_forgejo
- serveur_nextcloud
- serveur_rspamd
- serveur_web_frontal
- serveur_web_dorsal