Convertí mi portátil en un servidor Proxmox para el laboratorio de ASIR
Del escritorio con CachyOS a Proxmox VE en un portátil con una sola tarjeta de red: tapa, discos, un OPNsense de laboratorio y las VMs que uso para el ciclo de ASIR.
Tenía un portátil con CachyOS que había pasado por todo: el aspecto de Omarchy, una IA local con la GTX 1060 que acabé quitando… y ahí se quedaba, encendido de vez en cuando. Este curso empecé el ciclo de ASIR y me hacía falta un sitio donde crear y romper máquinas virtuales sin miedo. Así que el 7 de octubre lo borré entero y le puse Proxmox VE. Te cuento cómo lo he dejado y lo que he aprendido en la primera semana.
Spoiler: la instalación no dio ningún problema y no echo de menos CachyOS para nada. Lo que sí tiene su miga es que un portátil no es un servidor, y hay que tratarlo como tal.
1. Por qué Proxmox y no virt-manager en el escritorio
En CachyOS ya tenía KVM y virt-manager funcionando. El problema es que las VMs dependían de que el portátil estuviera con la sesión abierta y de que yo me sentara delante. Con Proxmox el portátil se queda cerrado en una balda y todo lo manejo desde la web (puerto 8006) en el PC de sobremesa:
- Creo una VM en dos minutos, le hago una instantánea antes de una práctica y, si la rompo, vuelvo atrás.
- Las que tienen que estar siempre encendidas arrancan solas con el equipo (
onboot). - Puedo instalar lo que quiera: un cortafuegos, un Linux de servidor, uno con escritorio, Home Assistant… Esa libertad es justo lo que necesito para el ciclo.
Si no conoces Proxmox, tienes la instalación paso a paso en la primera parte del manual. Aquí voy a lo particular de hacerlo en un portátil.
2. El hardware
| Pieza | Lo que tiene |
|---|---|
| CPU | 12 hilos |
| RAM | 16 GB |
| Disco 1 | SSD de 119 GB |
| Disco 2 | HDD de 1 TB a 5.400 rpm (estaba vacío) |
| Red | Una sola tarjeta de cable (y wifi, que no uso) |
| Gráfica | GTX 1060 de 6 GB (de momento, sin usar) |
La RAM es el límite, no la CPU. Con 16 GB hay que pensar cuánto le das a cada VM, y eso ya me obligó a tomar una decisión que cuento más abajo.
3. Que un portátil se comporte como un servidor
Lo instalé por cable, con IP fija y reservada también en el router para que nadie más la coja. Después de los ajustes de siempre (repositorio pve-no-subscription y actualizar, como en la segunda parte), hice tres cosas propias de un portátil.
Que ignore la tapa. Debajo de Proxmox hay un Debian, y por defecto cerrar la tapa lo suspende… con todas las VMs dentro.
mkdir -p /etc/systemd/logind.conf.d
cat > /etc/systemd/logind.conf.d/tapa.conf <<'EOF'
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
EOF
# Y por si algo intenta suspenderlo igualmente:
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemctl restart systemd-logind
Que la pantalla se apague sola. Si no, la consola se queda encendida días. En /etc/default/grub añado consoleblank=60 a GRUB_CMDLINE_LINUX_DEFAULT y luego update-grub.
La batería es mi SAI. Esto es gratis: si se va la luz, el portátil sigue funcionando un buen rato. Un servidor de verdad necesitaría uno aparte.
4. Dos discos y el NAS, cada uno para una cosa
El SSD de 119 GB se queda pequeño enseguida, así que convertí el disco de 1 TB en un almacenamiento LVM-thin para VMs:
# El disco es de ejemplo: compruébalo antes con lsblk, esto lo borra
pvcreate /dev/sdb
vgcreate hdd /dev/sdb
lvcreate -l 95%FREE --thinpool hdd hdd
pvesm add lvmthin hdd --vgname hdd --thinpool hdd --content images,rootdir
(Lo mismo se hace desde la web en Node > Disks > LVM-Thin > Create.)
El criterio que sigo:
- SSD (
local-lvm): lo que tiene que ir ágil y siempre encendido, como Home Assistant o el cortafuegos. - HDD (
hdd): discos grandes y VMs de laboratorio que enciendo para una práctica. - NAS (por SMB): ISOs y copias de seguridad. Así no gasto disco local en ellas y, si el portátil muere, las copias siguen en otro sitio. Lo cuento en la quinta parte del manual.
Un truco: las ISOs no hace falta bajarlas al PC y subirlas. Proxmox las descarga directamente a un almacenamiento con Download from URL, que también se puede usar desde la terminal con pvesh.
5. Una sola tarjeta de red y un OPNsense de laboratorio
En ASIR toca redes y cortafuegos, así que quería un OPNsense. Pero con una sola tarjeta no puede ser el router de casa: necesitaría una para internet y otra para la red interna. La solución es un puente interno sin ningún puerto físico, que hace de red de laboratorio:
# /etc/network/interfaces (añadido)
auto vmbr1
iface vmbr1 inet static
address 10.10.10.2/24
bridge-ports none
bridge-stp off
bridge-fd 0
- El OPNsense tiene la WAN en
vmbr0(la red de casa) y la LAN envmbr1(10.10.10.1/24, con DHCP). - Las VMs del laboratorio van conectadas a
vmbr1: salen a internet a través del OPNsense y no se mezclan con los equipos de casa. - Proxmox tiene una IP en
vmbr1para poder llegar a esa red con un túnel SSH desde el PC:
ssh -L 8443:10.10.10.1:443 root@IP_DE_PROXMOX
# y la web de OPNsense queda en https://localhost:8443
Llegué a plantearme usar el OPNsense para filtrar la red de casa (por DNS, que sí se puede con una tarjeta), pero lo descarté: un laboratorio es para romperlo, y no quiero que un experimento me deje a toda la casa sin internet.
6. Las VMs que tengo ahora
| VM | Para qué | Dónde |
|---|---|---|
| OPNsense | Cortafuegos de laboratorio | SSD, arranca solo |
| Ubuntu Server | Prácticas de Linux, detrás del OPNsense | HDD |
| Home Assistant OS | Domótica de casa | SSD, arranca solo |
| Debian 13 con GNOME | Prácticas que piden escritorio | HDD |
Algunas notas de cada una:
- Home Assistant lo instalé desde la imagen
qcow2oficial (comprobando el checksum antes de importarla). Ojo: el primer arranque tardó unos 20 minutos en la pantalla de preparación mientras descargaba el núcleo. No está colgado, solo hay que esperar. - Debian con GNOME la monté para una tarea de ISO sobre terminales. Usé la imagen cloud de Debian con cloud-init y aprendí dos cosas: tiene que ser la
genericy no lagenericcloud, que viene sin drivers de gráficos; y con la gráficaqxllas capturas de la consola salían en negro, convirtiovan bien. - Windows Server lo intenté y lo borré el mismo día. Lo instalé en modo Server Core sin querer y, al ver lo que pedía de RAM, decidí que los Windows Server los monto en el PC de sobremesa cuando haga falta. En un equipo de 16 GB que ya tiene Home Assistant y el cortafuegos encendidos, no compensa.
Todas llevan el agente QEMU instalado, así que Proxmox ve su IP y las puede apagar de forma ordenada. Te explico por qué importa en la tercera parte.
Lo que no hay que hacer
- Cerrar la tapa sin haber configurado
logind. Te encuentras todo suspendido. - Montar el router de casa en un equipo con una sola tarjeta de red. Para laboratorio, perfecto; para producción, no.
- Meterlo todo en el SSD pequeño. Decide desde el principio qué va en cada disco.
- Pensar que la CPU es el límite. En casa casi siempre lo es la RAM: haz la cuenta antes de crear la VM.
- Usar la imagen
genericcloudpara una VM con escritorio.
Resumen
- Un portátil viejo es un buen servidor de laboratorio: bajo consumo y la batería hace de SAI.
- Tapa ignorada, pantalla que se apaga sola, IP fija y reservada en el router.
- SSD para lo que va siempre encendido, HDD para el laboratorio y el NAS para ISOs y copias.
- Con una sola tarjeta, un puente interno (
bridge-ports none) te da una red de laboratorio detrás de un OPNsense. - Con 16 GB, elige: yo saqué Windows Server de aquí.
Después de una semana, para estudiar ASIR no lo cambiaría por nada: pasar de “a ver si me atrevo a instalar esto” a “lo pruebo y, si sale mal, vuelvo a la instantánea” es justo lo que necesitaba.
¿Te has quedado con la idea?
Tres preguntas rápidas. Cada acierto suma 10 XP.