Hace poco me entere del proyecto de Ubuntu llamado multipass.
Se trata de un sistema de virtualización de una consola de Ubuntu en la que puedes descargarte diferentes estancias ya configuradas.
En Windows, que es donde lo he probado, necesita tener Hyper-V o VirtualBox para poder funcionar.
La idea es buena, tener un sistemas tipo Docker o Kubernetes, que con un comando se pueda descargar una distro determinada para poder hacer un despliegue rápido.
Aun esta un poco en verde, ya que hay pocas distribuciones disponibles:
Como empezar:
Directamente desde PowerShell debemos administrar las imágenes de las maquinas virtuales.
Una vez descargada la imagen con :
multipass launch jammy
“Jammy” es el alias de la Ubuntu 22.04 LTS se descargara la imagen y nos abrirá una instancia.
Si queremos que tenga un nombre especifico para la instancia usaremos el argumento –name
--name primary
Si usamos el nombre primary será la maquina por defecto que arranque. ( siempre siendo la primera maquina que se inserte).
También podremos cambiar aspectos de la maquina desde la creación de la misma. os pongo un par de ejemplos pero tenéis la documentación aquí : https://multipass.run/docs/create-an-instance
multipass launch 20.04 --name ubuntu20 --cpus 4 --disk 20G --mem 8G --network Wi-Fi
En este caso hemos creado una maquina de Ubuntu 20.02 llamada ubuntu20 con 4 cpu’s asignadas 20Gb de disco duro y 8Gb de ram y le hemo dicho que se conecte a la red wifi .
Para saber el nombre de nuestra red ejecutamos antes:
multipass networks
Para comprobar que este funcionando la red bien ejecutamos :
multipass exec ubuntu20 -- ip -br address show scope global
enp0s3 seria la red NAT que se crea para poder usar el Shell a traves de PowerShell y es obligatorio ( sino la maquina no funciona bien ) y el enp0s8 es el puente con la red wifi y me ha dado ip por dhcp . si la queremos con ip fija podemos entrar ya por el Shell y cambiarlo de forma manual.
podemos entrar a la maquina desde PowerShell o desde el icono de multipass
multipass shell ubuntu20
y con esto ya tendríamos creado la nueva maquina virtual y conectado el modo puente a la wifi directamente.
Ahora, el problema reside si se nos ha olvidado crear la red puente de la wifi .
Si tenemos virtualizado con Hyper-V no tendremos problemas por que es tan sencillo como ir al gestor de Hyper-v y añadir una red nueva, reconfiguramos la Ubuntu ( la parte de red nueva) y estaría listo.
Pero en su homólogo VirtualBox esta tarea puede ser un poco mas complicado. principalmente por que nuestras maquinas no salen en el menú de VirtualBox hay que acceder de otra forma.
Lo primero de todo es bajarse unas herramientas de PowerShell
https://download.sysinternals.com/files/PSTools.zip
Lo descomprimimos y lanzamos PowerShell desde esa carpeta y con permisos de administrador.
A partir de aquí tenemos dos formas de hacerlo. parando el servicio de multipass o sin pararlo.
Si paramos el servicio hay que parar todas las maquinas, de la otra forma solo hay que parar la maquina que queremos cambiar.
Parando el servicio ( lo mas sencillo)
Primero paramos las maquinas y el servicio:
multipass stop --all net stop multipass
ahora lanzamos esta orden para abrir una instancia de virtualbox en la que tengamos las maquinas paradas y donde podremos editarlas sin problemas.
& $env:USERPROFILE\Downloads\PSTools\PsExec.exe -s -i $env:VBOX_MSI_INSTALL_PATH\VirtualBox.exe
Aquí ya podemos editar y añadir o poner componentes que necesitemos, en nuestro caso la red puente:
Una vez terminado salvamos cerramos el VirtualBox y reiniciamos el servicio
net start multipass
ya solo necesitaríamos arrancar la maquina y actualizar Ubuntu con los cambios que hemos realizado.
Nota importante, en este paso es necesario parar las maquina y el servicio mutipass, por que si la maquina no esta apagada no se puede editar la red y parar el servicio por que multipass esta usando VirtualBox todo el rato y no nos permite hacer cambio de red.
Sin parar el servicio.
esta opción es un poco mas rebuscada.
Primero necesitamos el nombre del adaptador : Realtek RTL8821CE 802.11ac PCIe Adapter
Despues con la maquina parada ejecutamos :
.\PsExec64.exe -s "c:\program files\oracle\virtualbox\vboxmanage" modifyvm "lts" --nic2 bridged --bridgeadapter2 "Realtek RTL8821CE 802.11ac PCIe Adapter"
lts es el nombre de la estancia que quiero modificar y vamos a trabajar con la nic2 ya que la 1 es la que tiene el NAT y no debemos de modificar.
Arrancamos la maquina y comprobamos
multipass start lts multipass exec lts -- ip -br address show scope global
ya tenemos el enp0s8 que es el puente que hemos creado y solo falta configurar Ubuntu como en el resto de casos
Después de algunas pruebas que he realizado os recomiendo que uséis el Hyper-V, es mas sencillo de manejar todo y hacer cambios.
Referencias:
Networking tricks with Multipass in Virtualbox on Windows (Bridged interfaces and Port Forwards)