====== 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 **** 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 . snapshot
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