Bonjour !
TL ; DR : Ce que j’imagine en tant qu’utilisateur non technicien, pour proposer une méthode facile pour créer un serveur de backup. En gros, un Debian préconfiguré avec un client VPN, “esclave” ssh, un serveur borg, et un petit fichier chiffré que l’utilisateur doit garder pour récupérer tout ça.
Merci !
Je suis impressionné chaque jour par la facilité d’administrer un serveur Yunohost pour un simple curieux comme moi. Je me dois donc de commencer ce post en saluant le travail incroyable de ce projet, et remercier les personne qui y contribue pour l’émancipation qu’elle rendent accessible.
Le seul “mais”, à mes yeux, est le système de backup. Pour moi, la force de yunohost, c’est de rendre les tâche d’administration simples au point qu’un simple clic suffise : installation d’application, mises à jour, diagnostic, etc. C’est le cas pour toutes les actions que j’estime “essentielles”, sauf pour les backup.
Le rêve :
Une solution de backup aussi simple que possible. Plus précisément, une solution de backup distante. J’imagine cela comme une image disque générée par yunohost, qui serait un debian “live”, préconfiguré (téléchargeable depuis l’interface web, ou sur une clef usb par exemple ?). Il suffirait de mettre cette image sur une machine connectée à internet, démarrer cette machine, et alors, elle apparait dans une liste de machine disponibles sur l’interface web de Yunohost. On peut alors choisir pour chaque machine de cette liste, un backup manuel, ou configurer un backup automatique en 1 clic.
Ce que j’imagine dans ma (relative) ignorance technique
Ce post est issu de mon idée ici : https://forum.yunohost.org/t/backup-box-la-brique-de-sauvergarde/
Je vais appelé mon serveur Yunohost “Y”, et le serveur de backup “B”.
Une connexion par VPN
Afin de ne pas avoir de problème d’adresse IP potentiellement dynamique, B pourrait se connecter à travers un VPN dont le serveur serait installé sur Y. Est-ce que c’est possible de créer un iso Debian live avec une configuration VPN complète préinstallée ? Est-ce qu’il faut un VPN dédié à cet usage ?
Un modèle maître-esclave via SSH
Y a un accès root (ou sudo ?) sur B. Est-ce que c’est possible de créer un iso Debian live avec une configuration SSH avec une clef publique de Y ?
BorgBackup
Y peut alors installé sur B un serveur borgbackup, et créer une archive chiffrée.
Fichier de récupération
Yunohost génère alors un fichier de récupération du backup, qui serait nécessaire si Y est complètement perdu. Ce fichier devrait contenir un backup du serveur VPN afin que B puisse se reconnecter sur la nouvelle machine, la clef de chiffrement de l’archive, (et quelques infos du genre les versions du client VPN et de borg, en cas de problème de rétrocompatibilité ?). Ce fichier serait alors téléchargeable depuis l’interface web de yunohost, en rentrant un mot de passe pour le chiffré, avec l’instruction de gardé ce fichier et son mot de passe précieusement en cas de nécessité de restauration.
Interface web de backup
Dans l’interface web, dans le menu “backup”, un nouveau menu, avec la liste des serveurs de backups qui ont été installé. On peut cliquer sur chacun d’entre eux pour :
- Lancer un Backup “simple” manuellement, en un clic
- Lancer un Backup “avancé”, où l’on peut choisir quoi backup, comme dans l’interface de backup actuelle
- Configurer un schéma de backup automatisé, avec choix des choses à backups, et quelques configurations pour borg (fréquence ? compression ? pruning ?)
Récupération
Depuis l’interface web
Dans l’interface web, dans le menu consacré à B, on trouve une liste des backups par ordre antéchronologique, avec un bouton “restore” pour chacun d’entre eux.
Après une perte totale de Y
Lors du process de post installation de yunohost, une option “restauration avec fichier de récupération” permet, en fournissant le fichier décrit plus haut, une restauration automatique du serveur. Je pense que c’est important de pas faire ça après la post-install, parce que je ne sais pas quoi renseigner dans la psot-install. Est-ce que je crée un nouvel utilisateur ? Alors que j’ai déjà mes utilisateurs dans mon backup ! Pareil pour le nom de domaine.
Réflexions générales :
- Est-ce que ce modèle n’est pas un peu “lourd” pour être implémenté dans yunohost lui-même ? Je pense notamment au VPN, ou au backup journalier.
- Si oui, est-ce que un expérience proche pourrait être proposé par une application ? Je pense notamment en terme de privilèges donné à cette application.
- Je n’ai pas de solution simple pour gérer la configuration du système B, notamment d’un point de vu volumes. Par exemple je veux que B soit un raspberry pi avec un disque dur externe, comment savoir quoi quoi formater/monter pour utiliser le disque ? (Le top du top serait d’être capable de lister les volumes accessibles directement dans l’interface web de Y )
Conclusion
J’hésite à faire ce post qui ressemble à une “feature request” d’un random sur internet qui ne contribue pas. Le travail que vous offrez sous licence libre est déjà une merveille qui me sert quotidiennement. Alors encore une fois merci. Ce post est avant tout une réflexion de curieux qui essaye de comprendre ce qui est possible ou non, facile ou non, faisable ou non.