Virtualbox comme outil dans le cadre de formations

Etant amenés à faire des formations à des client sur différents logiciels, je souhaiterai partager ici plusieurs astuces que nous avons mis en place au sein de mon équipe et que nous réutilisons dans le cadre de formation professionnelle que nous sommes amenés à préparer et donner à des clients. Je profiterai de ce retour d'expérience pour partager des astuces, des conseils, des pratiques qui ont été testées et validées en situation sur le terrain hostile des réseaux d'entreprises...

Nous utilisons également ces VM (VM = Virtual Machines ou Machines virtuelles, soit les machines virtualisées, les systèmes invités dans Virtualbox, le système hôte étant la machine physique qui fait tourner le le logiciel Virtualbox) pour nos différents projets dans le cadre de l'appropriation d'une nouvelle technologie (on ne peut pas tout savoir), de veille ou de la réalisation de P.O.C. (Proof of Concept) rapide.

Dans ce billet, quelques éléments / retour d'expérience. Je ne détaille pas, des connaissances sur le fonctionnement de Virtualbox (ou d'un environnement de virtualisation en général) sont un prérequis.

Pourquoi choisir Virtualbox ?

Nous utilisons Virtualbox et ce pour plusieurs raisons :
-Les machines virtuelles sont portables : nous travaillons sous des distributions Linux différentes selon les collaborateurs, les clients sont sous des OS Microsoft (Windows 7 ou 10). Et le transfert d'une VM d'un environnement à un autre se fait sans soucis (juste le temps de la copie). Les VM sont parfaitement compatibles (si les versions de Virtualbox sont bien les mêmes).
-facilité de transfert et de sauvegarde : les VM sont des gros fichiers qui viennent avec des fichiers de configurations XML. Facile à copier d'une machine à l'autre et donc à sauvegarder (on copie tout le fichier).
-parce que je maîtrise cet outil. Oui je connais KVM (et le fait qu'il y ait une interface graphique si besoin etc. mais je reste fidèle à la facilité de Virtualbox ;)

Prérequis à une formation

Avant d'intervenir en formation en présentielle chez un client, nous demandons comme pré-requis :
- que l'on nous mette à disposition des machines disposant d'un processeur Intel coreiX (X étant un nombre de 3 à 7, l'intérêt est d'avoir un processeur 64 bits, supportant les instructions de virtualisation et donc d'avoir une machine virtuelle performante). Intel ou équivalent chez AMD (que j'avoue ne pas connaître).
- qu'idéalement la machine ait un SSD : des machines virtuelles de formation ont des petits jeux de données et ne font que quelques gigas (elles tiennent sur des clefs USB), ce n'est pas ça qui va prendre de la place sur le disque. Et comme un SSD c'est toujours plus rapide et plus de confort pour la virtualisation...
L'astuce de Genma : copier les machines virtuelles de formation sur plusieurs clefs USB. Pour qu'on puisse lancer plusieurs copies le jour J.
- à minima 8 go de RAM : j'ai déjà eu des PC de formation sous Windows 7 64 bits avec 4 giga de RAM, même avec une machine virtuelle à laquelle on affecte que 512 Go à 1 Go de RAM (pour un serveur nginx / php / MySQL), c'est lent. 8 giga de RAM permettent d'être confortable (et de faire tourner 2 VM auxquelles on affecte 2 Giga de RAM chacune), 16 Go c'est idéal.

Configuration réseau

Pour la configuration réseau sous Virtualbox, j'ai fait un billet dédié abordant ce sujet Yunohost, Virtualbox, Interfaces réseaux. Le fait que ce soit Yunohost ne change rien à la philosophie, les explications de mon billet restent et sont valables pour n'importe quel système en tant qu'invité.

L'astuce de Genma : attention à bien penser à faire des reset des adresses MAC à l'installation des VM sur chacun des postes de formation pour éviter des soucis d'IP. En effet, dans le cas d'une connexion réseau par pont sur un réseau fournissant une adresse en DHCP, si la carte réseau virtuelle garde la même adresse MAC (cas d'une copie d'une même machine virtuelle invitée sur plusieurs PC hôte), on se retrouve très vite avec des conflits réseaux...

Il faut anticiper le maximum de problème (on aura toujours des imprévus) d'où une seconde astuce :

L'astuce de Genma : penser à faire valider avant par le client la mise à disposition d'une connexion à Internet et la qualité du réseau (pas de proxy nécessitant une authentification, pas de filtrage par adresse MAC ou autre etc.) Et prendre en compte les informations pour adapter la connexion réseau de la machine virtuelle en conséquence.

Utiliser des points de restauration snapshot

Cela permet que si la personne n'a pas réussi l'exercice, qu'elle puisse repartir d'une machine ayant le résultat et de continuer. Si il y a une mauvaise manipulation, on peut repartir d'une version qui était fonctionnelle. De plus, ces points de restauration / snapshot s'exportent très bien à l'export de la VM (pour sa copie sur clef USB puis sur les PC de formation).

L'astuce de Genma : penser à nommer les points de restauration.

Le luxe étant d'avoir une machine virtuelle par grande phase / partie de la formation (qu'on lance et éteint à chaque fin de grande partie). Mais cela fait autant de machine à maintenir...

