
Ich habe einen funktionsfähigen DHCP-, FTP- und TFTP-Server mit einem TFTPboot-Verzeichnis, in das die in PXEboot konfigurierten Maschinen kommen, um Syslinux problemlos aus dem Netzwerk zu laden.
Ich versuche, Ubuntu 22.04 in PXE über SYSLINUX zu installieren.
Ich habe dies befolgtPostum das zu erreichen.
In diesem Beitrag heißt es, dass Sie die Kerneldateien vmlinuz und initrd im ISO des Ubuntu 22.04-Serverinstallationsprogramms extrahieren und in das TFTP-Boot-Verzeichnis legen müssen. Laden Sie dann das ISO aus der Konfigurationsdatei namens „Default“, die sich im Verzeichnis pxelinux.cfg befindet. Unten finden Sie eine nicht erschöpfende schematische Darstellung des TFTP-Boot-Verzeichnisses in Bezug auf Jammy (unter Auslassung der übrigen Dateien, die traditionell von Syslinux verwendet werden).
└── tftpboot
├── pxelinux.0
├── jammy
│ ├── initrd
│ └── vmlinuz
├── pxelinux.cfg
│ └── default
└── syslinux (All the Syslinux boot files)
└── bios
├── ldlinux.c32
├── libutil.c32
└── menu.c32
Hier ist das FTP-Verzeichnis, das ich habe
└── ftp
└── Ubuntu-22.04
├── ubuntu-22.04.1-live-server-amd64.iso
└── Kickstart
├── user-data
└── meta-data
Hier ist die Benutzerdatendatei, die ich für einen ersten Versuch einer Minimalinstallation erstellt habe. Die Metadaten können leer sein:
#cloud-config
autoinstall:
identity:
hostname: jammy-minimal
password: $6$gnqbMUzHhQzpDEw.$.cCNVVDsDfj5Feebh.5O4VbOmib7tyjmeI2ZsFP7VK2kWwgJFbfjvXo3chpeAqCgXWVIW9oNQ/Ag85PR0IsKD/
username: ubuntu
version: 1
Hier ist die Standardkonfigurationsdatei, die ich eingerichtet habe.
default menu.c32
menu title Ubuntu installer
LABEL ubuntu
MENU LABEL Install Ubuntu Jammy Server
MENU DEFAULT
KERNEL jammy/vmlinuz
IPAPPEND 1
APPEND initrd=jammy/initrd ip=dhcp url=ftp://172.16.0.4/Ubuntu-22.04/ubuntu-22.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=ftp://172.16.0.4/Ubuntu-22.04/Kickstart
Fügen Sie abschließend die Benutzerdaten (Cloud-Konfiguration) und Metadatendateien im FTP hinzu, mit dem die Standarddatei ihre Konfiguration herunterladen und eine automatische Installation starten kann. Dabei handelt es sich um Benutzerdaten mit allen Schritten, die wir zuvor manuell ausgewählt haben, um eine Installation ohne manuelles Eingreifen (Sprache, Formatierung usw.) durchzuführen.
Der Kernel und das ISO werden korrekt geladen und starten den Installationsprozess bis zum Installationsmenü. Das Problem tritt jedoch auf, wenn die Cloud-Config-Datei (Benutzerdaten) geladen werden muss, um eine automatische Installation zu starten. Sie kann nicht gefunden werden, obwohl ich sie in der Standarddatei angegeben habe. Folgendes passiert im Bild unten.
Laden der ISO-Datei
Warte ewig auf Cloud-Init
Starten Sie dann das Menü schließlich
Anscheinend wird die Benutzerdatendatei ignoriert, wenn ich sie aus der Standard-Syslinux-Datei lade. Wie ist das möglich? Muss ich sie von einer anderen Stelle als der Standarddatei laden? Ich habe bereits darüber nachgedacht, sie aus einer modifizierten ISO-Datei zu laden. Wäre das eine gute Alternative? Danke
Antwort1
Warte ewig auf Cloud-Init
Hast du überprüftLogdateien von cloud-init? Was hast du gesehen?
Ich vermute, dass der Grund dafür, dass Cloud-Init ewig wartet, darin liegt,Sie geben keinen gültigen NoCloudNet-String an. Die NoCloud-Datenquelle von Cloud-init unterstützt keine Unterstützung ftp
. Vondie Dokumente:
Bei ds=nocloud muss der Seedfrom-Wert mit / oder file:// beginnen. Bei ds=nocloud-net muss der Seedfrom-Wert mit http:// oder https:// beginnen und mit einem abschließenden / enden.
Wenn Sie Ihre Cloud-Init-Protokolle überprüfen, werden Sie bestimmt Folgendes sehenWarnung.
Aktualisieren:In der Version 24.2 wird FTP zur NoCloud-Datenquelle von Cloud-Init hinzugefügt.