Multipass: Máquinas virtuales desde la terminal con un simple comando
Crea máquinas virtuales de manera rápida y sencilla para tus entornos de desarrollo, test... Desde la línea de comandos y sobre Linux, Mac o Windows

Multipass es un servicio que lanzó Canonical allá por 2019. Nos da la capacidad de ejecutar máquinas virtuales (basadas en Ubuntu) desde la terminal de manera muy sencilla y rápida. Está disponible tanto para Linux como para Mac o Windows y soporta cloud-init.
Mediante Multipass podemos tener en cuestión de segundos una imagen de Ubuntu corriendo en una máquina virtual con una configuración mínima y sin necesidad de ningún proceso de instalación previo.
En mi caso, que suelo desarrollar desde un Mac pero tengo mis servicios corriendo en servidores Linux, mediante Multipass levanto máquinas virtuales para probar ciertas funcionalidades o configuraciones y las destruyo una vez he terminado, de una manera mucho más sencilla y rápida que a través de otras soluciones más clásicas, como VirtualBox.
Primeros pasos
Una vez tenemos Multipass instalado (podemos seguir los pasos desde su web) basta con tirar el comando multipass
y ver que tenemos un conjunto de opciones bastante amplio para utilizar:
$ multipass -h
Usage: multipass [options] <command>
Create, control and connect to Ubuntu instances.
This is a command line utility for multipass, a
service that manages Ubuntu instances.
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-v, --verbose Increase logging verbosity. Repeat the 'v' in the short option
for more detail. Maximum verbosity is obtained with 4 (or more)
v's, i.e. -vvvv.
Available commands:
alias Create an alias
aliases List available aliases
delete Delete instances
exec Run a command on an instance
find Display available images to create instances from
get Get a configuration setting
help Display help about a command
info Display information about instances
launch Create and start an Ubuntu instance
list List all available instances
mount Mount a local directory in the instance
networks List available network interfaces
purge Purge all deleted instances permanently
recover Recover deleted instances
restart Restart instances
set Set a configuration setting
shell Open a shell on a running instance
start Start instances
stop Stop running instances
suspend Suspend running instances
transfer Transfer files between the host and instances
umount Unmount a directory from an instance
unalias Remove an alias
version Show version details
Para arrancar nuestra primera máquina virtual, ejecutaremos:
multipass launch --name test-vm
Y se nos arrancará un Ubuntu con la última versión de LTS. Si queremos ver las máquinas que tenemos y su estado, con ejecutar el comando multipass list
tendremos algo como esto:
$ multipass list
Name State IPv4 Image
test-vm Running 192.168.64.7 Ubuntu 20.04 LTS
Por defecto, al instalar una máquina virtual ésta será la última LTS de Ubuntu, pero tenemos otras opciones disponibles. Podemos verlas con el comando multipass find
:
$ multipass find
Image Aliases Version Description
18.04 bionic 20220424 Ubuntu 18.04 LTS
20.04 focal,lts 20220419 Ubuntu 20.04 LTS
21.10 impish 20220309 Ubuntu 21.10
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker latest A Docker environment with Portainer and related tools
minikube latest minikube is local Kubernetes
Si queremos lanzar una en concreto, será suficiente con ejecutar el mismo comando launch
poniendo el nombre de la imagen al final. Si no especificamos nada, por defecto cogerá la última LTS. Además, podemos pasarle una configuración de inicio de cloud-init
para automatizar algunas opciones. Algunos ejemplos de cómo usarlo los tenemos aquí.
$ multipass launch -n minikube-test --cloud-init cloud-config.yml minikube
Si queremos ejecutar un comando sobre dicha máquina, bastará con ejecutar multipass exec <nombre-de-la-mv> -- <comando>
, por ejemplo:
$ multipass exec test-vm -- lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
También podemos hacer uso de multipass shell <nombre-de-la-mv>
para conectarnos a la terminal y así ejecutar los comandos desde ahí directamente.
Por último, los comandos para gestionar el estado de las máquinas que creemos serían los siguientes:
multipass start <nombre-de-la-vm>
: Arranca una máquina existente.multipass stop <nombre-de-la-vm>
: Detiene una máquina en ejecución.multipass delete <nombre-de-la-vm>
: Elimina una máquina existente.multipass purge
: Borra todas las máquinas eliminadas del host.
Si en cualquier momento necesitamos ayuda con algún comando o con multipass
, podemos ejecutar multipass help
para tener una ayuda global y multipass <comando> help
para tener una ayuda específica de ese comando.
Y con esto, espero haber dado una visión sencilla de cómo usar Multipass. El para qué usarlo lo dejo ya a vuestra elección 😄. Yo lo estoy usando para hacer pequeñas pruebas y evitar que se me contaminen unas con otras, así como para pruebas de red entre distintas máquinas.
Si te ha gustado la entrada, o te ha sido útil y quieres ayudarme a pagar los gastos que conlleva el servidor y mantener así el blog libre completamente de anuncios, puedes hacer una donación en Bitcoin en la siguiente dirección:
