A instalação automática do Ubuntu Server 20.04.4 não carrega mais os dados do usuário (packer)

A instalação automática do Ubuntu Server 20.04.4 não carrega mais os dados do usuário (packer)

Então, estou com um problema estranho: estou usando o packer para instalar automaticamente o Ubuntu Server 20.04 no VirtualBox. Estou seguindo este exemplo: https://nickcharlton.net/posts/automating-ubuntu-2004-installs-with-packer.html

Ontem, quando tentei pela primeira vez, funcionou perfeitamente, o packer ainda conseguiu se conectar via SSH à VM que foi criada após a instalação. Então tentei novamente (com pequenas alterações) e simplesmente parou de funcionar. Não consigo fazê-lo funcionar novamente desde então. Os dados do usuário não são mais carregados e o instalador é executado com GUI, fazendo perguntas como se nenhuma instalação automática tivesse sido executada. Eu confirmei (abortando a instalação e depois Alt+F2 -> curl -lshttp://10.0.2.2:PACKERPORT) que o diretório http dos packers pode ser acessado pela VM e há arquivos de dados do usuário e metadados lá.

Como pode funcionar uma vez e depois parar de funcionar? Que diabos? Estou usando o mesmo comando de inicialização do exemplo. Confirmei que o bootcommand está configurado corretamente durante a inicialização do VM. Meus dados de usuário contêm isto:

#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

Responder1

Finalmente consegui consertar fornecendo esta instrução adicional ao comando de inicialização:

cloud-config-url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/user-data

Todo o meu Boot-Command agora é:

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

informação relacionada