Les comptes utilisateurs

Avoir un compte utilisateur et un compte administrateur. Mettre des mots de passe simple (le même pour les deux). L'objectif n'est pas d'avoir de la sécurité mais d'avoir des comptes facile à utiliser

L'astuce de Genma : dans le cas de machine Linux, activer un serveur SSH. Si la machine virtuelle a une IP publique (ou sa machine hôte et qu'on a activé la redirection de port sur la configuration NAT de la machine virtuelle), on peut ainsi facilement accéder à n'importe quel VM via SSH (vu que les comptes sont connus) et aider / débloquer un des participants depuis son propre PC.

Avoir une VM template et maintenir sa VM à jour}

J'ai une VM coquille vide de référence : une installation de Debian minimale de laquelle je peux repartir en la clonant pour répondre à des besoins de formation pour lesquels je n'ai pas encore de VM. Je ne repars pas de zéro comme ça. Et je fais le maintiens / mise à jour de cette VM (tout comme celles plus avancées dans lesquelles il y a un ou plusieurs logiciels dédiés aux formations). Comme ça, je suis les évolutions et montées en version.

Aller plus loin ?

J'avais écrit un billet Jouons avec Ansible et Virtualbox dans lequel, comme le nom l'indique,

On peut imaginer d'automatiser certaines choses avec Ansible et un script. En effet, comme Virtualbox est également accessible en ligne de commandes, on peut imaginer un script qui :
- lance une VM via les commandes Virtualbox
- fait un snapshot /point de restauration de la machine virtuelle
- fait une mise à jour de la VM via Ansible (pour éviter la saisie de mot de passe)
- fait un snapshot /point de restauration de la machine virtuelle (pour conserver la version mise à jour)
- éteindre la machine et passe à la suivante

On lance ça un midi ou un soir et on a toutes ses VM maintenues à jour...

Sauvegardes

Bien évidemment, il faut penser à avoir des sauvegardes de toutes ces machines virtuelles vu tout le travail qu'on aura fait pour les mettre en place. Mais les sauvegardes c'est une évidence, non ?.

Conclusion

Que ce soit pour des VM pour des sessions de formation, pour des POC ou pour des projets, Virtualbox répond parfaitement à mes attentes. Le côté rigueur imposé (comptes connus, mises à jour etc.) permet l'interopérabilité et le transfert rapide à d'autres personnes (collaborateurs ou apprenants de la formation) et permet du gain de temps conséquent. Et vous, un avis, d'autres pratiques ou usages, ou des conseils ?

Vus : 680
Publié par genma : 387