El momento más temido de todo selfhoster se llama upgrade. Especialmente cuando se trata del sistema operativo que soporta todo tu sistema. Y sí, ha llegado ese momento para mí.
Uso Proxmox en mi servidor casero. Es un sistema operativo basado en Debian, especializado en virtualización. Permite un manejo bastante sencillo y versátil de los recursos, y como está basado en Linux, es muy personalizable.
Hace un par de semanas hice la actualización en un servidor del laboratorio de mi trabajo. Ahora era el turno de mi servidor personal, el que soporta, entre cosas, este mismo blog.
Iré registrando el proceso a medida que lo ejecuto, siguiendo las instrucciones de la documentación oficial.
Antes de comenzar
Para irse a la segura
Es super importante hacer un respaldo de las configuraciones, las máquinas virtuales y los contenedores, por si algo falla. Vale la pena gastar unos minutos adicionales en esto. (Yo solía saltarme este paso e iba directo a los comandos porque era más rápido. ¿Qué podría salir mal? Bueno, una vez algo salió mal. Lección aprendida).
Respaldo los siguientes directorios y archivos, que debería ser válido para cualquier instalación estándar.
/etc/pve/etc/network/interfaces/etc/passwd/etc/resolv.conf
Actualizar en la versión actual 8.x
Se requiere actualizar todos los paquetes en la versión mínima 8.4.1 antes de hacer el upgrade.
sudo apt update
sudo apt upgrade
Chequeo Previo
Promox provee una aplicación llamada pve8to9 que ejecuta algunas validaciones para encontrar potenciales problemas antes del upgrade. Simplemente se ejecuta:
sudo pve8to9
O, para un chequeo completo:
sudo pve8to9 --full
El comando devuelve el detalle de las validaciones y un resumen al final, como el que yo obtuve:
TOTAL: 47
PASSED: 36
SKIPPED: 6
WARNINGS: 5
FAILURES: 0
Hay que poner especial atención en los FAILURES. Por suerte no obtuve ninguno, pero sí aparecieron 5 WARNINGS. Tres de ellos relacionados con máquinas virtuales en desuso, así que las he borrado junto con todos los recursos asociados. El cuarto es por la falta del paquete amd64-microcode recomendado para la arquitectura de mi procesador.
Decidí instalar el paquete recomendado, también. Fue necesario habilitar las fuentes non-free-firmware en los repositorios de apt para hacerlo disponible.
Luego volví a ejecutar la validación pve8to9 y… ¡Ningún warning! Listo para continuar.
El Upgrade
La guía oficial recomiendanejecutar el procedimiento conectado directamente a la consola del equipo (no ssh), así que me armé de teclado y monitor para evitar inconvenientes.
Lo primero es validar una vez más que todos los paquetes de la versión estén actualizados.
apt update
apt dist-upgrade
pveversion
El último comando arroja la versión actual de Proxmox. En mi caso pve-manager/8.4.14/b502d23c55afcba1 (running kernel: 6.8.12-15-pve).
Vamos con el upgrade, ahora sí. Es importante confirmar que no quede ningún contenedor ni máquina virtual en ejecución. Para estar 100% seguro ejecuté una vez más la validación completa:
pve8to9 --full
Efectivamente, no hay WARNINGS ni FAILURES:
TOTAL: 45
PASSED: 39
SKIPPED: 6
WARNINGS: 0
FAILURES: 0
Para realizar la actualización, se requiere cambiar los repositorios a Debian Trixie.
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
Nunca está demás asegurarse de que no haya quedado ninguna referencia a Bookworm.
cat /etc/apt/sources.list | grep Bookworm
cat /etc/apt/sources.list.d/pve-enterprise.list | grep Bookworm
El siguiente paso es agregar los repositorios de la última versión de Proxmox. Si no tienes una suscripción empresarial (como buen selfhoster pobre), agrego no-subscription:
cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
Los mismo para ceph:
cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
En este punto es muy importante eliminar los archivos de repositorios antiguos en /etc/apt/sources.list.d (ceph.list y pve-enterprise.list) para evitar conflictos. A modo de precaución, hice un respaldo antes de borrarlos.
Actualizamos la lista de paquetes.
apt update
Y ahora sí… el momento de la verdad ha llegado. A cruzar los dedos y un enter:
apt dist-upgrade
Es necesario poner atención durante el proceso, ya que requiere interactuar con la consola en varias ocasiones. Me ha preguntado sobre algunos cambios en archivos de configuración. Hay que leer con atención antes de responder, pero he mantenido la opción por defecto en todos los casos.
Y, gracias a la magia de los blogs (y a varios minutos de nerviosa espera que hemos editado para tranquilidad del lector)… ¡Hemos sobrevivido! No se rompió nada y, hasta el momento, todo parece funcionar de maravilla. Ya tengo Proxmox actualizado a la versión estable más reciente: 9.0.11 con kernel 6.14.11-4-pve.
Espero que a alguien le sirva de ayuda esta muy amateur guía. Si tienen comentarios o consultas las responderé con gusto.
Reacciones en fediverso