Dans cet article, je vais détailler comment effectuer une restauration de Yunohost sur un autre système avec Borg après un désastre, ainsi que quelques étapes importantes à suivre pour ne pas se faire prendre les culottes baissées.
Quelques informations à noter
Pour toute installation de Yunohost, il est primordial de noter sur un support externe les noms des utilisateurs ayant les accès administrateur, ainsi que tous les couplages entre les noms de domaines et les applications.
La commande suivante permet d’obtenir cet information
sudo yunohost app list
Sauvegarde des clés racines de Borg
Bien qu’elles ne soient pas absolument nécessaires si votre site de sauvegarde primaire n’est pas affecté, mieux vaut en avoir une troisième copie quelque part des clés racines de cryptage des sauvegardes.
Pour extraire les clés depuis l’installation client de Borg, voici comment faire avec un compte utilisateur disposant des droits administrateurs.
sudo tar -jcvf ~/borg-keyfiles.tar.bz2 /root/.config/borg sudo chown $USER:$GROUPS ~/borg-keyfiles.tar.bz2 sudo tar -jcvf ~/borg-root-keys.tar.bz2 /root/.ssh sudo chown $USER:$GROUPS ~/borg-root-keys.tar.bz2
Depuis le poste de sauvegarde tiers (votre ordinateur personnel, probablement)
scp utilisateur_distant@mon_serveur_avec_client_borg:/home/utilisateur_distant/borg-keyfiles.tar.bz2 /repertoire-local/backup/ scp utilisateur_distant@mon_serveur_avec_client_borg:/home/utilisateur_distant/borg-root-keys.tar.bz2 /repertoire-local/backup/
Effectuer la restauration de Yunohost
Pour effectuer la restauration d’une application depuis un répertoire de sauvegarde Borg (copie secondaire ou tertiaire), il faut d’abord identifier le nom de l’archive à restaurer. Il y en a généralement une par application et par date de sauvegarde. Par exemple, pour une installation de WordPress, elle peut prendre la forme suivante
_auto_wordpress-2021-09-10_00:13 _auto_wordpress-2021-09-10_00:13.tar
Pour en effectuer l’extraction depuis les fichiers cryptés de Borg, il faut utiliser la commande suivante:
borg export-tar /repertoire-local/backup/::_auto_wordpress-2021-09-10_00:13 _auto_wordpress-2021-09-10_00:13.tar
Ensuite, dans une nouvelle instance de Yunohost, il faut installer le domaine identique à celui où se trouvait l’application. Pour se simplifier la tâche en attendant de régler les problèmes de DNS éventuels, on peut configurer celui-ci dans notre fichier local /etc/hosts
ou utiliser un firejail
.
Il faut aussi recréer l’utilisateur Yunohost avec exactement le même nom qu’il avait sur l’instance initiale.
J’ai essayé autre chose, ça ne marche pas. L’utilisateur doit être identique ! Je vous fais sauver du temps énorme avec ça !
Ensuite, on transfère notre archive vers la nouvelle instance
scp /repertoire-local/backup/archive _auto_wordpress-2021-09-10_00:13 _auto_wordpress-2021-09-10_00:13.tar utilisateur_distant@mon_nouveau_serveur:/home/yunohost.backup/archives/
Il est possible à cette étape qu’il faille supprimer des permissions telles que wordpress.admin
dans l’annuaire LDAP sinon la restauration de Yunohost ne fonctionnera pas. Ceci peut être fait depuis l’application phpLDAPAdmin disponible dans Yunohost.
On peut ensuite restaurer le backup depuis l’interface de gestion des sauvegardes de Yunohost
Enfin, au besoin, on pourra changer le nom de domaine d’origine pour un nouveau nom de domaine, toujours par l’interface de Yunohost.