Yunohost, Virtualbox, Interfaces réseaux
J'avais publié rapidement un billet Yunohost, Clonezilla et Virtualbox expliquant que j'avais fait un clone via Clonezilla de ma machine Yunohost et cloner celle-ci au sein d'une machine virtuelle dans VirtualBox. Dans ce billet, je voudrais aller un peu plus loin et aborder l'aspect configuration et paramétrage réseau.
Remarque :
Par YunohostProd, je désignerai la machine / serveur sur laquelle j'ai mon Yunohost que j'utilise tous les jours ;
Par YunohostTest, je désignerai le clone / la machine virtuelle dans VirtualBox.
Mon besoin
Mon besoin est donc d'avoir une machine de test, aussi proche que possible de ma machie de production. L'avantage de la machine virtuelle est de pouvoir jouer avec et faire des tests, revenir en arrière très facilement via les snapshots.
VirtualBox - Quelles cartes réseaux ?
Cet environement de test est testé essentiellement sur deux types de réseaux : chez moi, derrière une Freebox. Et sur un réseau d'entreprise.
Sur chacun des machines virtuelles (que j'utilise dans VirtualBox, indépendamment du fait que ce soit une instance Yunohost), je crée à minima deux cartes réseaux :
une carte eth0 en mode NAT : l'accès Internet de la machine hôte est alors partagé, je peux faire des mises à jour etc. La machine virtuelle voit Internet mais n'est pas vu du réseau local (elle est derrière un NAT qui est géré par VirtualBox).
une carte eth1 en mode Réseau Privé hôte sur vbonet0 : la machine est visible et voit la machine hôte et réciproquement. Cette interface réseau me sert pour me connecter en SSH depuis ma machine hôte sur la machine virtuelle.
A ces deux interfaces réseaux, j'en ajoute une troisième :
une carte eth2 en mode Accès par pont (Bridge). Cette interface est uniquement valable dans le cas où le réseau permet à la machine virtuelle d'avoir une IP dédiée (fixe ou via le DHCP). En entreprise (par exemple), là où les IP sont souvent associées aux adresses MAC, il n'est pas possible d'avoir une IP dédiée pour les machines virtuelles de test ; je désactive donc cette interface. De chez moi, quand je suis connecté sur le réseau de la Freebox, j'active cette carte eth2, ma machine virtuelle a donc une IP dédiée sur le réseau local.
Remarque : vu que via cette interface, la machine hôte voit également la machine virtuelle étant donné qu'elles sont sur le même réseau local, je pourrais désactiver l'interface eth1 quand je peux activer eth2.
Qui voit quoi ?
via la carte en NAT : la VM a accès à Internet pour les mises à jour derrière un NAT. Elle est invisible du réseau local et de la machine hôte, à moins de faire des redirections de port ;
via la carte Réseau privé : accès à la machine hôte et réciproquement ; la VM est également visible des autres machines virtuelles situées dans le même réseau privé.
via la carte Réseau Accès par Pont : comme la machine virtuelle a accès au réseau local et sa propre IP sur le réseau, elle est visible des machines du réseau local en accès direct.
Configuration réseau - DHCP par défaut Pour chacune des interfaces réseaux de ma machine virtuelle, je reste en DHCP par défaut. Je pourrais lui affecter des IP fixes, mais je peux savoir facilement (c'est indiqué au lancement de Yunohost) les différentes adresses IP associées aux différentes interfaces réseaux ; le bail DHCP étant assez long - la machine garde toujours les mêmes IP pour les différentes interfaces.
Connexions à la VM Yunohost
Les connexions Yunohost se font de deux façons :
par un navigateur pour l'accès aux différentes applications dans Yunohost ;
par SSH
Sur ma machine hôte (un Linux), pour me simplifier la tâche et Yunohost utilisant les noms de domaines qu'ont lui a associé plutôt que les IP, quand je lance ma machine virtuelle, je pense à modifier le fichier /etc/host
monyunohost.fr 192.168.0.100
avec :
monyunohost.fr : mon domaine yunohost
192.168.0.100 : l'IP du réseau privé affecté par VirtualBox à la machine virtuelle (interface eth1).
Et ainsi, en allant sur https://monyunohost.fr, je peux faire ce que j'ai à faire.
Reste à faire
Du routage avancé Tout le trafic passe par défaut - est routé via l'interface eth0, celle qui est donc Naté. Cela ne pose pas de soucis pour tout ce qui sort. Mais pour ce qui entre, il est nécessaire de passer par la carte eth1.
=> Il faut que je vois les possibilités de ce côté.
Mise en place d'une synchronisation Prod vers Recette Je peux très facilement cloner la machine virtuelle YunohostTest pour avoir une machine pour les tests et une machine "Sauvegarde".
J'aurai donc une seconde machine virtuelle, YunoBackup, qui aura une interface eth2 avec une IP du réseau sur lequel se trouve la machine YunohostProd. Les deux machines se voient. Mon idée est de mettre en place un système (un script) qui au démarrage de la machine virtuelle de Sauvegarde (YunoBackup) va se connecter en SSH à ma machine de production, et se synchroniser (à base de Rsync) pour récupérer les principaux changements.
Autre possibilité : récupérer les sauvegardes et les restaurer au sein de cette machine YunoBackup (un bon moyen de valider la procédure de sauvegarde / restoration). Toujours via un script.
=> Je note ça dans ma todo liste de projets personnels. A suivre.