La instalación automática de Ubuntu Server 20.04.4 ya no carga datos de usuario (empaquetador)

La instalación automática de Ubuntu Server 20.04.4 ya no carga datos de usuario (empaquetador)

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>"
  ]

información relacionada