Multipass : créez simplement des machines virtuelles Ubuntu depuis Linux, macOS ou Windows

Multipass : créez simplement des machines virtuelles Ubuntu depuis Linux, macOS ou Windows

Avec l'hyperviseur de votre choix

Avatar de l'auteur

David Legrand

Publié dansLogiciel

05/06/2020
12
Multipass : créez simplement des machines virtuelles Ubuntu depuis Linux, macOS ou Windows

Si Ubuntu est le projet le plus visible de Canonical, il est entouré d'un écosystème complet d'outils annexes. Parmi eux, Multipass, développé depuis quelques années pour faciliter la gestion de VM Ubuntu depuis n'importe quelle plateforme. Une solution intéressante, mais limitée.

Dans le monde de la virtualisation, on évoque surtout les hyperviseurs. Il en existe de nombreux sur le marché, de KVM sous Linux aux produits de Nutanix ou VMWare en passant par Hyper-V de Microsoft. Mais avec la progression de la tendance « Infrastructure as code », des outils complémentaires ont vu le jour, plus ou moins simples à utiliser.

L'objectif est, à la manière de Kubernetes (K8s) ou Swarm pour les conteneurs Docker, de pouvoir déployer simplement des machines virtuelles via des scripts. Il existe là aussi de nombreuses solutions, Hyper-V se reposant sur PowerShell, VMWare ou VirtualBox ayant leur propre outil en ligne de commandes (CLI). Sous Linux il est courant de rencontrer qemu-kvm ou Virsh (libvirt). Des solutions complètes, parfois complexes mais rarement adaptées à différentes plateformes.

C'est pour cela que Canonical a travaillé sur le projet open source Multipass en parallèle de ses autres efforts pour faciliter l'utilisation d'Ubuntu dans des environnement virtualisés. Il doit permettre la création et la gestion simple de VM, tant sous Linux que macOS ou Windows et avec différents hyperviseurs. Un outil notamment utilisé pour MicroK8s

Une installation très simple

Le premier intérêt de Multipass est donc son aspect multiplateforme, qui a ses limites. On peut en effet l'installer sous Linux mais uniquement via un Snap. Sous Windows 10 il fonctionne de pair avec VirtualBox, mais aussi Hyper-V si vous disposez d'une licence Pro/Entreprise du système. Chez Apple il faut au moins un Mac de 2010 sous macOS Sierra.

Dans les deux derniers cas, un outil d'installation est proposé. On peut également passer par des gestionnaires de paquets comme Brew sous macOS, Chocolatey ou WinGet sous Windows. La documentation complète est disponible ici.

Notez que sous Windows, si vous voulez utiliser Hyper-V, il vous faudra l'activer dans la liste des fonctionnalités (OptionalFeatures.exe) ou en tapant la commande PowerShell suivante avec les droits administrateur :

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Pour travailler avec VirtualBox, quel que soit l'OS, tapez cette commande avec les droits administrateur :

multipass set local.driver=virtualbox

Sous Linux, il est possible d'utiliser libvirt, via un pilote expérimental. De manière plus générale, vous pouvez modifier les paramètres de Multipass avec ses commandes get et set.

Lancer une machine virtuelle Ubuntu

Une fois Multipass installé, son utilisation de base est assez simple. Par exemple pour télécharger une image dite primaire exploitant des paramètres par défaut (1 cœur, 1 Go de mémoire, 5 Go de stockage, Ubuntu 18.04 LTS, nom : « primary ») et ouvrir un accès à son shell directement dans le terminal en cours, deux termes suffisent :

 multipass shell

Vous obtenez alors le système le plus basique possible, mais il s'agit bien d'un Ubuntu complet, virtualisé. Si vous vous rendez dans l'interface de votre hyperviseur, elle sera d'ailleurs visible et gérable. Vous l'avez simplement initiée d'une commande. Pour la quitter, tapez exit et validez.

