Post

Restauration des sauvegardes Borg sur un nouveau serveur Yunohost

Restauration des sauvegardes Borg sur un nouveau serveur Yunohost

Prérequis

  • Sauvegardes : Boîte de stockage BX11 Hetzner Online Storage Box
  • Serveur cible : Machine debian 11

Machine cible debian 11

Création disque virtuel qcow2

Créer un disque virtuel vm-yuno de 80Go via qemu

1
qemu-img create -f qcow2 /home/yann/virtuel/KVM/vm-yuno.qcow2 80G

Liste des os debian

1
sudo virt-install --osinfo list |grep debian
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
debian12, debianbookworm
debian11, debianbullseye
debian10, debianbuster
debian9, debianstretch
debian8, debianjessie
debian7, debianwheezy
debian6, debian6.0, debiansqueeze
debian5, debian5.0, debianlenny
debian4, debian4.0, debianetch
debian3, debian3.0, debianwoody
debian3.1, debiansarge
debian2.2, debianpotato
debian2.1, debianslink
debian2.0, debianhamm
debian1.3, debianbo
debian1.2, debianrex
debian1.1, debianbuzz
debiantesting

Créer une machine debian 11

1
2
3
4
5
6
7
sudo virt-install \
    --memory 4096 \
    --vcpus 2 \
    --name vm-yuno \
    --disk ~/virtuel/KVM/vm-yuno.qcow2,device=disk,bus=virtio,format=qcow2 \
    --cdrom /home/yann/iso/debian/bullseye/debian-11.7.0-amd64-netinst.iso \
    --os-variant debian11

Installer debian 11

la page graphique sur VMM

Paramètres installation
France
Machine : vmyuno
root root49600
yuno yuno49600
Serveur SSH
Utilitaires usuels du système

Ouvrir une session utilisateur

Relever ip : ip -a
Se connecter en ssh

1
ssh yuno@192.168.0.15

Installer Yunohost


Installer yunohost sur le nouveau serveur

Pré-requis

  • Un serveur dédié ou virtuel avec Debian 11 (bullseye) pré-installé , avec au moins 512Mo de RAM et 16Go de capacité de stockage ;
  • Ouvrez la ligne de commande sur votre serveur (soit directement, soit avec SSH)
  • Assurez-vous d’être connecté en tant que root

Installer sudo et curl apt install sudo curl

1
2
3
4
su
echo "yuno     ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
exit
sudo -s

Lancez la commande suivante :

1
curl https://install.yunohost.org | bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[INFO] Installation logs are available in /var/log/yunohost-installation_20230926_113323.log
[ OK ] YunoHost installation completed !
===============================================================================
You should now proceed with Yunohost post-installation. This is where you will
be asked for :
  - the main domain of your server ;
  - the administration password.

You can perform this step :
  - from the command line, by running 'yunohost tools postinstall' as root
  - or from your web browser, by accessing : 
    - https://192.168.0.17/ (local IP, if self-hosting at home)
    - https://82.64.18.243/ (global IP, if you're on a VPS)

If this is your first time with YunoHost, it is strongly recommended to take
time to read the administator documentation and in particular the sections
'Finalizing your setup' and 'Getting to know YunoHost'. It is available at
the following URL : https://yunohost.org/admindoc
===============================================================================

Post-installation

Oui, vous devez configurer un nom de domaine. Si vous n’avez pas de nom de domaine et que vous n’en voulez pas en .nohost.me, .noho.st ou .ynh.fr, vous pouvez utilisez un « faux » domaine comme par exemple yolo.test et modifier votre fichier /etc/hosts sur votre ordinateur local pour que ce domaine pointe vers l’IP de votre serveur.

Peu importe les paramètres , ils seront effacés lors de la restauration

Exécuter la commande suivante

1
yunohost tools postinstall
1
2
3
4
5
6
7
8
9
10
11
12
Domaine principal: yunovm.loc
Nom d'utilisateur de l'administrateur: yun
Nom complet de l'administrateur: yun vm
Nouveau mot de passe d'administration:   # admin49600

[...]

Succès ! YunoHost est maintenant configuré
Attention : La post-installation est terminée ! Pour finaliser votre installation, il est recommandé de :
    - diagnostiquer les potentiels problèmes dans la section 'Diagnostic' de l'interface web (ou 'yunohost diagnosis run' en ligne de commande) ;
    - lire les parties 'Lancer la configuration initiale' et 'Découvrez l'auto-hébergement, comment installer et utiliser YunoHost' dans le guide d'administration : https://yunohost.org/admindoc.

Installer borg

Installer application borg

