Choix : sauvegarder la donnée d'état (non régénérable), pas les VM (reconstructibles par le code). restic (chiffré, dédupliqué, rétention). serveur_backup = cible SFTP (backup-01). client_backup = intégration par nœud : restic + jobs déclaratifs + timer systemd + rétention, secrets voûte. Prouvé de bout en bout sur le Tier 0 : infra-pki-01 → /etc/step-ca sauvegardé hors-nœud vers backup-01, restauration byte-identique des clés CA. Reste : jobs Tier 1 (pg_dump/slapcat/vmail/forgejo) + offsite (3-2-1). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
847 B
YAML
28 lines
847 B
YAML
---
|
|
- name: Exiger la clé publique de sauvegarde
|
|
ansible.builtin.assert:
|
|
that:
|
|
- serveur_backup_pubkey | length > 0
|
|
fail_msg: "serveur_backup_pubkey requis (clé publique de la paire de sauvegarde)."
|
|
|
|
- name: Créer l'utilisateur de sauvegarde
|
|
ansible.builtin.user:
|
|
name: "{{ serveur_backup_utilisateur }}"
|
|
home: "{{ serveur_backup_racine }}"
|
|
shell: /bin/bash
|
|
create_home: true
|
|
system: true
|
|
|
|
- name: Sécuriser la racine des dépôts
|
|
ansible.builtin.file:
|
|
path: "{{ serveur_backup_racine }}"
|
|
state: directory
|
|
owner: "{{ serveur_backup_utilisateur }}"
|
|
group: "{{ serveur_backup_utilisateur }}"
|
|
mode: "0700"
|
|
|
|
- name: Autoriser la clé SSH de sauvegarde
|
|
ansible.posix.authorized_key:
|
|
user: "{{ serveur_backup_utilisateur }}"
|
|
key: "{{ serveur_backup_pubkey }}"
|
|
state: present
|