Migration yunohost vers proxmox

Bonjour à tous.

J’ouvre ce topic en prévision de la migration de mon serveur yunohost vers un proxmox.

Mon yunohost est actuellement sur une tour en raid 5 depuis 5 ou 6 ans … je ne sais plus trop :slight_smile:
Coté matériel : J’ai changé deux disques dur sur cette période.
Cotés logiciels : Tout fonctionne de mieux en mieux. MERCI À TOUS LES CONTRIBUTEURS POUR CA !!!

Cela fait un moment que je pense à “centraliser” mes machines sur un proxmox pour en faciliter la gestion et la sauvegarde. Comme j’ai rassemblé toutes les pièces, je me suis lancé ce w-end dans l’installation du proxmox (Raid 10, Btrfs) et j’ai commencé à migrer mes machines. Le pi-hole et le dns sont déjà sur le proxmox et semble bien fonctionner.

Avant de me lancer sur la migration du gros morceau (yunohost) je viens vous demander conseil, car les services fournis par mon yunohost sont vitaux pour moi et certain de mes proches (contrairement au pi-hole et au dns).

Je n’ai jamais migré mon yunohost d’une machine a une autre, mais il me semble que la procédure est en gros la suivante :

  1. sauvegarde du yunohost
  2. installation du nouveau yunohost (vide j’imagine)
  3. restauration de la sauvegarde sur le nouveau yunohost

Je me pose quelques questions :

  • J’utilise un nom de domaine *.noho.st, cela ne va-t-il pas poser problème ?
  • Parmi les applications que j’utilise certaine ne vont-elles pas poser problèmes ? :
    • codimd
    • dokuwiki
    • gitea
    • grammalecte
    • jupyterlab
    • kresus
    • languagetool
    • lutim
    • navidrome
    • nextcloud > lui gère le cloud des users mais aussi le caldav et carddav
    • plume
    • rainloop
    • ttrss
    • vpnclient
    • zerobin

J’oublie certainement des questions, mais je reviendrai les poster ici et je détaillerai au mieux cette migration pour que cela puisse éventuellement servir à d’autre.

Je suis preneur de tous conseils, remarque ou retour d’expériences.

Il me semble que @Kit a déjà migré au moins un yunohost et que @arjz utilise yunohost sur un proxmox, si vous aviez le temps de venir évoquer les éventuels points à creuser avant que je me lance :wink:

Bonjour,

J’ai migré un RPI3B+ vers une machine virtuelle proxmox. Ca fait un moment maintenant et je ne me rappelle plus exactement du détail.
De ce que je me souviens, j’ai bien fais comme tu dis:
1-Sauvegarde à partir de la webadmin de l’intégralité
2-Installation de Yunohost
3-Restauration à la place de la post-install
J’utilise aussi un nom de domaine fourni par yunohost. Je n’ai pas eu de soucis particulier à part pour les certificats que j’avais restaurés manuellement. Je ne sais pas/plus si c’est lié au fait que j’utilise un nom de domaine fourni par yunohost ou si c’était lié à autre chose mais je te conseille de sauvegarder /etc au préalable, ça pourrait éventuellement te servir en cas de nécessité.
Pour Nextcloud, je n’avais pas sauvegardé les données en même temps et je les avais restaurées à part.
Le serveur tourne toujours, la migration a eu lieu il y a environ 1 an et demi mais j’ai remplacé certaines apps entre temps.
Lors de la migration j’utilisais Nextcloud, Rainloop, Airsonic, Wallabag, pas de soucis à signaler.
Je me suis retrouvé avec des certificats expirés après migration, pas sûr que ce soit lié mais bon, si ça t’arrivais, j’avais résolu avec ces commandes:

mv /etc/yunohost/certs/yunohost.org/crt.pem{,.old}
mv /etc/yunohost/certs/yunohost.org/key.pem{,.old}
/usr/share/yunohost/hooks/conf_regen/02-ssl init
1 Like

Ho hi !

J’avais effectivement commencé à regarder du côté de proxmox il y a des années, mais j’ai depuis migré sur un dédié distant donc je n’ai pas poursuivi dans cette voie.

J’ai retrouvé ce retour d’expérience par Sango => Retour d'expérience : migration de mon infra sur Proxmox (VM)

1 Like

Je me demande quelle est la config matérielle minimum pour faire fonctionner proxmox ? Est-ce qu’un i3 avec 3G de ram peut la faire fonctionner ?

