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 檔案和安裝設定。
程序
- (選擇性) 使用 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>
- 建立兩個介面,一個用於管理,另一個用於 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
- 安裝 DHCP 伺服器軟體。
sudo apt-get install isc-dhcp-server -y
- 編輯 /etc/default/isc-dhcp-server 檔案,並新增提供 DHCP 服務的介面。
- (選擇性) 如果您要讓此 DHCP 伺服器成為本機網路的正式 DHCP 伺服器,請將 /etc/dhcp/dhcpd.conf 檔案中的 authoritative; 一行取消註解。
- 在 /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;
}
- 啟動 DHCP 服務。
sudo service isc-dhcp-server start
- 確認 DHCP 服務正在執行。
service --status-all | grep dhcp
- 安裝 PXE 開機所需的 Apache、TFTP 和其他元件。
sudo apt-get install apache2 tftpd-hpa inetutils-inetd
- 確認 TFTP 和 Apache 正在執行。
service --status-all | grep tftpd-hpa
service --status-all | grep apache2
- 將以下幾行新增至 /etc/default/tftpd-hpa 檔案。
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
- 將以下一行新增至 /etc/inetd.conf 檔案。
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
- 重新啟動 TFTP 服務。
sudo /etc/init.d/tftpd-hpa restart
- 將 NSX Edge 安裝程式 ISO 檔案複製或下載到暫存資料夾。
- 掛接 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/
- (選擇性) 編輯 /var/www/html/nsx-edge/preseed.cfg 檔案以修改加密密碼。
您可以使用 Linux 工具 (例如 mkpasswd) 來建立密碼雜湊。
sudo apt-get install whois
sudo mkpasswd -m sha-512
Password:
$6$SUFGqs[...]FcoHLijOuFD
- 修改 root 密碼,編輯 /var/www/html/nsx-edge/preseed.cfg,然後搜尋以下一行:
d-i passwd/root-password-crypted password $6$tgmLNLMp$9BuAHhN...
- 取代雜湊字串。
您不需要逸出任何特殊字元,如 $、'、" 或 \ 等。
- 將 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 命令設定密碼,則使用者在第一次登入時將不會看見變更密碼的提示。否則,使用者必須在第一次登入時變更密碼。
- 將以下幾行新增至 /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 --
- 將以下幾行新增至 /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";
- 重新啟動 DHCP 服務。
sudo service isc-dhcp-server restart
備註: 如果傳回錯誤 (例如:「停止: 未知的執行個體: 啟動: 工作無法啟動」),請執行
sudo /etc/init.d/isc-dhcp-server stop,然後執行
sudo /etc/init.d/isc-dhcp-server start。
sudo /etc/init.d/isc-dhcp-server start 命令會傳回錯誤來源的相關資訊。
下一步
使用 ISO 檔案在裸機上安裝 NSX Edge。請參閱透過 ISO 檔案自動安裝 NSX Edge。