Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
serveurs:installation:bkp-srv:install-borg [2023/08/18 13:41] – [Initialiser des dépôts] jpmilcent | serveurs:installation:bkp-srv:install-borg [2024/10/23 13:39] (Version actuelle) – [Restaurer une sauvegarde] jpmilcent |
---|
* Passer en root : '' sudo -i '' | * Passer en root : '' sudo -i '' |
* En tant que //root//, installer les paquets système nécessaire : | * En tant que //root//, installer les paquets système nécessaire : |
* Debian 11 avec Pyfuse3 : '' apt install python3 python3-pip python3-virtualenv python3-pip openssl libssl-dev libacl1-dev libacl1 build-essential libfuse3-dev fuse3 pkg-config '' | * Debian 11/12 avec Pyfuse3 : '' apt install python3 python3-pip python3-virtualenv openssl libssl-dev libacl1-dev libacl1 build-essential pkg-config fuse3 libfuse3-dev'' |
* Debian 10 avec llfuse: '' apt install python3 python3-pip python3-virtualenv openssl libssl-dev libacl1-dev libacl1 build-essential fuse libfuse-dev pkg-config '' | * Debian 10 avec llfuse: '' apt install python3 python3-pip python3-virtualenv openssl libssl-dev libacl1-dev libacl1 build-essential pkg-config fuse libfuse-dev '' |
* En tant que //backups// (ou //root//), installer l'environnement virtuel : ''<nowiki> virtualenv --python=python3 borg-env </nowiki>'' | * En tant que //backups// (ou //root//), installer l'environnement virtuel : ''<nowiki> virtualenv --python=python3 borg-env </nowiki>'' |
* Activer l'environnement : '' source borg-env/bin/activate '' | * Activer l'environnement : '' source borg-env/bin/activate '' |
* Installer les dépendances : '' pip install -U pip setuptools wheel '' | * Installer les dépendances : '' pip install -U pip setuptools wheel '' |
* Installer Borg Backup avec le support pour Fuse, si le container utilise : | * Installer Borg Backup avec le support pour Fuse, si le container utilise : |
* Debian 11 avec pyfuse3 : '' pip install borgbackup[pyfuse3] '' | * Debian 11/12 avec pyfuse3 : '' pip install borgbackup[pyfuse3] '' |
* Debian 10 avec llfuse : '' pip install borgbackup[llfuse] '' | * Debian 10 avec llfuse : '' pip install borgbackup[llfuse] '' |
| * Sortir de l'environnement virtuel : ''deactivate'' |
* **Notes** : il peut être intéressant d'installer //borg// sur l'utilisateur //root// afin de pouvoir accéder au dossier accessible uniquement par //root// sur le dépôt "db-srv". C'est le cas des fichiers de sauvegarde des bases de données. | * **Notes** : il peut être intéressant d'installer //borg// sur l'utilisateur //root// afin de pouvoir accéder au dossier accessible uniquement par //root// sur le dépôt "db-srv". C'est le cas des fichiers de sauvegarde des bases de données. |
==== Accéder à Borg sans activer l'environnement virtuel ==== | ==== Accéder à Borg sans activer l'environnement virtuel ==== |
* Générer en local un UUID pour la //passphrase// de la clé de cryptage des dépôts local et distant de l'instance concernée : ''uuid'' | * Générer en local un UUID pour la //passphrase// de la clé de cryptage des dépôts local et distant de l'instance concernée : ''uuid'' |
* Stocker cette //passphrase// dans Keepass | * Stocker cette //passphrase// dans Keepass |
| * Sur l'instance //bkp-srv//, en tant qu'utilisateur ''backups'', créer le dossier qui contiendra les dépôts : ''sudo -i ; su - backups ; mkdir ~/<instance>-srv'' |
* Se connecter à l'instance concernée : '' ssh admin@<instance>-<region>-sinp '' | * Se connecter à l'instance concernée : '' ssh admin@<instance>-<region>-sinp '' |
* Modifier le fichier //~/docker/borgmatic/.env// de l'instance en ajoutant sa //passphrase// comme valeur du paramètre ''BORG_PASSPHRASE'' : ''vi ~/docker/borgmatic/.env'' | * Modifier le fichier //~/docker/borgmatic/.env// de l'instance en ajoutant sa //passphrase// comme valeur du paramètre ''BORG_PASSPHRASE'' : ''vi ~/docker/borgmatic/.env'' |
| |
=== Tester Borgmatic === | === Tester Borgmatic === |
* Tester les fichiers de configuration de //Borgmatic// avec : '' validate-borgmatic-config '' | * Tester les fichiers de configuration de //Borgmatic// avec : ''borgmatic config validate'' (anciennement '' validate-borgmatic-config '') |
* **ATTENTION** : il est maintenant nécessaire d'initialiser les dépôts avant de lancer la commande de test ci-dessous. Voir la section "Initialisation des dépôts". | * **ATTENTION** : il est maintenant nécessaire d'initialiser les dépôts avant de lancer la commande de test ci-dessous. Voir la section "Initialisation des dépôts". |
* Tester une sauvegarde manuellement pour vérifier que tout fonctionne : ''<nowiki> borgmatic --verbosity 2 --stats --files </nowiki>'' | * Tester une sauvegarde manuellement pour vérifier que tout fonctionne : ''<nowiki> borgmatic --verbosity 2 --stats --files </nowiki>'' |
* Le dossier ///tmp/repo// contient les dossiers des différentes sauvegardes. Ex. de dossier sauvegardé le 17 mai 2021 à 13h57 : '' web-srv-2021-05-17T13:57:02 '' | * Le dossier ///tmp/repo// contient les dossiers des différentes sauvegardes. Ex. de dossier sauvegardé le 17 mai 2021 à 13h57 : '' web-srv-2021-05-17T13:57:02 '' |
* Copier les fichiers à restaurer sur l'hôte en les copiant depuis le point de montage vers le dossier lié l'hôte : | * Copier les fichiers à restaurer sur l'hôte en les copiant depuis le point de montage vers le dossier lié l'hôte : |
* Ex. pour //web-srv// : '' cp -r "/tmp/repo/web-srv-2021-05-17T13:57:02/mnt/source/etc/cron.d/" /tmp/restore/ '' | * Ex. pour //web-srv// : '' cp -r "/tmp/repo/web-srv-2021-05-17T13:57:02/mnt/source/etc/cron.d/" /tmp/restore/$(date +'%Y-%m-%d')_gnatlas.custom '' |
* Ex. pour //db-srv// : '' cp -r /tmp/repo/db-srv-2022-04-08T01\:07\:55/root/.borgmatic/postgresql_databases/172.18.5.1/geonature2db /tmp/restore/ '' | * Ex. pour //db-srv// : '' cp -r /tmp/repo/db-srv-2022-04-08T01\:07\:55/root/.borgmatic/postgresql_databases/172.18.5.1/geonature2db /tmp/restore/$(date +'%Y-%m-%d')_geonature2db.custom '' |
* Vérifier las présence des fichiers à restaurer : ''ls -al /tmp/restore '' | * Vérifier las présence des fichiers à restaurer : ''ls -al /tmp/restore '' |
* Donner les droits d'accès à l'utilisateur admin : ''chmod 644 /tmp/restore/geonature2db'' | * Donner les droits d'accès à l'utilisateur admin : ''chmod 644 /tmp/restore/*.custom'' |
* Démonter le point de montage et quitter le shell interactif : '' borg umount /tmp/repo && exit '' | * Démonter le point de montage et quitter le shell interactif : ''borg umount /tmp/repo'' |
* Récupérer sur votre machine locale l'archive de base de données : ''scp admin@bkp-aura-sinp:/tmp/restore/geonature2db ./2022-04-08_geonature2db.custom'' | * Récupérer sur votre machine locale l'archive de base de données : ''scp admin@bkp-<region>-sinp:/tmp/restore/*.custom ./'' |
* Voir [[serveurs:installation:db-srv:postgresql-config#restaurer_localement_un_dump_de_la_base_du_serveur| la restauration en local d'une base serveur]] | * Voir [[serveurs:installation:db-srv:postgresql-config#restaurer_localement_un_dump_de_la_base_du_serveur| la restauration en local d'une base serveur]] |
| |
* Ex. : ''<nowiki> borgmatic extract --repository /mnt/borg-repository --archive "web-srv-2021-05-17T13:57:02" --destination /tmp/restore </nowiki>'' | * Ex. : ''<nowiki> borgmatic extract --repository /mnt/borg-repository --archive "web-srv-2021-05-17T13:57:02" --destination /tmp/restore </nowiki>'' |
* Pour extraire seulement un dossier de l'archive utiliser l'option ''<nowiki> --path </nowiki>'' avec le chemin du dossier sans slash au début. Ex. : ''<nowiki> borgmatic extract --repository /mnt/borg-repository --archive "web-srv-2021-05-17T13:57:02" --path "mnt/source/etc" --destination /tmp/restore </nowiki>'' | * Pour extraire seulement un dossier de l'archive utiliser l'option ''<nowiki> --path </nowiki>'' avec le chemin du dossier sans slash au début. Ex. : ''<nowiki> borgmatic extract --repository /mnt/borg-repository --archive "web-srv-2021-05-17T13:57:02" --path "mnt/source/etc" --destination /tmp/restore </nowiki>'' |
* Note concernant les bases de données : les fichiers ou dossiers des sauvegardes devraient se trouver dans ''/tmp/restore/root/.borgmatic/postgresql_databases/172.18.0.1/geonature2db'' (si le dossier d'extraction est ''/tmp/restore/'') | * Note concernant la localisation des éléments sauvegardés dans le dossier d'extraction ''/tmp/restore/'' (si le dossier d'extraction est ''/tmp/restore/'') : |
| * les fichier ou dossiers systèmes sauvegardés se trouvent dans ''/tmp/restore/mnt/...'' |
| * les sauvegardes des bases de données se trouvent dans ''/tmp/restore/root/.borgmatic/postgresql_databases/172.18.0.1/..'' |
* Quitter le container : ''exit'' | * Quitter le container : ''exit'' |
| |