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"
Backlinks: