Multipass: máquinas virtuales Ubuntu listas en segundos

Multipass es una herramienta desarrollada por Canonical que levanta máquinas virtuales Ubuntu completas con un único comando. No es un contenedor: es una VM real, con su propio kernel, su propia red y su propio sistema de archivos. La diferencia respecto a configurar VirtualBox o QEMU manualmente es que Multipass se encarga de descargar la imagen, configurar la red, asignar recursos y arrancar el sistema, todo en menos de un minuto. Esa filosofía de “una VM tan fácil como un contenedor” es exactamente lo que la hace útil.

Por debajo, en Linux, Multipass usa QEMU como hipervisor (con aceleración KVM cuando está disponible). En macOS usa el hipervisor nativo de Apple, y en Windows usa Hyper-V. Lo que permanece constante es la interfaz: el mismo comando funciona igual en las tres plataformas. El demonio multipassd corre en segundo plano y gestiona el ciclo de vida de cada instancia.

¿Cuándo tiene sentido usarlo? Cuando necesitas un entorno Ubuntu limpio para probar una configuración de Ansible, experimentar con paquetes que no quieres instalar en tu sistema principal, reproducir un problema reportado por alguien que usa Ubuntu, o simplemente aprender administración de sistemas sin arriesgar nada. Es especialmente valioso si tu máquina host corre Debian o macOS y necesitas un Ubuntu real, no solo un contenedor.

Lo que se rompe si lo usas mal es sencillo de entender: las VMs consumen recursos reales. Si lanzas cinco instancias y las olvidas corriendo, vas a notar el impacto en memoria y CPU. Y si montas un directorio del host con multipass mount sin entender qué permisos maneja cada lado, puedes encontrarte con que los archivos creados dentro de la VM tienen dueños que no reconoces fuera.

Instalación y uso completo

# Instalar Multipass en Debian Bookworm desde el snap oficial
# Requiere snapd instalado previamente
sudo apt update && sudo apt install -y snapd
sudo snap install multipass

# Verificar que el demonio está corriendo
multipass version

# Lanzar una VM Ubuntu 22.04 LTS llamada "dev"
# La primera vez descarga la imagen (~600 MB), las siguientes es inmediato
multipass launch 22.04 --name dev --cpus 2 --memory 2G --disk 20G

# Ver el estado de todas las instancias
multipass list

# Ver detalles de la instancia: IP, recursos, imagen, estado
multipass info dev

# Entrar a la VM (abre una shell directamente como usuario "ubuntu")
multipass shell dev

# --- Desde dentro de la VM puedes salir con exit o Ctrl+D ---

# Ejecutar un comando en la VM sin entrar interactivamente
multipass exec dev -- lsb_release -a

# Compartir un directorio del host con la VM
# El directorio /home/usuario/proyecto aparecerá en /mnt/proyecto dentro de la VM
multipass mount $HOME/proyecto dev:/mnt/proyecto

# Verificar que el montaje existe
multipass exec dev -- ls /mnt/proyecto

# Desmontar cuando ya no lo necesites
multipass umount dev:/mnt/proyecto

# Detener la VM (libera CPU y RAM, conserva el disco)
multipass stop dev

# Volver a arrancarla
multipass start dev

# Usar cloud-init para preconfigurar la VM al crearla
# Esto instala nginx y crea un usuario adicional automáticamente
cat > /tmp/cloud-init.yaml << 'EOF'
#cloud-config
packages:
  - nginx
  - curl
users:
  - name: admin
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
runcmd:
  - systemctl enable --now nginx
EOF

multipass launch 22.04 --name webtest --cloud-init /tmp/cloud-init.yaml

# Verificar que nginx arrancó dentro de la nueva VM
multipass exec webtest -- systemctl status nginx

# Eliminar una instancia (detiene y marca para borrado)
multipass delete dev

# Liberar el espacio en disco realmente
multipass purge

Qué está pasando en cada paso

multipass launch 22.04 busca la imagen en el repositorio de imágenes de Canonical, la descarga si no la tiene en caché local (normalmente en /var/snap/multipass/common/data/multipassd/vault/images/), y crea un disco virtual derivado de esa imagen base. El flag --name dev es solo un alias conveniente; sin él Multipass genera un nombre aleatorio. Los flags --cpus, --memory y --disk tienen valores por defecto razonables (1 CPU, 1 GB RAM, 5 GB disco), pero para desarrollo real esos valores se quedan cortos.

multipass info dev es el comando que más vas a usar para orientarte: te da la IP de la VM, cuántos recursos está consumiendo realmente, en qué estado está y qué imagen usa. Esa IP es accesible directamente desde el host, lo que significa que puedes abrir el navegador y apuntar a ella si corres un servidor web dentro.

multipass mount es más potente de lo que parece. El directorio del host queda visible dentro de la VM en tiempo real: si editas un archivo con tu editor favorito en el host, los cambios aparecen inmediatamente dentro. Esto permite el flujo habitual de desarrollo: editas en el host con tus herramientas, ejecutas y pruebas dentro de la VM con el entorno Ubuntu limpio.

La parte de cloud-init es donde Multipass da el salto de “VM rápida” a “entorno reproducible”. El archivo YAML que le pasas con --cloud-init sigue el estándar cloud-init que usan AWS, GCP y Azure para inicializar instancias. Lo que escribas ahí se ejecuta una sola vez al primer arranque. En el ejemplo, nginx queda instalado y activo antes de que el comando multipass launch te devuelva el prompt. Si necesitas configurar el mismo entorno varias veces —para un taller, para un CI casero, para compartir una receta con un colega— guardas ese YAML en un repositorio y listo.

multipass delete seguido de multipass purge es el ciclo de limpieza correcto. delete sin purge deja los discos en disco en estado “eliminado” pero recuperables; purge los borra definitivamente. Si haces multipass delete dev y luego cambias de opinión, multipass recover dev lo restaura.

Un detalle que sorprende a mucha gente: la VM recibe una IP en el rango 192.168.64.0/24 (en Linux con QEMU) que es accesible directamente desde el host pero no desde otras máquinas en tu red local. Es una red privada gestionada por Multipass. Si necesitas exponer un servicio al exterior, tendrás que configurar port forwarding o trabajar con las opciones de red de QEMU, que ya es otro nivel.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio