Aller au contenu

Fiche Multipass — Interface en ligne de commande (CLI)

Vue d'ensemble

Multipass est un gestionnaire léger de machines virtuelles (VM) Ubuntu, piloté principalement par ligne de commande. La CLI permet de créer, démarrer, connecter, configurer et supprimer des instances Ubuntu en quelques secondes.

Syntaxe de base :

multipass [options] <command> [arguments]

Options globales :

Option Description
-h, --help Affiche l'aide
-v, --verbose Augmente le niveau de journalisation (répétable jusqu'à 3 fois : -v, -vv, -vvv)

Commandes de création et lancement

multipass launch

Crée et démarre une nouvelle instance Ubuntu. Si aucun nom n'est fourni, un nom aléatoire est généré .

Options principales :

Option Description
--name, -n <nom> Nom de l'instance
--cpus, -c <nombre> Nombre de cœurs CPU
--memory, -m <taille> RAM allouée (ex. 2G, 4G)
--disk, -d <taille> Espace disque (ex. 10G, 20G)
--cloud-init <fichier> Fichier de configuration cloud-init
--network <spec> Ajouter une interface réseau
--bridged Ajouter une interface réseau en mode bridge

Exemples :

# Lancement basique avec un nom
multipass launch --name myvm

# Version Ubuntu spécifique
multipass launch 22.04 --name myvm

# Avec ressources personnalisées
multipass launch --name myvm --cpus 2 --memory 4G --disk 20G

# Instance "primary" (montage automatique du répertoire home)
multipass launch --name primary

L'instance nommée primary devient l'instance par défaut pour plusieurs commandes et monte automatiquement $HOME .


multipass find

Affiche les images Ubuntu disponibles au téléchargement .

multipass find

Commandes de gestion des instances

multipass list (alias : ls)

Liste toutes les instances avec leur état et leur adresse IP .

multipass list
multipass list --format csv   # Sortie CSV pour scripting
multipass list --snapshots    # Liste les snapshots

États possibles : Running, Stopped, Suspended, Deleted (corbeille, récupérable tant que purge n'a pas été exécuté) .


multipass info

Affiche les détails d'une ou plusieurs instances (IP, ressources, état, etc.) .

multipass info <instance>
multipass info --all          # Toutes les instances

multipass start

Démarre une instance arrêtée .

multipass start <instance>
multipass start --all

multipass stop

Arrête une instance proprement (données préservées) .

multipass stop <instance>
multipass stop --all

multipass restart

Redémarre une instance .

multipass restart <instance>

multipass suspend

Suspend une instance (état mémoire sauvegardé sur disque, reprise plus rapide qu'un boot complet) .

multipass suspend <instance>

Commandes de suppression et récupération

multipass delete

Déplace une instance vers la corbeille (suppression réversible) .

multipass delete <instance>
multipass delete --all

multipass recover

Restaure une instance depuis la corbeille .

multipass recover <instance>
multipass recover --all

multipass purge

Supprime définitivement toutes les instances présentes dans la corbeille .

multipass purge

Suppression complète (deux étapes) :

multipass delete <instance> && multipass purge


Commandes d'accès et d'exécution

multipass shell

Ouvre un shell interactif dans une instance en cours d'exécution .

multipass shell <instance>

multipass exec

Exécute une commande non-interactive dans une instance .

multipass exec <instance> -- <commande>
multipass exec myvm -- ls -la /home
multipass exec myvm -- sudo apt update

Commandes de transfert et montage

multipass transfer

Transfère des fichiers entre l'hôte et une instance .

multipass transfer <source> <instance>:<destination>
multipass transfer <instance>:<source> <destination>

multipass mount

Monte un répertoire local dans une instance .

multipass mount <source> <instance>:<cible>

Options de mappage UID/GID : - --uid-map <hôte>:<instance> - --gid-map <hôte>:<instance>


multipass umount

Démonte un répertoire monté dans une instance .

multipass umount <instance>:<cible>

Snapshots (depuis v1.13)

Les snapshots ne sont possibles que sur une instance arrêtée .

# Arrêter d'abord l'instance
multipass stop myvm

# Créer un snapshot (nom automatique ou explicite)
multipass snapshot myvm
multipass snapshot myvm --name pre-upgrade --comment "avant mise à jour kernel"

# Lister les snapshots
multipass list --snapshots

# Restaurer un snapshot (format <instance>.<snapshot>)
multipass restore myvm.pre-upgrade

Commandes de configuration et d'authentification

multipass authenticate

Authentifie un client auprès du service Multipass .

multipass authenticate

multipass get / multipass set

Lit ou modifie une configuration Multipass .

multipass get <clé>
multipass set <clé>=<valeur>
multipass get --raw <clé>    # Sortie brute

multipass networks

Liste les interfaces réseau disponibles .

multipass networks

multipass help

Affiche l'aide générale ou détaillée d'une commande .

multipass help
multipass help <commande>
multipass help --all

Automatisation et gestion de groupes

Multipass ne dispose pas de notion native de groupes ou de tags. Utilisez des conventions de nommage (ex. dev-, test-) combinées à des scripts shell pour gérer plusieurs instances .

Exemple : mettre à jour toutes les instances en cours d'exécution

for vm in $(multipass list --format csv | tail -n +2 | awk -F',' '$2=="Running"{print $1}'); do
  multipass exec "$vm" -- sudo apt update -qq
  multipass exec "$vm" -- sudo apt upgrade -y -qq
done

Exemple : démarrer toutes les instances préfixées par dev-

multipass list --format csv | tail -n +2 | awk -F',' '$1~/^dev-/{print $1}' | xargs -I{} multipass start {}


Récapitulatif des commandes

Commande Rôle
launch Créer et démarrer une instance
find Lister les images disponibles
list (ls) Lister les instances
info Détails d'une instance
start Démarrer
stop Arrêter
restart Redémarrer
suspend Suspendre
delete Mettre à la corbeille
recover Restaurer depuis la corbeille
purge Supprimer définitivement
shell Shell interactif
exec Exécuter une commande
transfer Transférer des fichiers
mount / umount Monter / démonter un répertoire
snapshot Créer un snapshot
restore Restaurer un snapshot
authenticate Authentifier un client
get / set Configuration
networks Interfaces réseau
help Aide

cloud-init

utilisation de multipass avec cloud-init

le cloud init est une méthodologie normalisé pour pré-configurer un serveur

générer une clef ssh

ssh-keygen -C vmuser -f multipass-ssh-key

se connecter : multipass info testvm -> donne l'IP

ssh vmuser@192.168.205.4 -i multipass-ssh-key -o StrictHostKeyChecking=no

le cloud init

multipass launch -n testvm --cloud-init cloud-init.yaml

le fichier cloud-init.yml

users:
  - name: oscar
    ssh-authorized-keys:
      - ssh-rsa > (...)bRzT4YRrp+9E/3G0= oscar@LAPTOP-I5NEAUBD
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: sudo
    shell: /bin/bash

package_update: true
packages:
  - python3
  - git

#runcmd:
#  - echo "$HOSTNAME" >> inventory/hosts

final_message: "L'instance est maintenant up depuis $UPTIME secondes"