Système de sauvegardes ====================== Les sauvegardes sont réalisées sur le serveur de backups. Ils sont automatisés dans une crontab, il n'y a pas de travail à faire pour les mettre en place. Le script de backup s'appelle `borg_backup.sh` et contient les informations pour réaliser un backup chiffré. La crontab doit s'exécuter au moins une fois par jour. Il y a un fichier d'exemple de crontab sur le git. On conserve les backups quotidiens pendant 3 mois (doc de [`borg prune`](https://borgbackup.readthedocs.io/en/stable/usage/prune.html)) # Ajouter un nouveau serveur On souhaite rajouter un serveur supplémentaire (et qu'il fasse ses backups sur le même serveur que les autres). ## Sur le serveur à backuper En root : - Installer borg : `apt install borgbackup` - Cloner le dépôt girofle: `git clone https://framagit.org/CloudGirofle/girofle.cloud.git` - Copier le fichier `crontab/crontab.sample` dans la crontab (`crontab -e`), - Éditer les champs de la crontab - Créer une paire de clés SSH : `ssh-keygen` (options par défaut, pas de passphrase) - Copier la ligne `~/.ssh/id_rsa.pub` - Si il y a des bases de données MariaDB à backuper : `apt install mariadb-backup` ## Sur le serveur de backups - Créer l'utilisateur borg (s'il n'existe pas): `adduser borg` - Créer un fichier `.ssh/authorized_keys` (il faudra créer le répertoire), et coller la clé publique dans le fichier. ## Re- sur le serveur à backuper (en root) **Si on est sur le port 22** ``` export BORG_REPO="root@backup.girofle.cloud:/backup/mutu" export BORG_PASSPHRASE="blablabla" borg init -e repokey --rsh 'ssh -i /root/.ssh/id_rsa' ``` **Si on n'est pas sur le port 22** : ``` export BORG_REPO="cloudgirofle@backupzici.net:./serveur.girofle.cloud" export BORG_PASSPHRASE="blablabla" borg init -e repokey --rsh 'ssh -p -i /root/.ssh/id_rsa' ``` ## Sauvegarder précautionneusement les clés !!! - La `BORG_PASSPHRASE` - La `repokey` : `borg key export --rsh 'ssh -i /root/.ssh/id_rsa' # Quand ça casse Si on lance plusieurs backups à la fois, borg peut se bloquer avec un vilain "Failed to acquire lock". À ce moment là, depuis la machine qui fait le backup (ie: pas le serveur de backup) un coup de : ```sudo borg break-lock backup:backup/``` et c'est reparti ! # Tester si les backups sont consistants `borg check --progress -v ` (se fait directement sur le serveur, sans tout retransférer) # Restaurer un backup - Bien se munir de la passphrase hihi 1. Lister les backups : `borg list ` 2. Lister les fichiers à restaurer `borg extract --dry-run --list /home/chifr-backup/backup/::20220524-00h-etc etc/nginx/` **attention à pas mettre un leading slash dans le pattern.** 3. Enlever le `--dry-run` pour restaurer # refs https://borgbackup.readthedocs.io