====== 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
[[https://www.freshports.org/sysutils/vm-bhyve/|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
[[https://github.com/freebsd/vm-bhyve|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 red((estarán en
la misma interfaz que donde la has puesto, em0 en este caso, si
quieres tenerlas aisladas, usa otro switch)), 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:
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!
{{:smile.png?200|Estrellita pascuera}}