1
sudo apt install borgbackup

Clé SSH borg

Actions à effectuer sur la machine yunohost

En root,créer une clé SSH pour l’authentification borg sur la boîte de stockage

1
2
sudo -s
ssh-keygen -t ed25519 -f /root/.ssh/id_borg_ed25519

Validez en appuyant sur la touche « Entrée » à toutes les questions

Vous devriez maintenant avoir une clé privée contenue dans le fichier /root/.ssh/id_borg_ed25519, et une clé publique contenue dans le fichier /root/.ssh/id_borg_ed25519.pub
La clé privée ne doit jamais être partagée.

Ajout clé publique au serveur contenant les sauvegardes borg

Ajouter clé publique borg au fichier authorized_keys de la boîte de stockage

Depuis un poste ayant accès à la boîte de stockage
On télécharge le fichier existant authorized_keys de la boîte de stockage bx11-yann dans un fichier local nommé storagebox_authorized_keys

1
echo -e "get .ssh/authorized_keys storagebox_authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de

Ajout clé publique borg de la vmm yunohost

1
cat >> storagebox_authorized_keys

Copier/coller la clé publique dans ce terminal (commande : cat /root/.ssh/id_borg_ed25519.pub) de la machine, et presser [Ctrl]+[D] pour valider.

On renvoie le fichier modifié storagebox_authorized_keys dans le fichier authorized_keys de la boîte de stockage bx11-yann

1
echo -e "put storagebox_authorized_keys .ssh/authorized_keys" | sftp -P 23 -i ~/.ssh/bx11-yann-ed25519 u326239@u326239.your-storagebox.de

Restauration sauvegardes borg

https://github.com/YunoHost-Apps/borg_ynh/blob/master/README.md

Lister les sauvegardes borg

  • Dépôt distant borg : ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz
  • Clé SSH : /root/.ssh/id_borg_ed25519
  • PassPhrase du dépôt borg : /root/.borg/xoyize.xyz.passphrase

On passe en mode su : sudo -s

Identifier les sauvegardes du serveur xoyize.xyz à restaurer

1
2
3
4
5
export BORG_RSH="ssh -i /root/.ssh/id_borg_ed25519"
export BORG_PASSPHRASE=$(cat /root/.borg/xoyize.xyz.passphrase)
export REPOSITORY="ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz"
export DATESAV="2023-09-26"
borg list --short  $REPOSITORY |grep $DATESAV

Les sauvegardes du 26 septembre 2023

1
2
3
4
5
6
7
8
9
10
11
12
13
14
_auto_conf-2023-09-26_02:10
_auto_data-2023-09-26_02:10
_auto_borg-2023-09-26_02:10
_auto_calibreweb-2023-09-26_02:11
_auto_gitea-2023-09-26_02:11
_auto_jirafeau-2023-09-26_02:11
_auto_my_webapp-2023-09-26_02:11
_auto_navidrome-2023-09-26_02:12
_auto_nextcloud-2023-09-26_02:12
_auto_onlyoffice-2023-09-26_02:12
_auto_shaarli-2023-09-26_02:13
_auto_snappymail-2023-09-26_02:13
_auto_transmission-2023-09-26_02:13
_auto_ttrss-2023-09-26_02:15

Installer tmux pour pouvoir exécuter les tâches après déconnexion SSH

1
2
apt install tmux 
tmux

Recréer les archives tar localement

dans le dossier /home/yunohost.backup/archives/ avec un script bash pour recréer automatiquement

1
2
3
4
5
6
7
8
9
10
sudo -s
export BORG_RSH="ssh -i /root/.ssh/id_borg_ed25519"
export BORG_PASSPHRASE=$(cat /root/.borg/xoyize.xyz.passphrase)
export REPOSITORY="ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz"
export DATESAV="2023-09-26"
for mavariable in `borg list --short  $REPOSITORY |grep $DATESAV`
do
    echo "borg export-tar $REPOSITORY::$mavariable /home/yunohost.backup/archives/$mavariable.tar"
    borg export-tar $REPOSITORY::$mavariable /home/yunohost.backup/archives/$mavariable.tar
done

