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

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

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

必要條件

  • PXE 伺服器必須可在您的部署環境中使用。PXE 伺服器可設定於任何 Linux 發行版上。PXE 伺服器必須有兩個介面,一個用於外部通訊,另一個用來提供 DHCP IP 和 TFTP 服務。

    如果您有多個管理網路,則可以新增從 NSX-T Data Center 應用裝置到其他網路的靜態路由。

  • 確認預先植入的組態檔在 -- 後設定了 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 dataplane
    set interface eth0 <ip-cidr-format> plane mgmt
    start 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 伺服器軟體。
    sudo apt-get install isc-dhcp-server -y
  4. 編輯 /etc/default/isc-dhcp-server 檔案,並新增提供 DHCP 服務的介面。
    INTERFACES="eth1"
  5. (選擇性) 如果您要讓此 DHCP 伺服器成為本機網路的正式 DHCP 伺服器,請將 /etc/dhcp/dhcpd.conf 檔案中的 authoritative; 一行取消註解。
    ...
    authoritative;
    ...
  6. /etc/dhcp/dhcpd.conf 檔案中,定義 PXE 網路的 DHCP 設定。
    例如:
    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. 啟動 DHCP 服務。
    sudo service isc-dhcp-server start
  8. 確認 DHCP 服務正在執行。
    service --status-all | grep dhcp
  9. 安裝 PXE 開機所需的 Apache、TFTP 和其他元件。
    sudo apt-get install apache2 tftpd-hpa inetutils-inetd
  10. 確認 TFTP 和 Apache 正在執行。
    service --status-all | grep tftpd-hpa
    service --status-all | grep apache2
  11. 將以下幾行新增至 /etc/default/tftpd-hpa 檔案。
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
  12. 將以下一行新增至 /etc/inetd.conf 檔案。
    tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
  13. 重新啟動 TFTP 服務。
    sudo /etc/init.d/tftpd-hpa restart
  14. NSX Edge 安裝程式 ISO 檔案複製或下載到暫存資料夾。
  15. 掛接 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/
  16. (選擇性) 編輯 /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 的密碼。
      例如,您可以搜尋 echo 'VMware NSX Edge' 一行,並新增下列命令。
      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 命令設定密碼,則使用者在第一次登入時將不會看見變更密碼的提示。否則,使用者必須在第一次登入時變更密碼。

  17. 將以下幾行新增至 /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 --
  18. 將以下幾行新增至 /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";
  19. 重新啟動 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