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 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. - 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 saukvipeu:/etc/cron.d/backups
-> /srv/borg/bin/dobackup-remote fqdn1 -> /srv/borg/bin/dobackup-local
--ssh(admin666@fqdn1)--> sudo borgmatic create --verbosity 1 --> 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 -> fqdn1:/etc/borgmatic/config.yaml + /etc/borgmatic/excludes
--ssh(borg@sauvkipeu)--> /var/backups/borg/fqdn1.repo --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` : Organisation des fichiers côté machine sauvegardée en mode `remote` :
- /etc/borgmatic/ - /etc/borgmatic/
- config.yaml : configuration de la sauvegarde, - config.yaml : configuration de la sauvegarde,
@ -201,6 +221,12 @@ apt update
apt install -t bullseye-backports borgmatic borgbackup 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) : Créer des clés `ssh` pour l'utilisateur `root` (si besoin) :
``` ```
sudo ssh-keygen -t ed25519 sudo ssh-keygen -t ed25519
@ -225,13 +251,10 @@ Vérifier que la configuration Borgmatic est valide :
validate-borgmatic-config 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`. Si besoin, suivant les particularité de la machine à sauvegarder, ajouter des entrées dans le fichier `/etc/borgmatic/excludes`.
## Côté serveur de sauvegarde ## Côté serveur de sauvegarde
Initialiser le contexte Borgmatic : Initialiser le contexte Borgmatic :
@ -253,10 +276,7 @@ time borgmatic create --stats --verbosity 1
## Tester côté serveur ## Tester côté serveur
Lancer une sauvegarde : ~~Lancer une sauvegarde : `time sudo /srv/borg/bin/dobackup-remote foo.bar.org`.~~
```
time sudo /srv/borg/bin/dobackup-remote foo.bar.org
```
Afficher les informations du dépôt : Afficher les informations du dépôt :
``` ```
@ -273,9 +293,9 @@ Afficher le contenu de la sauvegarde :
borgmatic -c /etc/borgmatic.d/foo.bar.org.yaml list --archive 2023-XX-XXTXX:XX 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 /srv/borg/bin/dobackup-remote foo.bar.org
``` ```
# Configurer la sauvegarde d'une machine en rsync # Configurer la sauvegarde d'une machine en rsync