1 Like

Bonjour à tous,
De mon point de vue, par rapport à un serveur dédié, il y a quelques choix à faire lorsqu’on passe à une solution virtualisée :

  1. Yunohost en machine virtuelle ou LXC conteneur
  2. architecture/accès réseau - il y a différentes options disponibles avec Proxmox, permettant en particulier d’isoler le système de base proxmox des machines virtuelles.
  3. Gestion des volumes de stockage
    je suis en train d’installer proxmox sur un vieux serveur et Yunohost est la premier objectif. Je ne manquerai pas de donner des retours sur ce forum…
1 Like

Bonjour,

@Kit t’as partagé le lien qui va bien :wink:

Personnellement, je recommande, si on veut limiter les problèmes sur le long terme :

  • d’avoir une machine avec au moins 2 (3, c’est encore mieux !) disques durs ;
  • le maximum de RAM pour utiliser ZFS sans utiliser le swap (16 Go au moins, 32 Go recommandé à mon avis pour un Yunohost + 1 ou 2 VM qui vont bien)
  • pour le CPU, il faut qu’il supporte le virtualisation, forcément, et à mon avis, 4 cores est un bon compromis pour débuter sereinement.

/!\ au partitionnement lors de l’installation également → à voir en fonction du nombre de HDD utilisés :wink:

N’hésite pas si tu as d’autres questions !

Bien à toi,
Sangokuss

1 Like

Entièrement d’accord !