Voici la liste des autres commandes à connaître pour un usage élémentaire : 

list : affiche la liste des instances
find : affiche la liste des images disponibles
info : affiche les informations d'une ou plusieurs instances
delete : supprime une ou plusieurs instance (-p pour les purger)
recover : restaure l'ensemble des instance supprimées mais non purgées
purge : purge l'ensemble des instances supprimées

--all : à ajouter pour une commande concernant toutes les instances

Vous pouvez à tout moment obtenir le détail du fonctionnement de l'outil ou d'une commande : 

multipass help
multipass help commande

Vous pouvez également lancer une commande directement dans la VM sans entrer dans son shell :

multipass exec primary -- openssl speed --multi $(nproc) rsa4096

Dans l'exemple ci-dessus, on lance un benchmark OpenSSL sur l'ensemble des cœurs de la VM primaire. Aucune solution n'est proposée pour l'accès à une interface graphique qui serait liée au système, mais cela reste possible via l'hyperviseur.

Personnalisation de la machine virtuelle

Imaginons maintenant que vous désiriez une machine virtuelle avec 4 cœurs, 8 Go de mémoire, 20 Go de stockage, basée sur la version 20.04 LTS d'Ubuntu dont le nom est « servernew  ». Stoppons celle déjà lancée, et lançons la procédure :

multipass stop primary
multipass launch -c 4 -m 8G -d 20G -n servernew 20.04

On peut là aussi exécuter directement une commande ou entrer dans le shell : 

multipass shell servernew

Vous pouvez agir sur le statut des VM avec quatre autres commandes : start, stop, suspend et restart.

Un fichier de configuration peut être ajouté avec --cloud-init à la phase de lancement. Si un large éventail d'images est disponible, c'est à un regret près : la liste dépend beaucoup de l'OS de l'hôte. En effet, sous Linux on peut choisir entre Ubuntu Core, LTS, daily, etc. Et même utiliser l'URL d'une image personnalisée. Voici la liste proposée :

Image                  Aliases         Version Description
snapcraft:core core16 20200529 Snapcraft builder for Core 16
snapcraft:core18 20200529 Snapcraft builder for Core 18
core core16 20200213 Ubuntu Core 16
core18 20200210 Ubuntu Core 18
16.04 xenial 20200522 Ubuntu 16.04 LTS
18.04 bionic,lts 20200519.1 Ubuntu 18.04 LTS
19.10 eoan 20200527 Ubuntu 19.10
20.04 focal 20200529.1 Ubuntu 20.04 LTS
daily:20.10 devel,groovy 20200603 Ubuntu 20.10

Sous Windows 10 on a seulement : 

Image                  Aliases         Version Description
16.04 xenial 20200522 Ubuntu 16.04 LTS
18.04 bionic,lts 20200519.1 Ubuntu 18.04 LTS
20.04 focal 20200529.1 Ubuntu 20.04 LTS

Et il est tout simplement impossible d'utiliser une image sous la forme d'un fichier local ou d'une URL. L'aspect multiplateforme tant vanté prend ici un sérieux coup. Espérons que les listes seront rapidement alignées. 

Transfert de fichier et points de montage

Une fois l'image en place, vous avez quelques possibilités intéressantes, notamment pour les fichiers. On peut en effet en transférer un de l'hôte vers la VM ou inversement, le dossier utilisateur étant celui par défaut : 

multipass transfer fichier.txt servernew:
multipass transfer servernew:test_remote.txt .

Pour afficher le contenu d'un fichier distant ou inscrire le contenu de la console dans un ficher distant : 

multipass transfer servernew:test_remote.txt -
multipass transfer - servernew:fichier.txt

Dans ce contexte, - désigne la console utilisée comme source ou destination.

Enfin, on peut choisir de monter un dossier local pour le rendre accessible depuis la machine virtuelle. Par exemple celui des documents de l'utilisateur courant sous Windows :