Procédure manuelle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export BORG_RSH="ssh -i /root/.ssh/id_borg_ed25519"
export BORG_PASSPHRASE=$(cat /root/.borg/xoyize.xyz.passphrase)
export REPOSITORY="ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz"
export DATESAV="2023-09-26"
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_conf-2023-09-26_02:10 /home/yunohost.backup/archives/_auto_conf-2023-09-26_02:10.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_borg-2023-09-26_02:10 /home/yunohost.backup/archives/_auto_borg-2023-09-26_02:10.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_calibreweb-2023-09-26_02:11 /home/yunohost.backup/archives/_auto_calibreweb-2023-09-26_02:11.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_gitea-2023-09-26_02:11 /home/yunohost.backup/archives/_auto_gitea-2023-09-26_02:11.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_jirafeau-2023-09-26_02:11 /home/yunohost.backup/archives/_auto_jirafeau-2023-09-26_02:11.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_my_webapp-2023-09-26_02:11 /home/yunohost.backup/archives/_auto_my_webapp-2023-09-26_02:11.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_navidrome-2023-09-26_02:12 /home/yunohost.backup/archives/_auto_navidrome-2023-09-26_02:12.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_nextcloud-2023-09-26_02:12 /home/yunohost.backup/archives/_auto_nextcloud-2023-09-26_02:12.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_onlyoffice-2023-09-26_02:12 /home/yunohost.backup/archives/_auto_onlyoffice-2023-09-26_02:12.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_shaarli-2023-09-26_02:13 /home/yunohost.backup/archives/_auto_shaarli-2023-09-26_02:13.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_snappymail-2023-09-26_02:13 /home/yunohost.backup/archives/_auto_snappymail-2023-09-26_02:13.tar
borg export-tar ssh://u326239@u326239.your-storagebox.de:23/./backup/borg/xoyize.xyz::_auto_ttrss-2023-09-26_02:15 /home/yunohost.backup/archives/_auto_ttrss-2023-09-26_02:15.tar

Restaurer depuis les archives locales

Gérer les sauvegardes :
yunohost backup create, restore, list, info, download, delete ... [-h]

  • create : Créer une archive locale de sauvegarde. Si ni –apps ni –system ne sont donnés, ceci
    sauvegardera toutes les applications et toutes les parties du système. Si seulement –apps est donné, cela
    uniquement des applications de sauvegarde et aucune partie du système. De même, si seul –system est donné, cela
    ne sauvegardera que les parties du système et aucune application.
  • restore : Restauration à partir d’une archive de sauvegarde locale. Si ni –apps ni –system ne sont donnés,
    cela restaurera toutes les applications et toutes les parties du système dans l’archive. Si seulement –apps
    si cela est indiqué, cela restaurera uniquement les applications et aucune partie du système. De même, si seulement
    –system est donné, cela ne restaurera que les parties du système et aucune application.
  • list : Liste les archives de sauvegarde locales disponibles
  • info : Afficher des informations sur une archive de sauvegarde locale
  • delete : Supprimer une archive de sauvegarde

Liste des archives

1
yunohost backup list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
archives: 
  - _auto_conf-2023-09-26_02:10
  - _auto_borg-2023-09-26_02:10
  - _auto_navidrome-2023-09-26_02:12
  - _auto_calibreweb-2023-09-26_02:11
  - _auto_nextcloud-2023-09-26_02:12
  - _auto_onlyoffice-2023-09-26_02:12
  - _auto_data-2023-09-26_02:10
  - _auto_shaarli-2023-09-26_02:13
  - _auto_gitea-2023-09-26_02:11
  - _auto_snappymail-2023-09-26_02:13
  - _auto_jirafeau-2023-09-26_02:11
  - _auto_transmission-2023-09-26_02:13
  - _auto_my_webapp-2023-09-26_02:11
  - _auto_ttrss-2023-09-26_02:15

Vous pouvez restaurer manuellement dans l’ordre que vous donnez (conf, données et enfin apps par apps)

Ce qui est restauré depuis /home/yunohost.backup/archives/

1
2
yunohost backup restore _auto_conf-2021-10-01_03:20.tar.gz --system
yunohost backup restore _auto_data-2021-10-01_03:20.tar.gz --system

Ce qui n’est pas restauré depuis /home/yunohost.backup/archives/

1
2
3
yunohost backup restore _auto_navidrome-2021-10-01_03:25.tar.gz --apps
yunohost backup restore _auto_borg-2021-10-01_03:21.tar.gz --apps
yunohost backup restore _auto_calibreweb-2021-10-01_03:21.tar.gz --apps

Exécutable bash pour lister et restaurer toutes les sauvegardes

1
2
3
4
# Lister
find /home/yunohost.backup/archives/ -name "*.tar" | while read a; do echo "${a##*/}"; done
# Restaurer
find /home/yunohost.backup/archives/ -name "*.tar" | while read a; do  echo "${a##*/}"; yunohost backup restore ${a##*/} --force; done
Cet article est sous licence CC BY 4.0 par l'auteur.