2026-07-03 22:49:26 -04:00
|
|
|
---
|
|
|
|
|
- name: Exiger les secrets de sauvegarde (Vault)
|
|
|
|
|
ansible.builtin.assert:
|
|
|
|
|
that:
|
|
|
|
|
- client_backup_password | length > 0
|
|
|
|
|
- client_backup_ssh_privkey | length > 0
|
|
|
|
|
fail_msg: "vault_restic_password et vault_backup_ssh_privkey requis."
|
|
|
|
|
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
# Un noeud peut legitimement ne rien detenir de non regenerable (nginx, PowerDNS, Icinga :
|
|
|
|
|
# leur configuration se REDEPLOIE). Le defaut mesure le 2026-08-11 n'etait pas la, il etait
|
|
|
|
|
# dans l'unite qui MENT : 11 hotes deployaient un timer qui echouait chaque nuit sur
|
|
|
|
|
# « nothing to backup », invisible depuis le 2026-07-03. Une sauvegarde qui ne sauvegarde
|
|
|
|
|
# rien est pire que pas de sauvegarde — elle rassure.
|
|
|
|
|
#
|
|
|
|
|
# On ne refuse donc pas le deploiement : on refuse d'installer une sauvegarde vide, et on
|
|
|
|
|
# RETIRE celle qui existerait. Que tout detenteur d'etat porte bien `client_backup` est
|
|
|
|
|
# lisible dans le plan, donc prouve statiquement (D-75, P36) — pas ici.
|
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
|
|
|
- name: Refuser une porte d'entree du catalogue devenue fausse
|
|
|
|
|
ansible.builtin.assert:
|
|
|
|
|
that:
|
|
|
|
|
- (client_backup_catalogue.keys() | list | sort) == (client_backup_groupes_etat | sort)
|
|
|
|
|
fail_msg: >-
|
|
|
|
|
`client_backup_groupes_etat` ne decrit plus `client_backup_catalogue` :
|
|
|
|
|
catalogue={{ client_backup_catalogue.keys() | list | sort }},
|
|
|
|
|
liste={{ client_backup_groupes_etat | sort }}. La supervision et P36 lisent la
|
|
|
|
|
liste — la laisser diverger, c'est sauvegarder sans surveiller, ou surveiller ce
|
|
|
|
|
qui n'existe pas.
|
|
|
|
|
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
- name: Etat de la sauvegarde pour ce noeud
|
|
|
|
|
ansible.builtin.debug:
|
|
|
|
|
msg: >-
|
|
|
|
|
{{ (client_backup_jobs | length > 0)
|
|
|
|
|
| ternary(client_backup_jobs | length | string + ' jeu(x) : '
|
|
|
|
|
+ (client_backup_jobs | map(attribute='nom') | join(', ')),
|
|
|
|
|
'aucun etat non regenerable — aucune sauvegarde installee') }}
|
|
|
|
|
|
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
|
|
|
# L'ACCES AU DEPOT vit a part : les roles proprietaires l'incluent aussi, pour RESTAURER
|
|
|
|
|
# avant meme que ce role-ci ait tourne (l'AC se restaure dans la couche `pki_racine`).
|
|
|
|
|
- name: Accès au dépôt (restic, clé, mot de passe, SSH) et outil de restauration
|
|
|
|
|
ansible.builtin.include_tasks: acces.yml
|
2026-07-03 22:49:26 -04:00
|
|
|
|
|
|
|
|
- name: Assurer le répertoire de préparation des dumps
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{ client_backup_staging }}"
|
|
|
|
|
state: directory
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
|
|
- name: Déployer le script de sauvegarde
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
when: client_backup_jobs | length > 0
|
2026-07-03 22:49:26 -04:00
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: sauvegarder.sh.j2
|
|
|
|
|
dest: /usr/local/sbin/setops-sauvegarder.sh
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0700"
|
|
|
|
|
|
|
|
|
|
- name: Déployer l'unité et le timer systemd
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
when: client_backup_jobs | length > 0
|
2026-07-03 22:49:26 -04:00
|
|
|
ansible.builtin.template:
|
|
|
|
|
src: "{{ item.s }}"
|
|
|
|
|
dest: "/etc/systemd/system/{{ item.d }}"
|
|
|
|
|
owner: root
|
|
|
|
|
group: root
|
|
|
|
|
mode: "0644"
|
|
|
|
|
loop:
|
|
|
|
|
- { s: setops-sauvegarde.service.j2, d: setops-sauvegarde.service }
|
|
|
|
|
- { s: setops-sauvegarde.timer.j2, d: setops-sauvegarde.timer }
|
2026-10-07 12:48:00 -04:00
|
|
|
- { s: setops-sauvegarde-avant-raser.service.j2, d: setops-sauvegarde-avant-raser.service }
|
2026-07-03 22:49:26 -04:00
|
|
|
|
|
|
|
|
- name: Activer le timer de sauvegarde
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
when:
|
|
|
|
|
- client_backup_jobs | length > 0
|
|
|
|
|
- not ansible_check_mode
|
2026-07-03 22:49:26 -04:00
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: setops-sauvegarde.timer
|
|
|
|
|
enabled: true
|
|
|
|
|
state: started
|
|
|
|
|
daemon_reload: true
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
|
|
|
|
|
# --- Retrait d'une sauvegarde vide heritee (le noeud ne detient plus rien) ---
|
|
|
|
|
|
|
|
|
|
- name: Arreter le timer d'une sauvegarde devenue vide
|
|
|
|
|
when:
|
|
|
|
|
- client_backup_jobs | length == 0
|
|
|
|
|
- not ansible_check_mode
|
|
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: setops-sauvegarde.timer
|
|
|
|
|
enabled: false
|
|
|
|
|
state: stopped
|
|
|
|
|
failed_when: false
|
|
|
|
|
|
2026-09-30 04:46:19 -04:00
|
|
|
# LES VERIFICATIONS PARTENT AVEC LA SAUVEGARDE (2026-09-30). Retirees seules, les unites de
|
|
|
|
|
# sauvegarde laissaient derriere elles celles qui VERIFIENT le depot et la restauration :
|
|
|
|
|
# elles continuaient de rapporter a des services qu'Icinga ne declare plus (le noeud n'est
|
|
|
|
|
# plus detenteur d'etat) — un 404 toutes les quatre heures, et une unite rouge. Vu en
|
|
|
|
|
# retirant le web frontal du catalogue.
|
|
|
|
|
- name: Arreter les verifications d'une sauvegarde devenue vide
|
|
|
|
|
when:
|
|
|
|
|
- client_backup_jobs | length == 0
|
|
|
|
|
- not ansible_check_mode
|
|
|
|
|
ansible.builtin.systemd:
|
|
|
|
|
name: "{{ item }}"
|
|
|
|
|
enabled: false
|
|
|
|
|
state: stopped
|
|
|
|
|
loop:
|
|
|
|
|
- setops-verification-depot.timer
|
|
|
|
|
- setops-verification-restauration.timer
|
|
|
|
|
failed_when: false
|
|
|
|
|
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
- name: Retirer le script et les unites d'une sauvegarde vide
|
|
|
|
|
when: client_backup_jobs | length == 0
|
|
|
|
|
ansible.builtin.file:
|
|
|
|
|
path: "{{ item }}"
|
|
|
|
|
state: absent
|
|
|
|
|
loop:
|
|
|
|
|
- /usr/local/sbin/setops-sauvegarder.sh
|
|
|
|
|
- /etc/systemd/system/setops-sauvegarde.service
|
|
|
|
|
- /etc/systemd/system/setops-sauvegarde.timer
|
2026-10-07 12:48:00 -04:00
|
|
|
- /etc/systemd/system/setops-sauvegarde-avant-raser.service
|
2026-09-30 04:46:19 -04:00
|
|
|
- /usr/local/sbin/setops-verifier-mon-depot.sh
|
|
|
|
|
- /usr/local/sbin/setops-verifier-restauration.sh
|
|
|
|
|
- /etc/systemd/system/setops-verification-depot.service
|
|
|
|
|
- /etc/systemd/system/setops-verification-depot.timer
|
|
|
|
|
- /etc/systemd/system/setops-verification-restauration.service
|
|
|
|
|
- /etc/systemd/system/setops-verification-restauration.timer
|
sauvegarde : le catalogue derive du groupe, et P36 le prouve
Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur 7476a54 (2026-07-03) disait lui-meme
« Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) ». Ils n'ont jamais ete
ecrits, et infra-pki-01 a ensuite perdu son integration client_backup.
Le role qui POSSEDE la donnee dit comment la sortir : client_backup_jobs est
l'intersection du catalogue et des group_names du noeud. Un tenant qui deplace un
service emporte sa sauvegarde avec lui. On sauvegarde l'etat NON REGENERABLE :
ni zones PowerDNS ni tableaux Grafana, ils se redeploient.
L'unite qui ment est RETIREE, pas rendue bloquante : refuser le deploiement aurait
casse infra-edge-01, infra-dns-01 et mon-01, qui ne detiennent legitimement rien.
Le defaut etait le timer qui echouait chaque nuit en donnant l'apparence d'une
sauvegarde.
P36 (D-75) lit les groupes detenteurs dans le catalogue : ajouter un role au
catalogue etend la preuve du meme geste. Elle a attrape infra-pki-01 — les cles
de l'AC — corrige au plan.
Mesure hors-noeud : collab-01 64,0 MiB/272, edge-mta-01 4,4 MiB/139,
data-sql-01 1,0 MiB (pg_dumpall complet), forge-01 26,4 KiB/68,
infra-pki-01 20,1 KiB/21, idm-01 2,3 KiB/5 (slapcat). 9 hotes, 9 success.
Reste : rien ne surveille l'unite — c'est ce silence qui a laisse le defaut
vivre un mois.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 20:50:46 -04:00
|
|
|
notify: Recharger systemd
|
2026-09-02 18:53:44 -04:00
|
|
|
|
|
|
|
|
# --- LE NOEUD VERIFIE SON PROPRE DEPOT ----------------------------------------
|
|
|
|
|
#
|
|
|
|
|
# Conditionne a l'existence d'un `serveur_icinga` : sans destinataire, le rapport
|
|
|
|
|
# n'irait nulle part, et un timer qui echoue chaque nuit apprend a ignorer le rouge.
|
|
|
|
|
#
|
|
|
|
|
# Et conditionne a `client_backup_jobs` : un noeud qui n'emporte rien n'a pas de depot
|
|
|
|
|
# a verifier — c'est la meme liste qui decide des deux, pour qu'elles ne divergent pas.
|
|
|
|
|
- name: Vérifier mon dépôt distant, et le dire à Icinga
|
|
|
|
|
ansible.builtin.include_tasks: verifier.yml
|
|
|
|
|
when:
|
|
|
|
|
- client_backup_jobs | length > 0
|
|
|
|
|
- client_backup_icinga_hote | length > 0
|
|
|
|
|
|
|
|
|
|
# DIRE CE QU'ON NE FAIT PAS. Sans supervision dans l'ecosysteme, la sauvegarde tourne et
|
|
|
|
|
# personne ne constate jamais qu'elle a abouti. Ce n'est pas une erreur — c'est une dette
|
|
|
|
|
# qui doit se voir au deploiement plutot que le jour de la restauration.
|
|
|
|
|
- name: Dire que personne ne constatera cette sauvegarde
|
|
|
|
|
ansible.builtin.debug:
|
|
|
|
|
msg: >-
|
|
|
|
|
Aucun `serveur_icinga` dans cet écosystème : la sauvegarde de {{ inventory_hostname }}
|
|
|
|
|
tournera sans que personne ne constate qu'elle aboutit. Une unité verte sur un dépôt
|
|
|
|
|
vide est exactement ce qui a menti pendant un mois.
|
|
|
|
|
when:
|
|
|
|
|
- client_backup_jobs | length > 0
|
|
|
|
|
- client_backup_icinga_hote | length == 0
|