Hallo, ich arbeite an einer Automatisierung und bin auf ein Problem gestoßen, bei dem die automatische Ubuntu-Installation mitten in der Installation immer noch eine Überprüfung verlangt.
Selbst wenn eine vollständig nicht interaktive Autoinstallationskonfiguration gefunden wird, wird das Serverinstallationsprogramm vor dem Schreiben auf die Datenträger um Bestätigung bitten, es sei denn, Autoinstall ist in der Kernel-Befehlszeile vorhanden. Dadurch soll es schwieriger gemacht werden, versehentlich einen USB-Stick zu erstellen, der eine Maschine, an die er beim Booten angeschlossen ist, neu formatiert. Viele Autoinstallationen werden über Netboot durchgeführt, wobei die Kernel-Befehlszeile durch die Netboot-Konfiguration gesteuert wird – denken Sie einfach daran, Autoinstall dort einzugeben!
ich bin auf diesen Artikel gestoßen und in meiner Konfigurationsdatei habe ich „Autoinstall“ wie folgt:
#cloud-config
autoinstall:
version: 1
Wie füge ich es in die Kernel-Befehlszeile ein? Oder wie schreibe ich eine Netboot-Konfiguration? Ich bin ein Neuling in der Serveradministration und mit den meisten Begriffen nicht vertraut.
Antwort1
Beachten Sie, dass es sich hierbei um eine Sicherheitsmaßnahme handelt, die dazu beitragen soll, ein versehentliches Löschen von Systemen zu verhindern, die in Gebrauch sind.Ich würde jedoch argumentieren, dass diese Sicherheitsmaßnahme übertrieben ist, wenn Sie das offizielle Ubuntu-Installationsmedium unverändert verwenden und die Cloud-Init-Autoinstall-Konfiguration über ein anderes ISO bereitstellen. Insbesondere, wenn kein physisches Installationsmedium verwendet wird und das Mounten von ISOs keine manuellen Vorgänge sind.
Wenn Sie also beim Booten nichts an die Kernel-Eingabeaufforderung anhängen können autoinstall
, können Sie die Eingabeaufforderung immer noch überschreiben, bevor sie vom Autoinstall-Modul geprüft wird:
#cloud-config
bootcmd:
- cat /proc/cmdline > /tmp/cmdline
- sed -i'' 's/$/ autoinstall/g' /tmp/cmdline
- mount -n --bind -o ro /tmp/cmdline /proc/cmdline
autoinstall:
version: 1
Dies nutzt das Cloud-Init-Bootcmd-Modul, um /proc/cmdline zu überschreiben, indem eine geänderte Datei darüber gemountet wird. Die Datei enthält den ursprünglichen Inhalt der Befehlszeile + autoinstall
.
Und wie in derautoinstall-DokumentationDadurch wird die Eingabeaufforderung „Mit automatischer Installation fortfahren? (ja|nein)“ entfernt.
Um diese Eingabeaufforderung zu umgehen, sorgen Sie dafür, dass das Argument „autoinstall“ in der Kernel-Befehlszeile vorhanden ist.
Antwort2
Nach einigen zusätzlichen Untersuchungen wird diese doppelte Prüfung durchgeführt, um versehentliche Installationen bei der Verwendung physischer Medien zur Installation des Betriebssystems zu verhindern. Um die vollautomatische Installation zu starten, sollte man net-install über FTP oder HTTP verwenden.