Entonces tengo un problema extraño: estoy usando Packer para instalar automáticamente Ubuntu Server 20.04 en VirtualBox. Estoy siguiendo este ejemplo: https://nickcharlton.net/posts/automating-ubuntu-2004-installs-with-packer.html
Ayer, cuando lo probé por primera vez, funcionó de maravilla, Packer incluso pudo conectarse vía SSH a la máquina virtual que se creó después de la instalación. Luego lo intenté nuevamente (con ligeros cambios) y simplemente dejó de funcionar. Desde entonces no puedo volver a hacerlo funcionar. Los datos del usuario ya no se cargan y el instalador se ejecuta con GUI, haciendo preguntas como si no se hubiera ejecutado ninguna instalación automática. Lo he confirmado (anulando la instalación y luego Alt+F2 -> curl -lshttp://10.0.2.2:PACKERPORT) la máquina virtual puede acceder al directorio http de los empaquetadores y allí hay archivos de datos de usuario y metadatos.
¿Cómo puede ser que funcionó una vez y luego dejó de funcionar? ¿Qué demonios? Estoy usando el mismo comando de arranque que en el ejemplo. He confirmado que el comando de arranque está configurado correctamente durante el arranque de vm. Mis datos de usuario contienen esto:
#cloud-config
autoinstall:
version: 1
identity:
hostname: test_vm
password: $6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0
username: testmann
locale: de_DE.UTF-8
keyboard:
layout: de
early-commands:
# otherwise packer tries to connect and exceed max attempts:
- systemctl stop ssh
ssh:
install-server: true
Respuesta1
Finalmente pude solucionarlo proporcionando esta declaración adicional al comando de arranque:
cloud-config-url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/user-data
Todo mi comando de arranque ahora es:
boot_command = [
"<enter><wait><enter><f6><esc><wait> ",
"autoinstall<wait>",
" cloud-config-url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/user-data<wait>",
" ds='nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/'",
"<wait5><enter>"
]