PXE 由數個元件組成:DHCP、HTTP 和 TFTP。此程序將示範如何在 Ubuntu 上設定 PXE 伺服器。

DHCP 會以動態方式將 IP 設定散佈至 NSX 元件,例如 NSX Edge。在 PXE 環境中,DHCP 伺服器允許 NSX Edge 自動要求及接收 IP 位址。

TFTP 是一種檔案傳輸通訊協定。TFTP 伺服器一律會接聽網路上的 PXE 用戶端。當它偵測到任何網路 PXE 用戶端要求 PXE 服務時,即會提供包含在 preseed 檔案中的 NSX 元件 ISO 檔案和安裝設定。

必要條件

  • PXE 伺服器必須可在您的部署環境中使用。PXE 伺服器可設定於任何 Linux 發行版上。
  • 確認預先植入的組態檔在 -- 後設定了 net.ifnames=0 和 biosdevname=0 參數,以便在重新開機後能夠保留。

程序

  1. (選擇性) 使用 kickstart 檔案,以便在 Ubuntu 伺服器上設定新的 TFTP 或 DHCP 服務。
    kickstart 檔案是一種文字檔,其中包含您在第一次開機後對應用裝置執行的 CLI 命令。
    請根據 kickstart 檔案所指向的 PXE 伺服器為其命名。例如:
    nsxcli.install
    該檔案必須複製到您的 Web 伺服器 (例如在 /var/www/html/nsx-edge/nsxcli.install 上)。

    在 kickstart 檔案中,您可以新增 CLI 命令。例如,設定管理介面的 IP 位址:

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

    若要變更 Admin 使用者密碼:

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

    如果您在 preseed.cfg 檔案中指定了密碼,請在 kickstart 檔案中使用相同的密碼。否則,請使用預設密碼「default」。

    若要將 NSX Edge 加入管理平面:

    join management-plane <manager-ip> thumbprint <manager-thumbprint> username <manager-username> password <manager password>
  2. 建立兩個介面,一個用於管理,另一個用於 DHCP 和 TFTP 服務。
    請確定 DHCP/TFTP 介面位於 NSX Edge 所在的相同子網路中。

    例如,如果 NSX Edge 管理介面將位於 192.168.210.0/24 子網路中,請將 eth1 置於相同的子網路中。

    # 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. 安裝 DHCP 伺服器軟體,並設定必要的設定,以設定 PXE 伺服器。如需更多詳細資料,請參閱 Linux 說明文件。
  4. 安裝 Apache 伺服器和 TFTP 以及設定 PXE 伺服器所需的其他元件。
  5. NSX Edge 安裝程式 ISO 檔案複製或下載到暫存資料夾。
  6. 掛接 ISO 檔案,並將安裝元件複製到 TFTP 伺服器和 Apache 伺服器。
    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/
  7. (選擇性) 編輯 /var/www/html/nsx-edge/preseed.cfg 檔案以修改加密密碼。
    您可以使用 Linux 工具 (例如 mkpasswd) 來建立密碼雜湊。
    sudo apt-get install whois
    sudo mkpasswd -m sha-512
    
    Password: 
    $6$SUFGqs[...]FcoHLijOuFD
    1. 修改 root 密碼,編輯 /var/www/html/nsx-edge/preseed.cfg,然後搜尋以下一行:
      d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
    2. 取代雜湊字串。
      您不需要逸出任何特殊字元,如 $、'、" 或 \ 等。
    3. usermod 命令新增至 preseed.cfg,以設定 root 使用者和/或 admin 的密碼。
      例如,新增以下命令。
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' root; \
      usermod --password '\$6\$VS3exId0aKmzW\$U3g0V7BF0DXlmRI.LR0v/VgloxVotEDp00bO2hUF8u/' admin; \

      雜湊字串為範例。您必須逸出所有特殊字元。第一個 usermod 命令中的 root 密碼會取代 d-i passwd/root-password-crypted password $6$tgm... 中設定的密碼。

      如果您使用 usermod 命令設定密碼,則使用者在第一次登入時將不會看見變更密碼的提示。否則,使用者必須在第一次登入時變更密碼。

  8. 將以下幾行新增至 /var/lib/tftpboot/pxelinux.cfg/default 檔案。

    將 192.168.210.82 取代為您 TFTP 伺服器的 IP 位址。

    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=bionic netcfg/do_not_use_netplan=true --
  9. 將以下幾行新增至 /etc/dhcp/dhcpd.conf 檔案。

    將 192.168.210.82 取代為您 DHCP 伺服器的 IP 位址。

    allow booting;
    allow bootp;
    
    next-server 192.168.210.82; #Replace this IP address
    filename "pxelinux.0";
  10. 重新啟動 DHCP 服務。
    sudo service isc-dhcp-server restart
    備註: 如果傳回錯誤 (例如:「停止: 未知的執行個體: 啟動: 工作無法啟動」),請執行 sudo /etc/init.d/isc-dhcp-server stop,然後執行 sudo /etc/init.d/isc-dhcp-server startsudo /etc/init.d/isc-dhcp-server start 命令會傳回錯誤來源的相關資訊。

下一步

使用 ISO 檔案在裸機上安裝 NSX Edge。請參閱使用 ISO 檔案自動安裝裸機 NSX Edge