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 ファイルに含まれるインストール設定が提供されます。

前提条件

  • 環境で PXE サーバが使用できる必要があります。PXE サーバは任意の Linux ディストリビューションに設定できます。PXE サーバには 2 つのインターフェイスが必要です。1 つは外部通信用で、もう 1 つは DHCP の IP アドレス サービスと TFTP サービス用です。

    複数の管理ネットワークが存在する場合は、NSX-T Data Center アプライアンスから他のネットワークへのスタティック ルートを追加できます。

  • 事前にシードされた構成ファイルの -- の後に、再起動後も存続するようにパラメータ net.ifnames=0 および biosdevname=0 が設定されていることを確認します。

手順

  1. (オプション) 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. 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
    
  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. Apache、TFTP、PXE ブートに必要なその他のコンポーネントをインストールします。
    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 ファイルを編集して、暗号化されているパスワードを変更します。
    mkpasswd などの Linux ツールを使用してパスワード ハッシュを作成できます。
    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
    注: 「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 の自動インストール を参照してください。