Bereitstellen von Ubuntu 22.04 mit PXEBoot unter Verwendung von Syslinux

Bereitstellen von Ubuntu 22.04 mit PXEBoot unter Verwendung von Syslinux

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

Laden der ISO-Datei

Warte ewig auf Cloud-Init

Warte ewig auf Cloud-Init

Starten Sie dann das Menü schließlich

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.

verwandte Informationen