PXE besteht aus mehreren Komponenten: DHCP, HTTP und TFTP. Hier wird gezeigt, wie Sie einen PXE-Server unter Ubuntu einrichten.

DHCP verteilt IP-Einstellungen dynamisch an NSX-T Data Center-Komponenten wie NSX Edge. In einer PXE-Umgebung ermöglicht es der DHCP-Server NSX Edge, automatisch eine IP-Adresse anzufordern und zu erhalten.

TFTP ist ein Dateiübertragungsprotokoll. Der TFTP-Server überwacht stets PXE-Clients im Netzwerk. Wenn er erkennt, dass ein Netzwerk-PXE-Client PXE-Dienste anfragt, stellt er die NSX-T Data Center-Komponenten-ISO-Datei und die in einer vordefinierten Datei enthaltenen Installationseinstellungen bereit.

Voraussetzungen

  • Ein PXE-Server muss in Ihrer Bereitstellungsumgebung verfügbar sein. Der PXE-Server kann auf jeder beliebigen Linux-Distribution eingerichtet sein. Der PXE-Server muss über zwei Schnittstellen verfügen: eine für die externe Kommunikation und eine andere für DHCP-IP- und TFTP-Dienste.

    Wenn Sie über mehrere Verwaltungsnetzwerke verfügen, können Sie statische Routen von der NSX-T Data Center-Appliance zu den anderen Netzwerken hinzufügen.

  • Stellen Sie sicher, dass in der vordefinierten Konfigurationsdatei die Parameter net.ifnames=0 und biosdevname=0 nach -- festgelegt sind, damit sie nach einem Neustart beibehalten werden.

