Merge branch 'main' of git.a-lec.org:a-lec/commissions/infrastructure/sauvegardes

This commit is contained in:
Christian P. MOMON 2023-03-15 10:37:13 +01:00
commit 9722e8e4e6
1 changed files with 34 additions and 14 deletions

View File

@ -19,15 +19,35 @@ Quelques pré-requis :
- l'adminsys d'une machine doit pouvoir régler lui-même certaines caractéristiques de la sauvegarde de sa machine : avec Borgmatic, il dispose d'un fichier de configuration où configurer des hooks (pour une base de données par exemple) ou définir les dossiers à sauver, définir les exclusions…
- l'adminsys de la sauvegarde doit pouvoir régler lui-même certaines caractérisiques des sauvegardes tels que rétention, horaire et autres : il dispose d'un fichier de configuration par machine sauvegardée et d'un script de déclenchement des sauvegardes.
Flux général :
Flux en mode `local` :
```
saukvipeu:/etc/cron.d/backups
-> /srv/borg/bin/dobackup-remote fqdn1
--ssh(admin666@fqdn1)--> sudo borgmatic create --verbosity 1
-> /srv/borg/bin/dobackup-local
--> borgmatic create --verbosity 1
-> /etc/borgmatic/fqdn.yaml + /etc/borgmatic/excludes
--> /var/backups/borg/fqdn.repo
```
Flux en mode `remote` :
```
Systemd.borgmatic.timer
--> borgmatic.service
--ssh(borg@fqdn1)--> sudo borgmatic create --verbosity 1
-> fqdn1:/etc/borgmatic/config.yaml + /etc/borgmatic/excludes
--ssh(borg@sauvkipeu)--> /var/backups/borg/fqdn1.repo
```
Flux en mode `rysnc` :
```
saukvipeu:/etc/cron.d/backups
-> /srv/borg/bin/dobackup-rsync fqdn1
--> borgmatic create --verbosity 1
-> fqdn1:/etc/borgmatic/config.yaml + /etc/borgmatic/excludes
--> rsync fqdn1 /var/backups/borg/mirros/fqdn1/
--> /var/backups/borg/fqdn1.repo
```
Organisation des fichiers côté machine sauvegardée en mode `remote` :
- /etc/borgmatic/
- config.yaml : configuration de la sauvegarde,
@ -201,6 +221,12 @@ apt update
apt install -t bullseye-backports borgmatic borgbackup
```
Par défaut, le service Systemd de Borgmatic n'a pas d'action en paramètre et cela déclenche une série d'actions : `prune`, `create…` Nous lançons le prune côté serveur donc il faut forcer l'action `create` dans le fichier `/lib/systemd/system/borgmatic.service` :
```
ExecStart=systemd-inhibit --who="borgmatic" --what="sleep:shutdown" --why="Prevent interrupting scheduled backup" /usr/bin/borgmatic --verbosity -1 --syslog-verbosity 1
+ ExecStart=systemd-inhibit --who="borgmatic" --what="sleep:shutdown" --why="Prevent interrupting scheduled backup" /usr/bin/borgmatic create --verbosity -1 --syslog-verbosity 1
```
Créer des clés `ssh` pour l'utilisateur `root` (si besoin) :
```
sudo ssh-keygen -t ed25519
@ -225,13 +251,10 @@ Vérifier que la configuration Borgmatic est valide :
validate-borgmatic-config
```
Ajouter la clé `root` du serveur de sauvegarde dans `/home/admin666/.ssh/authorized_keys` :
```
ssh-ed25519 AAAAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX root@sauvkipeu.libre-en-communs.org
```
Si besoin, suivant les particularité de la machine à sauvegarder, ajouter des entrées dans le fichier `/etc/borgmatic/excludes`.
## Côté serveur de sauvegarde
Initialiser le contexte Borgmatic :
@ -253,10 +276,7 @@ time borgmatic create --stats --verbosity 1
## Tester côté serveur
Lancer une sauvegarde :
```
time sudo /srv/borg/bin/dobackup-remote foo.bar.org
```
~~Lancer une sauvegarde : `time sudo /srv/borg/bin/dobackup-remote foo.bar.org`.~~
Afficher les informations du dépôt :
```
@ -273,7 +293,7 @@ Afficher le contenu de la sauvegarde :
borgmatic -c /etc/borgmatic.d/foo.bar.org.yaml list --archive 2023-XX-XXTXX:XX
```
Ajouter le lancement de la sauvegarde dans `/srv/borg/bin/dobackups` :
~~Ajouter~~ **Ne pas ajouter** le lancement de la sauvegarde dans `/srv/borg/bin/dobackups` :
```
/srv/borg/bin/dobackup-remote foo.bar.org
```