Die automatische Installation von Ubuntu Server 20.04.4 lädt keine Benutzerdaten mehr (Packer)

Die automatische Installation von Ubuntu Server 20.04.4 lädt keine Benutzerdaten mehr (Packer)

Ich habe also ein seltsames Problem: Ich verwende Packer, um Ubuntu Server 20.04 automatisch in VirtualBox zu installieren. Ich folge diesem Beispiel: https://nickcharlton.net/posts/automating-ubuntu-2004-installs-with-packer.html

Gestern, als ich es zum ersten Mal ausprobiert habe, hat es wunderbar funktioniert. Packer konnte sogar per SSH eine Verbindung zu der VM herstellen, die nach der Installation erstellt wurde. Dann habe ich es erneut versucht (mit geringfügigen Änderungen) und es hat einfach aufgehört zu funktionieren. Seitdem bekomme ich es nicht mehr zum Laufen. Die Benutzerdaten werden nicht mehr geladen und das Installationsprogramm läuft mit GUI und stellt Fragen, als ob keine automatische Installation ausgeführt worden wäre. Ich habe dies bestätigt (durch Abbrechen der Installation und dann Alt+F2 -> curl -ls).http://10.0.2.2:PACKERPORT) dass das http-Verzeichnis des Packers von der VM aus erreichbar ist und sich dort Benutzerdaten- und Metadatendateien befinden.

Wie kann es sein, dass es einmal funktioniert hat und dann nicht mehr? Was zur Hölle? Ich verwende den gleichen Boot-Befehl wie im Beispiel. Ich habe bestätigt, dass der Boot-Befehl beim VM-Booten korrekt gesetzt ist. Meine Benutzerdaten enthalten Folgendes:

#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

Antwort1

Ich konnte das Problem schließlich beheben, indem ich dem Boot-Befehl diese zusätzliche Anweisung hinzufügte:

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

Mein gesamter Boot-Befehl lautet jetzt:

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

verwandte Informationen