Cómo correr instancias virtualizadas de Ubuntu Server con Multipass
Canonical tiene una solución que te permite correr instancias frescas de Ubuntu Server desde tu línea de comando preferida, no importa si estás en Windows, Linux o Mac.
Hace unos días, creo, navegando Twitter, encontré una referencia hacia algo llamado Canonical Multipass, nunca había escuchado sobre esa solución así que me dispuse a ver que es lo que era.
Básicamente, Multipass se "vende" como una solución para orquestar múltiples instancias virtualizadas de Ubuntu en tu máquina, como si fueran instancias en un Cloud provider.
Está solución se administra desde una línea de comando y si me preguntan, es muy parecido a como se maneja Docker, pero en vez de contenedores, creamos máquinas virtuales. A mi particularmente me viene al pelo, porque siempre estaba instalando o clonando VM's para hacer pruebas y generar material para el blog.
Multipass está disponible para Windows, Mac OS y Linux. La pueden descargar desde acá:
Instalación
La instalación de Multipass en Windows y Mac OS, consiste en un asistente, en el caso de Windows, este debe ser Windows 10 Pro/Enterprise v 1803 en adelante. En el sistema operativo de las ventanas, usa Hyper-V (Lo más recomendable) pero también se puede usar VirtualBox, para el caso de Mac OS, debe ser Sierra (10.12) en adelante y usa HyperKit para virtualizar.
Para Linux, hay un paquete de Snap que se instala y es capaz de hablar con, VirtualBox y KVM. Para instalarlo en Linux, solo debes correr lo siguiente:
$ sudo snap install multipass --classic
Comandos básicos
Multipass funciona en cualquier línea de comando, en Windows, como es el caso que estoy probando, anda con PowerShell y CMD. En Linux y Mac OS, por supuesto, con cualquier terminal.
Como les comenté más arriba, los comandos se corren, de una manera similar a como se corre Docker, con la obvia diferencia que acá, no ejecutamos contenedores, sino que máquinas virtuales y los comandos varían, pero el concepto es básicamente el mismo.
Para comenzar a jugar y entender lo que podemos hacer y cómo, podemos correr lo siguiente:
$ multipass
La terminal, debería responder con algo como esto:
Usage: Program Files\Multipass\bin\multipass.exe [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 Display this help
-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:
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
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
version Show version details
Estos son los comandos que podemos ejecutar, junto con multipass. Por ejemplo, para crear una nueva VM, ejecutamos lo siguiente:
multipass launch --name new-vm
La primera vez, va a descargar la imagen de Ubuntu, con lo cual, esperen a que eso se complete, lo mismo está condicionado por la velocidad de la conexión a Internet que tengamos. Una vez que termine la descarga, deberíamos ver algo como esto:
Creating new-vm \
Y cuando termine, esto:
Launched: new-vm
Para comprobar si efectivamente nuestra VM está corriendo, tan solo debemos ejecutar lo siguiente:
multipass ls
La terminal, debería devolver con algo como esto:
Name State IPv4 Image
new-vm Running 192.168.44.121 Ubuntu 18.04 LTS
Si necesitamos crear otra instancia, volvemos a ejecutar:
multipass launch --name new-vm2
Una vez terminado, ejecutamos:
multipass ls
Y el resultado debería ser:
Name State IPv4 Image
new-vm Running 192.168.44.121 Ubuntu 18.04 LTS
new-vm2 Running 192.168.44.126 Ubuntu 18.04 LTS
Otros comandos importantes son "delete" que nos permitirá borrar una VM y "purge" que es un comando para purgar todas las instancias borradas.
Ambos comandos se corren de la siguiente manera:
multipass delete new-vm
multipass purge
El comando "shell", nos permite entrar a la VM, el mismo se corre de esta manera:
multipass shell new-vm
Lo que veremos será algo como esto:
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-109-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Jul 14 20:54:17 -03 2020
System load: 0.0 Processes: 91
Usage of /: 21.1% of 4.67GB Users logged in: 0
Memory usage: 66% IP address for eth0: 192.168.44.121
Swap usage: 0%
0 packages can be updated.
0 updates are security updates.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Algunos otros comandos, te van a permitir, montar un directorio local en la VM, copiar archivos entre la VM y el host, suspender la VM, recuperar una VM borrada y ejecutar comandos dentro de ella sin necesidad de entrar al shell.
Para ir cerrando
Multipass esta pensado para desarrolladores o para entusiastas que necesitan probar cosas nuevas, para mi caso particular, que necesito tener instancias para probar cosas para el blog, es una solución ideal, es gratuita, las VMs pesan muy poco y lo mejor de todo, es que se maneja todo de manera bastante simplificada desde una línea de comandos.
Contame, ¿lo has probado? ¿Tuviste algún problema? no duden en dejarme en los comentarios su comentarios acerca de Multipass.