multipass exec servernew sudo mkdir /mnt/documents
multipass mount C:\%HOMEPATH%\Documents servernew:/mnt/documents/

Puis de démonter ce dossier :

multipass umount servernew:/mnt/documents/

Une solution intéressante mais limitée

Soyons clairs : si Multipass est présenté comme un orchestrateur sur les pages consacrées au projet, on en est loin.  Il se veut simple, ce qui est à la fois son plus grand atout et sa principale limite. Ne serait-ce que son aspect multiplateforme est encore partiel, comme on le voit avec la liste des images proposéées sous Windows 10 par exemple.

Si l'on apprécie certaines possibilités comme le support des scripts Cloud-init, le transfert de fichier, l'exécution directe, etc. ce sera en général bien insuffisant pour une utilisation en production ou pour une réelle utilisation.

Les bidouilleurs se tourneront vers des outils comme Ansible pour compléter ce gestionnaire de VM une fois les instances initialisées. Ceux souhaitant concevoir et déployer via/sur différentes plateformes des infrastructures reproductibles iront plutôt regarder du côté d'outils de la trempe d'un Vagrant ou Terraform d'HashiCorp.

Multipass répond néanmoins à sa promesse : simple à utiliser, fonctionnel et évitant d'avoir à se rendre dans l'interface d'un gestionnaire de machines virtuelles dans la plupart des cas.  C'est encore le principal.

12
Avatar de l'auteur

Écrit par David Legrand

Tiens, en parlant de ça :

Trois consoles portables en quelques semaines

Et une nouvelle façon de concevoir le jeu se confirme

10:45 Hard 23
Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

CSIRT vs ENISA, égalité balle au centre

08:27 DroitSécu 3

#Flock a sa propre vision de l’inclusion

Retour à l’envoyeur

13:39 Flock 21

Sommaire de l'article

Introduction

Une installation très simple

Lancer une machine virtuelle Ubuntu

Personnalisation de la machine virtuelle

Transfert de fichier et points de montage

Une solution intéressante mais limitée

Trois consoles portables en quelques semaines

Hard 23
Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

DroitSécu 3

#LeBrief : fuite de tests ADN 23andMe, le milliard pour Android Messages, il y a 30 ans Hubble voyait clair

#Flock a sa propre vision de l’inclusion

Flock 21
Un Sébastien transformé en lapin par Flock pour imiter le Quoi de neuf Docteur des Looney Tunes

Quoi de neuf à la rédac’ #10 : nous contacter et résumé de la semaine

43
Autoportrait Sébastien

[Autoportrait] Sébastien Gavois : tribulations d’un pigiste devenu rédac’ chef

Next 18
Logo de StreetPress

Pourquoi le site du média StreetPress a été momentanément inaccessible

Droit 19
Amazon re:Invent

re:Invent 2023 : Amazon lance son assistant Q et plusieurs services IA, dont la génération d’images

IA 14
Un œil symbolisant l'Union européenne, et les dissensions et problèmes afférents

Le Conseil de l’UE tire un bilan du RGPD, les États membres réclament des « outils pratiques »

Droit 6

19 associations européennes de consommateurs portent plainte contre Meta

DroitSocials 16

#LeBrief : Ariane 6 l’été prochain, Nextcloud rachète Roundcube, désinformation via la pub

Chiffre et formules mathématiques sur un tableau

CVSS 4.0 : dur, dur, d’être un expert !

Sécu 16
Une tête de fusée siglée Starlink.

Starlink accessible à Gaza sous contrôle de l’administration israélienne

Web 35
Fibre optique

G-PON, XGS-PON et 50G-PON : jusqu’à 50 Gb/s en fibre optique

HardWeb 53
Photo d'un immeuble troué de part en part

Règlement sur la cyber-résilience : les instances européennes en passe de conclure un accord

DroitSécu 10
lexique IA parodie

AGI, GPAI, modèles de fondation… de quoi on parle ?

