Restic - Kaya - Sauvegarde en mode pull
Avant-propos
Restic (http://restic.net et https://github.com/restic/restic) est un outil de sauvegarde rapide, efficace et proposant de nombreux types de stockage (13 dont local, sftp, S3, rest-server, Minio, Openstack swift, Google, Lirosoft Azure ) . Il est écrit en langage go.
L’objectif est ici de sauvegarder une machine (srv - Debian Bullseye) sur une machine de sauvegarde (bu - Debian Bullseye).
On utilisera le stockage rest-server (https://github.com/restic/rest-server) développé par restic pour ses performances et sa simplicité.
Installation de la machine de sauvegarde bu
Installation de restic sur la machine bu
Sur cette machine, on doit installer restic ,
- soit le paquet debian :
apt install restic
- soit le binaire adapté depuis github :
wget https://github.com/restic/restic/releases/download/v0.13.1/restic_0.13.1_linux_amd64.bz2 bunzip2 restic_0.13.1_linux_amd64.bz2 mv restic_0.13.1_linux_amd64 restic chmod +x restic mv restic /usr/local/bin restic version
Installation de rest-server
On récupère le binaire depuis github
wget https://github.com/restic/rest-server/releases/download/v0.11.0/rest-server_0.11.0_linux_amd64.tar.gz tar xvfz rest-server_0.11.0_linux_amd64.tar.gz cp rest-server_0.11.0_linux_amd64/rest-server /usr/local/bin chmod +x /usr/local/bin/rest-server rest-server version
Installation de kaya
Kaya (https://github.com/leaf-node/kaya) est un wrapper bash permettant de lancer une sauvegarde restic en mode pull depuis le serveur de sauvegarde au moyen d'un tunnel SSH.
On clone le dépôt kaya depuis github
apt install pwgen flock apache2-utils # les prerequis git clone https://github.com/leaf-node/kaya.git cp kaya /usr/local/bin/ scp kaya-client root@srv:/usr/local/bin/ # on copie kaya-client sur le serveur srv cp kaya.conf /etc/ chown root:root /etc/kaya.conf vim /etc/kaya.conf # on pourra adapter le backup_root et les ports réseau pour les adapter aux conditions locales mkdir -p /srv/backups/kaya/ # le backup_root touch /srv/backups/kaya/.htpasswd
Installation de la machine à sauvegarder : srv
La machine srv doit disposer de restic et de kaya-client (cf plus haut)
Installation de restic
Sur cette machine, on doit installer restic ,
- soit le paquet debian :
apt install restic
- soit le binaire adapté depuis github :
wget https://github.com/restic/restic/releases/download/v0.13.1/restic_0.13.1_linux_amd64.bz2 bunzip2 restic_0.13.1_linux_amd64.bz2 mv restic_0.13.1_linux_amd64 restic chmod +x restic mv restic /usr/local/bin restic version
Mise en œuvre de la sauvegarde
La machine srv doit être accessible via SSH depuis bu au moyen d’une clé publique préalablement distribuée
Sur la machine bu
Lancement du serveur rest-server
Par défaut, rest-server écoute sur le port TCP/8000, si celui-ci est déjà utilisé, il faudra spécifier un autre port avec l'option supplémentaire –listen :9000
pour écouter sur le port 9000.
Le fichier kaya.conf devra au besoin être adapté en conséquence.
rest-server --path /srv/backups/kaya/ --append-only --private-repos
d'autre options sont disponibles avec rest-server –help
Sauvegarde rest-server
Pour sauvegarder le répertoire /var/www/html de la machine srv :
kaya srv backup -- /var/www/html
d'autre options sont disponibles avec restic –help
Tout ce qui suit le —-
est considéré comme des options et paramètres de restic
Exploitation des sauvegardes depuis bu
Extraire les données d'un dépot de sauvegarde
mkdir ~/mount/ cd /srv/backups/kaya/srv/ restic -p repo-password-keep -r . mount ~/mount/
Terminer avec <Ctrl-C> ou lancer fusermount -u ~/mount/
dans une autre fenêtre
Lister les snapshots d'un dépot de sauvegarde
cd /srv/backups/kaya/srv/ restic -p repo-password-keep -r . snapshots repository e912e32a opened successfully, password is correct ID Time Host Tags Paths ------------------------------------------------------------------------------------------ 0c3fc80a 2022-04-17 22:19:40 vpsxyztuv /home/xyzadm/docker/siost/traefik 0ce4ba5c 2022-04-17 22:20:02 vpsxyztuv /home/xyzadm/docker/siost/traefik 0041438c 2022-04-17 22:20:17 vpsxyztuv /home/xyzadm/docker/siost/shaarli 9c7b8a2e 2022-04-17 22:20:29 vpsxyztuv /home/xyzadm/docker/siost/shaarli 998c4d05 2022-04-17 22:30:52 vpsxyztuv /home/xyzadm/docker/siost/gitea ------------------------------------------------------------------------------------------
Obtenir des statistiques d'un dépôt de sauvegarde
cd /srv/backups/kaya/srv/ restic -r . -p repo-password-keep stats repository e912e32a opened successfully, password is correct scanning... Stats in restore-size mode: Snapshots processed: 5 Total File Count: 24823 Total Size: 1.012 GiB