PXE は DHCP、HTTP、TFTP の複数のコンポーネントから構成されます。この手順で、Ubuntu で PXE サーバのセットアップを実行します。
DHCP は、NSX Edge などの NSX-T Data Center コンポーネントに IP アドレス設定を動的に配信します。PXE 環境の DHCP サーバでは、NSX Edge が IP アドレスを自動的に要求し、受け取ることができます。
TFTP はファイル転送プロトコルです。TFTP サーバは、ネットワーク上で常に PXE クライアントを待機しています。PXE サービスを要求するネットワーク PXE クライアントが検出されると、NSX-T Data Center コンポーネントの ISO ファイルと、preseed ファイルに含まれるインストール設定が提供されます。
手順
- (オプション) kickstart ファイルを使用して、Ubuntu サーバで新しい TFTP または DHCP サービスをセットアップします。
kickstart ファイルはテキスト ファイルで、最初の起動後にアプライアンスで実行する CLI コマンドが含まれます。
参照する PXE サーバに基づいて、kickstart ファイルに名前を付けます。次はその例です。
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 つのインターフェイスを作成します。1 つは管理用で、もう 1 つは 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
- Apache、TFTP、PXE ブートに必要なその他のコンポーネントをインストールします。
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 ファイルを編集して、暗号化されているパスワードを変更します。
mkpasswd などの Linux ツールを使用してパスワード ハッシュを作成できます。
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
注: 「stop: Unknown instance: start: Job failed to start」 などのエラーが返された場合、
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 の自動インストール を参照してください。