Tabla de Contenidos
Crear máquinas virtuales en FreeBSD
Yo cada día flipo mas con los nombres psicodélicos que le ponen a estas cosas “Xeon”, “RAID”, “bhyve”. Una locura hermano.
FreeBSD tiene su propio virtualizador que es bastante bueno llamado bhyve. En mi opinión es una cosa que funciona.
Para simplificarnos la vida (porque sinceramente dudo que haya Cristo que se haya aprendido a usar la herramienta bhyve) usaremos un programa llamado vm-bhyve para gestionar nuestras máquinas virtuales. Está escrito en shell y no tiene dependencias.
Genuinamente si consiguies usar vm-bhyve correctamente es que no vas a necesitar Proxmox.
Dicho esto una vez instalado lo único que hay que hacer es seguir las instrucciones que podemos encontrar en el github del proyecto
1. pkg install vm-bhyve 2. zfs create pool/vm 3. sysrc vm_enable="YES" 4. sysrc vm_dir="zfs:pool/vm" 5. vm init 6. cp /usr/local/share/examples/vm-bhyve/* /mountpoint/for/pool/vm/.templates/ 7. vm switch create public 8. vm switch add public em0 9. vm iso https://download.freebsd.org/ftp/releases/ISO-IMAGES/14.2/FreeBSD-14.2-RELEASE-amd64-bootonly.iso 10. vm create myguest 11. vm install [-f] myguest FreeBSD-14.2-RELEASE-amd64-bootonly.iso 12. vm console myguest
Básicamente lo instalas, creas un FS de zfs para tus vms, modificas la
configuración del sistema para iniciar e indicarle donde están las
vms. Lo inicializas con vm init
, te copias ejemplos de VMs que ya
hay y creas un switch virtual para añadir las VMs a tu red1), descargar una iso e
instalarla en un sistema operativo freebsd.
Luego puedes acceder a la consola de texto de la VM pero lo guapo es usar VNC.
Soporte de VNC gráficos
Necesitaras instalar paquetes de firmware de UEFI para que el VNC furule. Desconozco el motivo del por cual se necesita usar UEFI para esto pero es la que hay. Puedes instalarlo con:
pkg install -y edk2-bhyve grub-bhyve2 bhyve-firmware
Total que neceistas modificar la configuración de la vm. Si creamos la VM myguest en el pool pool/vm pues tendriamos que ir a /vm/myguest/myguest.conf y añadir la siguientes lineas:
- myguest.conf
graphics="yes" graphics_listen="0.0.0.0" graphics_port="5900"
Con esto tendriamos el servidor vnc de la VM en el puerto 5900 de cualquier interfaz de red donde podremos controlarla o hacer lo que queramos.
Comandos básicos de vm
Aquí se ponen los comandos que deberias saber para operar vm. La verdad es que tampoco son demasiados ni son tan complicados. Recuerda que siempre puedes ver la referencia con –help
vm start $VM # iniciar la vm $VM vm stop $VM # parar la vm $VM (ACPI shutdown) vm poweroff $VM # parar la maquina virtual $VM lo quiera o no vm restart $VM # Reiniciar la vm $VM (ACPI reboot) vm reset $VM # Reiniciar la vm $VM quiera o no vm stopall # Adivina :3 vm startall # Adivina :3 vm iso $URL # descargar iso para posterior instalacion vm install $ISO $VM # Cargar $ISO en $VM
Creación de una máquina virtual
Por ejemplo, podrias crear una máquina de OpenBSD con el siguiente comando:
vm create -t openbsd -s 25G openbsd1
Esto crearía una máquina virtual llamada openbsd1
, por lo cual
podriamos iniciar la instalación con el comando:
vm install install76.iso openbsd1
Y arrancará la máquina.
Listar máquinas
Podemos listar las máquinas virtuales que tengamos, encendidas o no, con el comando vm list. Aquí un ejemplo en un sistema que ya tiene unas cuantas:
~ [icarus] % vm list NAME DATASTORE LOADER CPU MEMORY VNC AUTO STATE debian2 default uefi 2 4096M 0.0.0.0:5910 Yes [3] Running (31795) debian3 default uefi 1 1024M 0.0.0.0:5911 No Locked (icarus) freebsd1 default uefi 1 1024M - No Stopped freebsd2 default uefi 1 1024M 192.168.1.230:5918 No Locked (icarus) netbsd1 default uefi 1 512M - No Stopped openbsd default uefi 1 1024m 0.0.0.0:5902 Yes [1] Running (69932) openbsd2 default uefi 4 8192m 192.168.1.230:5916 No Locked (icarus) ubuntu1 default uefi 8 8192M - No Stopped ubuntu2 default uefi 4 8192M 0.0.0.0:5900 Yes [4] Running (46207)
Podemos ver los puertos VNC, en caso de que los tengamos activos.
¡Felicidades por conseguir montar máquinas virtuales en FreeBSD!