Bhyve Virtual-Machine Control Panel (BVCP)

Cela fait assez longtemps que j'utilise BHyve, la plate-forme de virtualisation de FreeBSD. Je l'utilise pour faire tourner des logiciels qui n'existent pas sur FreeBSD mais aussi pour disposer de systèmes FreeBSD complets sur lesquels je peux faire des expérimentations.
Actuellement, je l'utilise au travers de la surcouche vm-bhyve et je voulais explorer d'autres solutions de gestion pour découvrir ce qu'elles apportent. Aujourd'hui je vais présenter un court retour d'expérience sur l'utilisation de la plate-forme BVCP.

BVCP est une plate-forme de management pour Bhyve, qui propose une console d'administration Web. Contrairement à d'autres solutions qui permettent aussi la gestion des Jails FreeBSD, BVCP se concentre uniquement sur BHyve.
C'est un projet relativement neuf, puisqu'il a vu le jour en 2021. C'est aussi le projet d'une seule personne, malheureusement. Ceci posé, l'application fonctionne plutôt très bien. Elle est livrée sous la forme d'une archive targz, avec un script d'installation à lancer. Il est donc possible de l'installer sur un système FreeBSD sans ajouter d'autres briques logicielles ou dépendances : tout est clé en main.
À la fin du processus d'installation, le compte administrateur de la plate-forme se voit doté d'un mot de passe affiché dans le terminal et l’utilisateur n’a plus qu’à se connecter à l’URL indiquée. En moins de cinq minutes et (presque) sans aucune connaissance de FreeBSD ou de Bhyve, on peut disposer d'une plate-forme de virtualisation administrée au travers d'une console Web.

Console d’installation à la fin du processus affichant le mot de passe du compte admin et l’URL de connection à l’interface web de BVCP

Le logiciel compilé (C) tourne en root et en www (interface web). On peut regretter que le choix du langage ne se soit pas porté sur quelque chose de plus moderne (Rust par exemple) mais au moins sa conception s’attache à instaurer une séparation de privilèges avec par un frontal web non-privilégié qui assaini les entrées utilisateur et transmet les instructions recevables à des briques basses privilégiées.
En termes d’utilisation, BVCP propose une ergonomie correcte. Trouver les menus pertinents pour chaque tâche est aisé et il ne faut que quelques minutes pour faire le tour du produit.

Une fois connecté avec le compte fourni par le script d’installation, l’utilisateur se trouve face à un tableau de bord qui présente des informations générales telles que la liste des VM par nœuds, la version de BVCP, les stockages disponibles et le statut de chaque nœud.

Page d’accueil de BVCP après authentification

Dans la marge gauche l’utilisateur dispose de 5 autres items permettant respectivement l’accès aux VM, aux stockages, aux réseaux, aux utilisateurs et aux indicateurs de santé du système sous-jacent.

L’écran dédié aux VM présente une liste de ces dernières, sous une forme relativement peu compacte. Ce n’est probablement pas idéal pour gérer plusieurs dizaines d’objets même si ce défaut est compensé par la possibilité de faire une recherche. À portée de souris pour chaque VM : un accès à la configuration et des boutons de démarrage / extinction / etc.

Page listant les machines virtuelles

Dans la partie droite de l’écran on trouve la liste des nœuds BVCP pilotés par l’instance sur laquelle on est connecté. Chaque nœud est affublé d’un bouton de création de VM.

L’affichage de la configuration d’une VM donne aussi accès en modification à l’ensemble des paramètres, mais BVCP ne permet pas de renommer une VM, ce qui est bien dommage.

Page présentant le détail de la configuration d’une machine virtuelle

Par exemple je ne suis pas parvenu a installer Ubuntu 24 desktop sur ma VM, j’ai installé Linux Mint à la place : la VM restera nommée «ubuntu24» jusqu’à sa destruction.
BVCP utilise noVNC pour permettre l’accès à la console des VM au travers de la connexion HTTPS de l’utilisateur. C’est pour moi un gros point positif. Dès l’instant où vous aurez sécurisé l’accès HTTPS (proxy HTTPS, filtrage IP, etc.) à la console BVCP, alors vous accéderez par le même canal, avec le même niveau de sécurité, à la console de chaque VM.

Console noVNC ouverte sur une VM Lninx Mint au travers de BVCP

Pour moi l’expérience s’arrête là. BVCP est un début prometteur mais il lui manque des fonctionnalités importantes à mes yeux : pouvoir renommer ou cloner une VM. Par contre quelqu’un qui débute sur FreeBSD et Bhyve pourra trouver dans cette plateforme un point de départ intéressant.

Related posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.