Correction : l'entree precedente attribuait le defaut a la reconstruction
from-zero. C'est faux — le commit fondateur
|
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
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_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 :
restic restoreavec le même mot de passe (cf.docs/runbooks-exploitation.md).
Prérequis
serveur_backupdéployé, et saserveur_backup_pubkeycorrespondant à la clé privée de la voûte. Couche agents (après les services).