====== 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