IA 11

#LeBrief : logiciels libres scientifiques, fermeture de compte Google, « fabriquer » des femmes pour l’inclusion

livre dématérialisé

Des chercheurs ont élaboré une technique d’extraction des données d’entrainement de ChatGPT

IAScience 3
Un chien avec des lunettes apprend sur une tablette

Devenir expert en sécurité informatique en 3 clics

Sécu 11
Logo ownCloud

ownCloud : faille béante dans les déploiements conteneurisés utilisant graphapi

Sécu 16
Le SoC Graviton4 d’Amazon AWS posé sur une table

Amazon re:invent : SoC Graviton4 (Arm), instance R8g et Trainium2 pour l’IA

Hard 12
Logo Comcybergend

Guéguerre des polices dans le cyber (OFAC et ComCyberMi)

Sécu 10

#LeBrief : faille 0-day dans Chrome, smartphones à Hong Kong, 25 ans de la Dreamcast

Mur d’OVHcloud à Roubaix, avec le logo OVHcloud

OVHcloud Summit 2023 : SecNumCloud, IA et Local Zones

HardWeb 2
algorithmes de la CAF

Transparence, discriminations : les questions soulevées par l’algorithme de la CAF

IASociété 62

Plainte contre l’alternative paiement ou publicité comportementale de Meta

DroitIA 39
Nuage (pour le cloud) avec de la foudre

Économie de la donnée et services de cloud : l’Arcep renforce ses troupes

DroitWeb 0
De vieux ciseaux posés sur une surface en bois

Plus de 60 % des demandes de suppression reçues par Google émanent de Russie

Société 7
Une vieille boussole posée sur un plan en bois

La Commission européenne et Google proposent deux bases de données de fact-checks

DroitWeb 3

#LeBrief : des fichiers Google Drive disparaissent, FreeBSD 14, caméras camouflées, OnePlus 12

Hubble mission maintenance

Il y a 30 ans, Hubble recevait sa première mission de maintenance

Science 12

Des menottes autour d'un rouleau de billets de banque

Les deux principaux responsables de l’agence de cybersécurité ukrainienne accusés de corruption

DroitÉcoSécu 7

Google Messages

Sur Android, Messages fête son milliard d’utilisateurs, de nouvelles fonctions en approche

WebSoft 12

Une femme en blouse blanche et portant des lunettes adaptées utilise un séquenceur à ADN

Tests ADN : 23andMe avoue que les infos d’un « nombre significatif » d’utilisateurs ont fuité

Sécu 7

Commentaires (12)


Pseudooo Abonné
Il y a 3 ans

Ce nom me fait penser inévitablement à ceci… Ça aurait pu être le sous titre de cette news 😉
https://youtu.be/eV_eGm1qgGs


ndjpoye
Il y a 3 ans

Moi, rien que le nom m’a suffi pour y penser <img data-src=" />


ryô Abonné
Il y a 3 ans

Je crois qu’on y a tous pensé <img data-src=" />


David_L Abonné
Il y a 3 ans

Et on peut passer à autre chose <img data-src=" />


Le_CuLtO Abonné
Il y a 3 ans

Vu que cet outil a l’air plus à destination des développeurs qu’autre chose (c’est clairement indiqué dans le README de leur dépôt github), j’ai du mal à voir son intérêt par rapport à un Vagrant qui lui a le mérite de pouvoir gérer autre chose que des VM Ubuntu
Mais ayant assez peu eu l’occasion d’utiliser Vagrant, je connais mal ses limites.


flan_ Abonné
Il y a 3 ans

Ça me fait penser à un mélange de Vagrant et de libvirt.


David_L Abonné
Il y a 3 ans

Oui d’ailleurs j’avais oublié de le mentionner, merci <img data-src=" />


eglyn Abonné
Il y a 3 ans

Je ne connaissais pas le projet, intéressant même si effectivement un peu limité pour l’instant, a suivre :)
&nbsp;


