Set-OPS-Public/roles/client_backup
Daniel Allaire 543791e859 temoins : toutes les bases, modeles compris (template1 dite perdue a tort)
Premier essai reel sur Technolibre : pg_dumpall --clean recree template1, et
les bases vivantes etaient lues sans les modeles. Le test reproduit le filtre.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:55:53 -04:00
..
defaults temoins : l'instantane d'avant rasage est garde, et l'etat remis lui est compare 2026-10-07 12:48:00 -04:00
files temoins : toutes les bases, modeles compris (template1 dite perdue a tort) 2026-10-07 12:55:53 -04:00
handlers client_backup : le premier rapport a Icinga part d'un marqueur a lui ; le pare-feu ne compte que ses critiques 2026-09-30 17:08:55 -04:00
meta Reconstruction propre : orchestrateur ordonné, registre des flux + pare-feu 2026-07-07 03:08:09 -04:00
tasks temoins : l'instantane d'avant rasage est garde, et l'etat remis lui est compare 2026-10-07 12:48:00 -04:00
templates temoins : l'instantane d'avant rasage est garde, et l'etat remis lui est compare 2026-10-07 12:48:00 -04:00
vars client_backup : le web frontal quitte le catalogue des detenteurs d'etat 2026-09-30 04:46:19 -04:00
README.md temoins : l'instantane d'avant rasage est garde, et l'etat remis lui est compare 2026-10-07 12:48:00 -04:00

client_backup

Intégration cliente sauvegarde : le nœud pousse ses données (pas sa VM) vers le dépôt restic hors-nœud (serveur_backup), chiffrées côté client, sur un timer systemd.

Principe

L'infrastructure est reconstructible par le code (make reconstruire). Ce qui ne se reconstruit pas, c'est l'état : clés de l'AC, annuaire, bases, courrier, dépôts Git. C'est cet état — et lui seul — que ce rôle sauvegarde.

Rôle

  • Installe restic.
  • Dépose la clé SSH privée de sauvegarde et le mot de passe restic dans /etc/setops (0600), depuis la voûte.
  • Configure l'accès SSH vers la cible (utilisateur restreint restic).
  • Déploie sauvegarder.sh + l'unité et le timer systemd, et l'active.

Jobs déclaratifs

Chaque nœud déclare ses client_backup_jobs (en group_vars/host_vars) :

client_backup_jobs:
  - nom: step_ca
    chemins: [/etc/step-ca]
  - nom: postgresql
    commande: "sudo -u postgres pg_dumpall > /var/backups/setops/postgresql/all.sql"
    chemins: [/var/backups/setops/postgresql]

Le script exécute, dans l'ordre : les commande (dumps vers le staging) → restic init si le dépôt est neuf → restic backup de tous les chemins → restic forget --prune (rétention).

Secrets requis (Vault)

vault_restic_password      # mot de passe du dépôt restic (le chiffrement)
vault_backup_ssh_privkey   # clé privée SSH vers la cible (publique côté serveur_backup)

Sans eux, le rôle refuse de s'exécuter (assertion).

Variables principales

Variable Défaut Rôle
client_backup_cible backup-01.{{ domaine_interne }} Nœud dépôt
client_backup_repo sftp:restic@<cible>:<hôte> Un sous-dossier par nœud
client_backup_staging /var/backups/setops Préparation des dumps
client_backup_retention --keep-daily 7 --keep-weekly 4 --keep-monthly 6 restic forget
client_backup_etiquette_avant_raser avant-raser étiquette du dépôt d'avant rasage, gardée par la rétention jusqu'à la reconstruction suivante
client_backup_horaire *-*-* 02:30:00 Timer systemd
client_backup_jobs [] À déclarer par nœud

Notes / limites

  • Chiffrement côté client : la cible ne voit que des blocs chiffrés — elle n'a donc pas besoin d'être aussi protégée que les sources.
  • client_backup_jobs: [] = le timer tourne mais ne sauvegarde rien. C'est silencieux : vérifier que chaque nœud porteur d'état déclare ses jobs.
  • Un dépôt neuf est vide jusqu'à la première exécution : après une reconstruction from-zero, déclencher une première sauvegarde plutôt que d'attendre 02:30.
  • Restauration : faite par la reconstruction elle-même depuis le 2026-09-30 — chaque rôle propriétaire inclut tasks/restaurer.yml et remet l'état de l'incarnation précédente ; l'outil de nœud est setops-restaurer (cf. docs/runbooks-exploitation.md §5.0).
  • Témoins : setops-restaurer temoins (comparateur setops-temoins) confronte l'état vivant à l'instantané d'avant rasage ; make temoins-etat, et l'étape bilan de la reconstruction.

Prérequis

  • serveur_backup déployé, et sa serveur_backup_pubkey correspondant à la clé privée de la voûte. Couche agents (après les services).