Si en tu homelab reinstalas Ubuntu Server más de una vez al año (una VM de pruebas, un nodo nuevo, un LXC que prefieres reconstruir antes que arrastrar configuración vieja) pasar por el instalador gráfico cada vez es tiempo perdido. autoinstall es el mecanismo oficial del instalador de Ubuntu Server, basado en cloud-init, para responder todas las preguntas de antemano con un único fichero YAML: particionado, usuario, red, paquetes y comandos de post-instalación, sin tocar el teclado durante el proceso.
Cómo automatizar instalaciones desatendidas de Ubuntu Server con autoinstall
- 1
Paso 1: Preparar el fichero de configuración
Crea un
user-datacon las respuestas del instalador. Este ejemplo mínimo crea un usuario con tu clave SSH, particiona el disco entero con LVM y deja listo OpenSSH:#cloud-config autoinstall: version: 1 locale: es_ES.UTF-8 keyboard: layout: es identity: hostname: nodo-homelab username: alvaro password: "$6$...hash-generado-con-mkpasswd..." ssh: install-server: true authorized-keys: - "ssh-ed25519 AAAA...tu-clave-publica..." storage: layout: name: lvm packages: - qemu-guest-agent late-commands: - curtin in-target -- systemctl enable qemu-guest-agentGenera el hash de la contraseña con
mkpasswd --method=sha-512(paquetewhoisen Debian/Ubuntu) y sustitúyelo enpassword. Usa siempre una clave SSH para el acceso real; la contraseña es solo para la consola local en una emergencia. - 2
Paso 2: Crear el fichero meta-data vacío
cloud-init espera también un
meta-data, aunque sea vacío, junto aluser-data:mkdir -p ~/autoinstall-ubuntu touch ~/autoinstall-ubuntu/meta-data nano ~/autoinstall-ubuntu/user-data
- 3
Paso 3: Servir los ficheros y arrancar la ISO oficial
La forma más práctica en un homelab es servir los ficheros por HTTP desde tu propia máquina y apuntar el arranque de la ISO oficial de Ubuntu Server (sin modificar) a esa URL, en vez de generar una ISO personalizada. Sirve la carpeta:
cd ~/autoinstall-ubuntu && python3 -m http.server 3003
Al arrancar la ISO oficial en la VM o el servidor destino, edita la línea de arranque de GRUB y añade al final de la línea del kernel:
autoinstall ds=nocloud-net\;s=http://IP-DE-TU-MAQUINA:3003/
- 4
Paso 4: Lanzar la instalación
Con esos parámetros, el instalador detecta la configuración
autoinstally, si no se indicainteractive-sectionsen el YAML, completa toda la instalación sin pedir confirmación en ningún paso, incluido el particionado destructivo del disco. En Proxmox puedes automatizar esto todavía más con un script que cree la VM, le apunte elcdroma la ISO oficial y le añada el parámetro de arranque directamente víaqm set --args. - 5
Paso 5: Verificar tras el primer arranque
Conéctate por SSH con la clave que declaraste y confirma que
late-commandsse ejecutó correctamente:ssh alvaro@nodo-homelab systemctl is-enabled qemu-guest-agent
Conclusión
Con un user-data guardado en tu propio repositorio de configuración, cada reinstalación se convierte en un comando en vez de en diez minutos de clics repetidos, y además en un proceso documentado y versionado en vez de una receta que solo existe en tu memoria. El mismo fichero sirve de base para adaptarlo a distintos perfiles de máquina (nodo de Kubernetes, servidor de backups, VM de pruebas) con pequeños cambios en packages y late-commands.