deathscythe0666 Abonné
Il y a 3 ans

Super, se gaufrer sur Unity, upstart et mir ne leur pas encore suffi ? Il faut encore qu’ils inventent une solution à eux, plus restrictive, alors que les solutions tierces plus flexibles, y compris libres, existent.


jpaul Abonné
Il y a 3 ans

C’est vrai que si techniquement je trouve ça sympa, je ne voit pas à qui ça peut servir.

Après peut être que j’ai du mal à le voir mais il y a peut être des métiers qui ont besoin de pouvoir spawn de la VM Ubuntu-only à longueur de temps.

En l’état, pour faire de la VM à demeure il y a nettement mieux et pour de l’environnement de dev non seulement il y a docker qui n’est pas bien plus complexe dans une utilisation « créer, exécuter, jeter » (et même sérieusement sous Windows depuis WSL2).

D’ailleurs, j’ai fait une « pause » Linux involontaire de quelques années et je me suis récemment refait une petite config : premier constat après avoir installé une Ubuntu récente : c’est le bordel, qu’est devenu le « bureau Linux » pendant mon absence ?

Mais en fait non, c’est juste Ubuntu, les autres distros sont over the top, les « petits nouveaux » que sont Manjaro ou elementaryOS, même si deux philosophies diamétralement opposées, bossent vraiment dur pour pondre des super distributions de bureau user-friendly, et sont totalement cachées derrière Ubuntu qui est toujours considérée comme la distrib desktop de référence.

Du coup ça me donne encore plus l’impression que canonical s’éparpille dans tous les sens, et il n’y a qu’à voir la HomePage d’ubuntu pour voir que la distribution en elle même n’est plus du tout leur priorité.

Tant mieux pour eux si leur coup de poker avec Microsoft a bien fonctionné, le coup de Windows+Ubuntu c’était grandiose mais faut vraiment qu’ils arrêtent d’avoir 10 000 projets en parallèle, ça en devient illisible et chez les voisins on se mange des dégâts collatéraux tels que Snapcraft <img data-src=" />


David_L Abonné
Il y a 3 ans

J’ai du mal à comprendre ce qui ne parait pas clair : Vagrant c’est bien mais bon, si on veut simplement lancer une VM tester des trucs et ensuite virer, ce n’est pas franchement le plus adapté. Docker c’est un peu la même chose, il faut déjà l’installer sur la machine mais on se retrouve au final avec des conteneurs et leurs limites.&nbsp;

MP n’est pas l’outil ultime qui doit répondre à tous les cas (spoiler, il n’y en a pas), mais ça répond au moins à un besoin de simplicité/rapidité en étant une simple surcouche CLI assez basique aux hyperviseurs.


jpaul Abonné
Il y a 3 ans

C’est ce que je dit dans mes premiers paragraphes : oui l’approche technique est intéressante. C’est “innovant” dans la simplicité d’usage (surtout en CLI) mais j’ai du mal à voir les cas d’usages pratique d’une telle solution.

L’outil a l’air chouette mais je suis sincèrement curieux de savoir à qui ou quoi ça peut bien pouvoir servir de virtualiser de l’ubuntu (et uniquement ça) à la volée ou en scripting. Le seul intérêt que je voit c’est d’avoir rapidement un environnement tout frais tout neuf mais là je ne voit pas trop l’avantage à ne pas partir sur un conteneur. A la limite, ce qui pourrait être chouette et qui débloquerai des cas d’usage ce serait de pouvoir virtualiser des archis différentes : là même si ça reste de la niche, je vois totalement un intérêt à pouvoir spawn un environnement ARM (par exemple) totalement fonctionnel.

Je garde néanmoins l’outil dans un coin de ma tête (et dans mes favoris) au cas où ça ferait tilt dans ma tête mais si tu as des exemples d’utilisation où ça remplace efficacement soit une VM soit un Docker, je suis curieux.