Prozedur

  1. (Optional) Verwenden Sie eine Kickstart-Datei, um neue TFTP oder DHCP-Dienste auf einem Ubuntu-Server einzurichten.
    Eine Kickstart-Datei ist eine Textdatei mit CLI-Befehlen, die Sie nach dem ersten Start auf der Appliance ausführen.
    Der Name der Kickstart-Datei basiert auf dem PXE-Server, auf den sie verweist. Beispiel:
    nsxcli.install
    Die Datei muss in Ihren Webserver kopiert werden (z. B. unter /var/www/html/nsx-edge/nsxcli.install).

    In der Kickstart-Datei können Sie CLI-Befehle hinzufügen. Zum Beispiel, um die IP-Adresse der Verwaltungsschnittstelle zu konfigurieren:

    stop dataplane
    set interface eth0 <ip-cidr-format> plane mgmt
    start dataplane

    Um das Kennwort des Admin-Benutzers zu ändern:

    set user admin password <new_password> old-password <old-password>

    Wenn Sie in der Datei preseed.cfg ein Kennwort angeben, sollten Sie dasselbe Kennwort in der Kickstart-Datei verwenden. Verwenden Sie andernfalls das Standardkennwort „default“.

    So verbinden Sie NSX Edge mit der Management Plane:

    join management-plane <manager-ip> thumbprint <manager-thumbprint> username <manager-username> password <manager password>
  2. Erstellen Sie zwei Schnittstellen: eine für das Management und eine andere für DHCP- und TFTP-Dienste.
    Stellen Sie sicher, dass sich die DHCP/TFTP-Schnittstelle im selben Subnetz befindet wie NSX Edge.

    Beispiel: Wenn sich die NSX Edge-Managementschnittstellen im Subnetz 192.168.210.0/24 befinden, müssen Sie eth1 ebenfalls in diesem Subnetz platzieren.

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # PXE server's management interface
    auto eth0
    iface eth0 inet static
      address 192.168.110.81
      gateway 192.168.110.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
    # PXE server's DHCP/TFTP interface
    auto eth1
    iface eth1 inet static
      address 192.168.210.82
      gateway 192.168.210.1
      netmask 255.255.255.0
      dns-nameservers 192.168.110.10
    
  3. Installieren Sie DHCP-Serversoftware.
    sudo apt-get install isc-dhcp-server -y
  4. Bearbeiten Sie die Datei /etc/default/isc-dhcp-server und fügen Sie die Schnittstelle hinzu, die den DHCP-Dienst bereitstellt.
    INTERFACES="eth1"
  5. (Optional) Wenn dieser DHCP-Server der offizielle DHCP-Server für das lokale Netzwerk sein soll, entfernen Sie den Kommentar für die Zeile authoritative; in der Datei /etc/dhcp/dhcpd.conf.
    ...
    authoritative;
    ...
  6. Definieren Sie in der Datei /etc/dhcp/dhcpd.conf die DHCP-Einstellungen für das PXE-Netzwerk.
    Beispiel:
    subnet 192.168.210.0 netmask 255.255.255.0 {
       range 192.168.210.90 192.168.210.95;
       option subnet-mask 255.255.255.0;
       option domain-name-servers 192.168.110.10;
       option routers 192.168.210.1;
       option broadcast-address 192.168.210.255;
       default-lease-time 600;
       max-lease-time 7200;
    }
  7. Starten Sie den DHCP-Dienst.
    sudo service isc-dhcp-server start
  8. Stellen Sie sicher, dass der DHCP-Dienst ausgeführt wird.
    service --status-all | grep dhcp
  9. Installieren Sie Apache, TFTP und weitere Komponenten, die für PXE Boot erforderlich sind.
    sudo apt-get install apache2 tftpd-hpa inetutils-inetd
  10. Stellen Sie sicher, dass TFTP und Apache ausgeführt werden.
    service --status-all | grep tftpd-hpa
    service --status-all | grep apache2
  11. Fügen Sie die folgenden Zeilen zur Datei /etc/default/tftpd-hpa hinzu.
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
  12. Fügen Sie die folgende Zeile zur Datei /etc/inetd.conf hinzu.
    tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  13. Starten Sie den TFTP-Dienst neu.
    sudo /etc/init.d/tftpd-hpa restart
  14. Kopieren Sie die ISO-Datei des NSX Edge-Installationsprogramms in einen temporären Ordner oder laden Sie sie dorthin herunter.
  15. Stellen Sie die ISO-Datei bereit und kopieren Sie die Installationskomponenten in den TFTP-Server und den Apache-Server.
    sudo mount -o loop ~/nsx-edge.<build>.iso /mnt
    cd /mnt
    sudo cp -fr install/netboot/* /var/lib/tftpboot/
    sudo mkdir /var/www/html/nsx-edge
    sudo cp -fr /mnt/* /var/www/html/nsx-edge/
  16. (Optional) Bearbeiten Sie die Datei /var/www/html/nsx-edge/preseed.cfg, um die verschlüsselten Kennwörter zu ändern.
    Sie können ein Linux-Tool wie mkpasswd verwenden, um ein Kennwort-Hash zu erstellen.
    sudo apt-get install whois
    sudo mkpasswd -m sha-512
    
    Password: 
    $6$SUFGqs[...]FcoHLijOuFD
    1. Ändern Sie das Root-Kennwort, bearbeiten Sie /var/www/html/nsx-edge/preseed.cfg und suchen Sie nach der folgenden Zeile:
      d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
    2. Ersetzen Sie die Hash-Zeichenfolge.
      Sonderzeichen wie $, ', ", oder \ müssen nicht maskiert werden.
    3. Fügen Sie den Befehl usermod zu preseed.cfg hinzu, um das Kennwort für Root, Admin oder beides festzulegen.
      Suche Sie z. B. nach der Zeile echo 'VMware NSX Edge', und fügen Sie den folgenden Befehl hinzu.
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' root; \
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' admin; \

      Die Hash-Zeichenfolge stellt ein Beispiel dar. Sie müssen alle Sonderzeichen maskieren. Das Root-Kennwort im ersten usermod-Befehl ersetzt das in d-i passwd/root-password-crypted password $6$tgm... festgelegte Kennwort.

      Wenn Sie das Kennwort mit dem Befehl usermod festlegen, wird der Benutzer nicht aufgefordert, das Kennwort bei der ersten Anmeldung zu ändern. Andernfalls muss der Benutzer das Kennwort bei der ersten Anmeldung ändern.

  17. Fügen Sie die folgenden Zeilen zur Datei /var/lib/tftpboot/pxelinux.cfg/default hinzu.

    Ersetzen Sie 192.168.210.82 durch die IP-Adresse Ihres TFTP-Servers.

    label nsxedge
        kernel ubuntu-installer/amd64/linux
        ipappend 2
        append netcfg/dhcp_timeout=60 auto=true priority=critical vga=normal partman-lvm/device_remove_lvm=true netcfg/choose_interface=auto debian-installer/allow_unauthenticated=true preseed/url=http://192.168.210.82/nsx-edge/preseed.cfg mirror/country=manual mirror/http/hostname=192.168.210.82 nsx-kickstart/url=http://192.168.210.82/nsx-edge/nsxcli.install mirror/http/directory=/nsx-edge initrd=ubuntu-installer/amd64/initrd.gz mirror/suite=xenial --
  18. Fügen Sie die folgenden Zeilen zur Datei /etc/dhcp/dhcpd.conf hinzu.

    Ersetzen Sie 192.168.210.82 durch die IP-Adresse Ihres DHCP-Servers.

    allow booting;
    allow bootp;
    
    next-server 192.168.210.82; #Replace this IP address
    filename "pxelinux.0";
  19. Starten Sie den DHCP-Dienst neu.
    sudo service isc-dhcp-server restart
    Hinweis: Wenn ein Fehler zurückgegeben wird, beispielsweise „stop: Unknown instance: start: Job failed to start“, führen Sie sudo /etc/init.d/isc-dhcp-server stop und dann sudo /etc/init.d/isc-dhcp-server start aus. Mit dem Befehl sudo /etc/init.d/isc-dhcp-server start können Sie Informationen zur Fehlerursache abrufen.

Nächste Maßnahme

Installieren Sie NSX Edge mithilfe einer ISO-Datei auf einer Bare-Metal-Bereitstellung. Siehe Automatisches Installieren von NSX Edge via ISO-Datei.