Pour ma part, j’ai choisis volontairement la solution VM plutôt que CT. Il s’agit d’une préférence pour la gestion sur le long terme, notamment lors des upgrades de Proxmox (mon retex à ce sujet sur les CT n’est pas top avec des architectures complexes telles que Yunohost faisant tourner plusieurs services.
Et l’utilisation de CT limite l’utilisation de certains outils tels que Wazuh (EDR) alors que cela est possible via VM.

Je ne parle pas ici de sécurité, mais CT/VM, chacun offre ses forces et faiblesses.

:wink:

1 Like

Merci à tous pour vos retours.

La migration est prévu ce w.end … ⁣:crossed_fingers:

Le retour détaillé de @Sango que @kit a retrouvé est vraiment intéressant surtout le côté sécurité ! J’aimerais par la suite mettre un PFSense en place, mais c’est pour plus tard.

A l’installation de proxmox j’ai choisi du Btrfs en Raid 10 … J’hésite encore à repasser en ZFS (RAID-2 voir RAID-3) car je dispose de 5 disques de 1 TO pour cette machine.

  • Avez-vous un avis sur la question ?
  • Ou quels sont les avantages et inconvénient que vous voyez ?

Pour info voici le détail du matériel (c’est de l’occasion):

  • CM: asus Z87-A
  • CPU: i5-4670K
  • RAM: 3 X 4Go ddr3 1600Mhz
  • DD: 5 X 1To (7200tr/m)
  • Reseau: 1 carte réseau en plus de celle de la carte mère (pas utilisé pour le moment)
  • Alimentation : Corsair HX620W modulaire
  • Onduleur: APC Back-UPS 1200VA

Hello,

Pour la config matérielle, tout cela me paraît parfait :+1:

Pour le partitionnement, je dirais (mais je n’ai pas réponse à tout, hein !) qu’il va falloir tenir compte de la manière dont tu souhaites sauvegarder tes machines virtuelles et containers.
Concrètement, si tu peux disposer d’une seconde machine pour y faire tourner un Proxmox Backup Server, un RaidZ2 ou 3, fera très bien le job.
Sinon, une solution serait de faire une répartition de type 2HDD pour le système et 3HDD pour le stockage des VM/CT (il sera alors possible de sauvegarder via PBS sur l’espace système ou inversement :wink:

Dis-moi si cela n’est pas clair !

Bonjour @Sango.

Pour le stockage des sauvegardes, je vais utiliser un partage NFS fourni par mon serveur NAS.

Quand j’aurai terminé la migration du yunohost sur une VM du proxmox, je vais en effet disposer d’une seconde machine à peu près équivalente a la machine proxmox.

J’avais dans l’idée d’y installer également proxmox VE pour l’ajouter au “datacenter”. Dans l’idée de pouvoir basculer les VM, sauvegardées sur le NAS, en cas de problème avec la première machine proxmox.

Je ne me suis pas penché, en détails, sur la solution proxmox backup mais, je pense le mettre dans une VM pour gérer les sauvegardes sur le partage NFS.

1 Like

Bonjour.

La migration a été faite ce w-end.

Voilà la procédure que j’ai appliquée :

  1. Sauvegarde globale via le webmin (~150Go) :sweat_smile:.
  2. Déplacement de la sauvegarde sur mon serveur NAS.
  3. Mise en place d’une VM avec une Debian 10.
  4. Installation de yunohost via curl https://install.yunohost.org | bash
  5. Installation du partage nfs :
# install packet NFS
apt install nfs-common

# mise en place du point de montage
mkdir /media/tmp
mount -t nfs 192.xxx.xxx.xxx:/partage_nfs /media/tmp
  1. Copie de la sauvegarde en local :
cp -v /media/tmp/20220417_xxxx.* /home/yunohost.backup/archives/

Et là, premier problème. Pendant la copie, la machine virtuelle s’arrête. J’ai fait plusieurs essais avec le même résultat. J’ai fini par trouver un message du kernel (proxmox) via journalctl -k :

Out of memory: Killed process 2356773 (kvm) total-vm:9835052kB, anon-rss:6762112kB, file-rss:504kB, shmem-rss:4kB, UID>

Pour contourner le problème, j’ai modifié temporairement le paramètre “cache” du disque dur de la VM de DéfautWrite through (sans vraiment comprendre le détail malgré la lecture de la doc)

capture d'écran

Cela a permis de faire la copie… :thinking:

  1. Lancement de la restauration yunohost backup restore 20220417_xxxx
    Selon les applications, pas mal de “warning” mais, la restauration se termine normalement.

Voilà, à partir de là j’ai testé chaque application pour vérifier si tout était ok :

  • codimd → OK
  • dokuwiki → OK
  • gitea → OK
  • grammalecte → OK
  • jupyterlab :
    Ne fonctionne plus, il dit avoir un problème de “spawn” … Comme je suis le seul à l’utiliser et que les informations que j’ai dessus ne sont pas vital, j’ai désinstallé (on verra plus tard)
  • kresus → OK
  • languagetool → OK
  • lutim → OK
  • navidrome → OK
  • nextcloud → OK
  • plume → OK
  • rainloop → OK
  • ttrss :
    N’apparais pas dans les applications, après vérification il ne semble pas avoir été sauvegardé (sûrement une erreur de ma part) :face_with_raised_eyebrow:
  • vpnclient :
    l’Application n’arrive pas à démarrer, d’après les logs, il manque le fichier de configuration. Je télécharge le fichier cube chez mon fournisseur (FDN) et cela repart nickel.
  • zerobin → OK

Autre détail :

  • La customisation de l’écran d’accueil n’a pas suivi (fond d’écran, css, …) rien de vital non plus ici.
  • j’avais une micro webapp custom qui n’a pas suivi, mais rien de grave elle est dans gitea :wink:

Conclusion a ce stade :

Les services vitaux semblent avoir migré sans problème (mail & webmail, cloud, caldav & carddav, gitea, etc) est ça, c’est super ! :+1: Je vais laisser tourner quelque temps afin de vérifier qu’il n’y a pas de problèmes que je n’aurai pas détecté.

Reste à faire :

À court terme :

  • Ajouter de la RAM a la machine proxmox VE
  • Mettre en place une VM proxmox BS pour gérer les sauvegardes
  • Après s’être assuré que je n’ai plus rien à récupérer sur l’ancienne machine yunohost la convertir en proxmox VE pour l’ajouter au “cluster”

A moyen terme:

  • Mettre en place un parfeu (VM?) pour segmenter mon réseau (pfsense ou ipfire ou autre…)

Voilà, j’ai surement oublié des choses, si vous avez des questions ou suggestions je suis preneur

4 Likes

Bonjour.

J’ai restauré l’application ttrss.

Je n’avais pas vraiment oublié de la sauvegarder. Il semble y avoir un problème sur la sauvegarde de l’application, un autre utilisateur (@arofarn → merci) a partagé le même problème ainsi que la solution : solved-update-impossible-de-sauvegarder-ttrss-pendant-la-mise-a-jour.

Donc voici ma démarche pour restaurer ttrss:

### Sur l'ancienne machine yunohost en root 
### qui n'est pas connecté au réseau ;)

# création du fichier ttrss manquant
touch /etc/cron.d/ttrss

# lancement d'une sauvegarde de ttrss
yonohost backup create --apps ttrss

# montage d'une clef et récupération de la sauvegarde
mount /dev/sdj1 /media/tmp
cp -v /home/yunohost.backup/archives/20220420-*.* /media/tmp/
sync

### Sur mon poste de travail connecté en 
### ssh sur la VM yunohost (en root)
### La cle usb avec la sauvegarde est monté

# récupération de la sauvegarde
scp user@192.168.xxx.xxx:/media/user/usb_key/20220420-*.* /home/yunohost.backup/archives/

# lancement de la restauration
yunohost backup restaure 20220420-xxxxxx

Voilà pour ttrss …

Merci pour ton retour très intéressant !

Personnellement, d’un point de vue sécurité, je te déconseille l’utilisation d’un parefeu (pfsense, opnsense, ipfire, etc) directement comme VM ou CT sur le Proxmox. Mieux vaut dédiée une machine pour faire ce travail.

Bonjour @Sango.

OK, du coup j’ai deux questions :

  1. Pourquoi une machine physique ?
  2. Quel genre de machine minimaliste pourrait convenir, sachant qu’il me faudra 3 interface réseau a minima ? Un truc comme ça https://shop.netgate.com/products/1100-pfsense?variant=32157480026227 ? (cher pour une p’tite boite) :sweat_smile:

Tu trouveras une part de réponse ici à ta première question :wink: (si bien entendu tu envisages de mettre ton parefeu en front) :

Pour la question du matériel, tout va dépendre du budget et du besoin. Mais on trouve pas mal de mini-pc sur Amazon ou ailleurs avec un couple CPU/RAM suffisant et surtout avec plusieurs interface (fait une recherche sur ces plateformes en cherchant “pfsense” ou “opnsense”).

1 Like

Bonjour.

Merci @Sango, j’installerai un pare-feu physique dans le futur.

Ajout de RAM

Je viens de mettre 32Go de RAM sur la machine proxmox qui héberge les VM critique, c’est déjà plus confortable.

Relance automatique des VM critiques

Comme proxmox est susceptible de couper une VM en cas de problème (comme le fameux Out of memory que j’ai déjà eu sur la VM yunohost) et que je ne peux pas forcément être disponible pour relancer les VM critiques, j’ai fait un bout de script pour le faire à ma place :

Résumé
#!/bin/bash

# restart des VM critiques
# 2022-04-23 : Create script

log="/var/log/run_vm.log"
machines=(101 105)
qm=/usr/sbin/qm

for (( i=0; i<${#machines[@]}; i++ )) ; do

	machine=${machines[$i]}
	dt=$(/usr/bin/date +"%F %T")
	stat=$($qm status $machine)
	if [ "$stat" == "status: running" ] ; then
		
		#echo "$dt $machine ok" >> $log # pour debug

	elif [ "$stat" == "status: stopped" ] ; then
	
		echo "$dt $machine restart" >> $log
		$qm start $machine

	else
		echo "$dt $machine etat inconnu: $stat" >> $log
	fi
done

exit 0

Je l’utilise dans une tache cron qui s’exécute tout les 1/4 d’heure. Ainsi les services critiques ne seront pas interrompus plus de 15 min, ce qui reste acceptable du point de vue des utilisateurs.

Je conçois que la façon de faire n’ai pas optimal. Si vous avez des remarques ou interrogations je suis preneur.

Mise en place des sauvegardes

Depuis 3 jours, une VM Proxmox Backup Server a été installé sur la machine n°2 (ex serveur yunohost) du cluster proxmox VE.
Elle (la VM PBS) est configuré pour sauvegarder les VMs de la machine n°1 du cluster sur un partage NFS tous les jours.

Pour le moment rien à signaler, tout fonctionne vraiment bien… Quand j’aurai du temps, je ferai des tests de restauration…

Voilà, les points notés en court terme sont tous terminés, en espérant ne pas avoir de mauvaise surprise… À suivre

2 Likes

Merci pour ce retour :slight_smile:

Concernant les potentiels problèmes à venir, juste un conseil (c’est du vécu) : il faut préférer, autant que possible, une configuration “simple” de Proxmox VE afin que les mises à jour se fassent dans de bonnes conditions. Par mesure de sécurité, je m’assure toujours que les sauvegardes sur le Proxmox Backup Server se sont bien déroulées (afin de pouvoir aisément réinstaller le PVE en cas de gros souci).

:wink:

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.