NSX-T 3.1.2 最小限構成のインストール方法 (3/7) ホストトランスポートノードの登録

スポンサーリンク

自宅で検証できそうなスペックに合わせたNSX-Tのインストール手順を紹介します。NSX Manager 3台, NSX Edge 2台, ESXi 2台, vCenter 1台の構成で、このページではNSX用のESXiサーバの構築方法を説明します。

このページでは廉価構成を想定していますので、ベアメタルにESXiをインストールするのではなく、ESXiの中にESXiを構築する「Nested ESXi」と呼ばれる構成の構築例を紹介します。

構築範囲

このページでは、NSX-T向けのESXiを構築し、これをNSX-T Managerに登録する方法を説明します。構築範囲を図示すると以下の範囲です。

NSX-T 構築範囲の説明

ESXiの構築

ホストOS側のポートグループ設定

Nested ESXiの構成を採用するためには、ホストOS(親OS)側で「無差別モード(プロミスキャスモード)」「MACアドレス変更」「偽装転送」を許可したポートグループを作成し、それをNested ESXi(子OS)に割り当てる必要があります。

設定方法は「Nested ESXiに必要なセキュリティ緩和設定(無差別モードの許可)」などを参照ください。

ESXi プロミスキャスモードの許可

Nested ESXiの構築

Nested ESXiを構築します。構築方法は「Nested ESXiの構築方法」などを参照ください。

CPUの設定にて、「ハードウェアアシストによる仮想化をゲストにOSに公開」のチェックを入れてください。

Nested ESXiの構築 01

後続の検証シナリオの都合上、プロミスキャスモードを有効にしたポートグループを4つ以上のvNICに割り当ててください。

Nested ESXiの構築 02

vCenter設定

vCenterにESXiを登録します。NSX-Tの仕様上、クラスタ内にESXiを登録した方が設定の小回りが効きます。

なお、クラスタのDRSやvSphere HAの要件は必須ではありません。また、共有ストレージも必須ではありません。

vCenterへの登録

NSX-T コンピュートマネージャーの登録

NSX-TにvCenterを登録します。NSX-TではvCenterを「コンピュートマネージャ」と呼んでます。

おそらくKVM ManagerなどvCenter以外の統合管理製品とも連携できる拡張を見越して、「コンピュートマネージャ」と命名したものと思われます。

「システム」「ファブリック」「コンピュートマネージャ」「コンピュートマネージャを追加」の順に押下します。

コンピュートマネージャーへの登録 01

サムプリント以外のvCenterへの接続情報を入力し、「追加」を押下します。

コンピュートマネージャーへの登録 02

サムプリントの確認を求められます。「追加」を押下します。

コンピュートマネージャーへの登録 04

「登録済」「稼働中」の表示に変わるまで待ちます。

コンピュートマネージャーへの登録 04

NSX-T ホストトランスポートノードの確認

前述のコンピュートマネージャ(vCenter)の登録により、ESXiがホストトランスポートノードとして登録されたことを確認します。NSX-Tは仮想マシンのトラフィック転送を司るマシンを「ホストトランスポートノード」と呼んでいます(この定義は正確な定義ではなく、初心者のイメージしやすさを優先した表現です)。

「ESXi」ではなく「ホストトランスポートノード」という汎用的な名前にしたのは、ESXi以外のハイパーバイザにも対応しているためです。ESXiだけでなくKVMもホストトランスポートノードとして設定することができます。また、ハイパーバイザだけでなく、RedhatやWindowsのベアメタルマシンもホストトランスポートノードとしての設定が可能で、NSX-Tと連携させることもできます。

「システム」「ファブリック」「ノード」「ホストトランスポートノード」の順に押下し、プルダウンで「vCenter名」を選びます。

ホストトランスポートノードの確認 01

ESXiが登録されていることを確認します。現時点では「未構成」「使用不可」となっていますが、問題ありません。この「未構成」「使用不可」は後続手順で解消されます。

ホストトランスポートノードの確認 02

補足説明

VIB(VMware Infrastructure Bundle)

インストール

ESXiはVIB(VMware Infrastructure Bundle)と呼ばれるパッケージをインストールすることで機能を拡張することができます。これらパッケージ群はESXiの管理画面で「管理」「パッケージ」の順に押下すると確認できます。例えば、NSX-Tのホストトランスポートノードとして機能するESXiならば、以下スクリーンショットのようなパッケージが「ホストトランスポートノード 登録」の操作時に自動的にインストールされます。

NSX-T VIBの確認

パッケージをCLIで確認するならば、以下のようにesxcliコマンドを使用します。

[root@esxi141:~] esxcli software vib list | grep -E 'nsx|vsipfwlib'
nsx-adf                        3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-cfgagent                   3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-context-mux                3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-cpp-libs                   3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-esx-datapath               3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-exporter                   3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-host                       3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-ids                        3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-monitoring                 3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-mpa                        3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-nestdb                     3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-netopa                     3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-opsagent                   3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-platform-client            3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-proto2-libs                3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-proxy                      3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-python-gevent              1.1.0-15366959                       VMware  VMwareCertified   2021-05-02
nsx-python-greenlet            0.4.14-16723199                      VMware  VMwareCertified   2021-05-02
nsx-python-logging             3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-python-protobuf            2.6.1-16723197                       VMware  VMwareCertified   2021-05-02
nsx-python-utils               3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-sfhc                       3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-shared-libs                3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsx-vdpi                       3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
nsxcli                         3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02
vsipfwlib                      3.1.2.0.0-7.0.17883598               VMware  VMwareCertified   2021-05-02

NSX-Tのインストール/アンインストール時には自動的にVIBが追加/削除されますが、強制アンインストールをするとVIBが残ってしまいます。完全に自動化されているわけではなく、時には手動による復旧も必要です。仕様理解のために一度は手作業でVIBをインストール/アンインストールしてみましょう。

まずはVIBをダウンロードします。「My VMwareのNSX-T ダウンロードページ」へアクセスします。「VMware NSX-T Data Center 3.1.2」の「ダウンロードする」を押下します。

NSX-T bundleのダウンロード 01

ESXiのバージョンに応じたVIBをダウンロードします。

NSX-T bundleのダウンロード 02

ダウンロードしたzipファイルをESXiへ転送します。転送後、esxcliコマンドでVIBをインストールします。

[root@esxi143:~] esxcli software vib install -d /tmp/nsx-lcp-3.1.2.0.0.17883598-esx70.zip 
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: VMware_bootbank_nsx-adf_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-cfgagent_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-context-mux_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-cpp-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-esx-datapath_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-exporter_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-host_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-ids_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-monitoring_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-mpa_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-nestdb_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-netopa_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-opsagent_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-platform-client_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-proto2-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-proxy_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-python-gevent_1.1.0-15366959, VMware_bootbank_nsx-python-greenlet_0.4.14-16723199, VMware_bootbank_nsx-python-logging_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-python-protobuf_2.6.1-16723197, VMware_bootbank_nsx-python-utils_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-sfhc_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-shared-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-vdpi_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsxcli_3.1.2.0.0-7.0.17883598, VMware_bootbank_vsipfwlib_3.1.2.0.0-7.0.17883598
   VIBs Removed: 
   VIBs Skipped: 

強制アンインストール

NSX-Tの停止中に操作を行うなど何らかの不整合が起きるような操作をすると、NSX-Tをアンインストールできなくなってしまうことがあります。このようなときは強制アンインストールをしますが、VIBは残存するため、VIB削除は手作業で行う必要があります。

以下操作はVIBの理解を深めるためのハンズオン目的のものです。NSX-Tのアンインストール方法は「vSphere クラスタからの NSX-T Data Center のアンインストール」という公式推奨手順がありますので、実務では公式のものを使用しましょう。

NSX-Tをアンインストールには、ホストトランスポートノードの一覧画面にて、対象のホストトランスポートノードにチェックを入れ「NSXの削除」を押下します。

NSX-T アンインストール 01

アンインストールに失敗する場合は、「強制的に削除」にチェックを入れて、強制アンインストールを試みることもできます。ただし、この場合はVIBが残ってしまいます。

NSX-T アンインストール 02

パッケージを削除するには「esxcli software vib remove」というコマンドを使用します。パッケージ間で依存関係があり複数を同時に削除しなければならないときは、複数のパッケージを同時に指定します。

esxcli software vib remove -n <パッケージ名1> -n <パッケージ名2> ...

NSX-Tに関するパッケージを複数同時削除する操作例(ワンライナー)は以下の通りです。

esxcli software vib remove \
  $(esxcli software vib list | \
  grep -E 'nsx|vsipfwlib' | \
  awk '{ printf " -n "$1 }')

削除に成功すると、「Operation finished successfully」と表示されます。

[root@esxi143:~] esxcli software vib remove \
>   $(esxcli software vib list | \
>   grep -E 'nsx|vsipfwlib' | \
>   awk '{ printf " -n "$1 }')
Removal Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: 
   VIBs Removed: VMware_bootbank_nsx-adf_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-cfgagent_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-context-mux_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-cpp-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-esx-datapath_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-exporter_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-host_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-ids_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-monitoring_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-mpa_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-nestdb_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-netopa_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-opsagent_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-platform-client_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-proto2-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-proxy_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-python-gevent_1.1.0-15366959, VMware_bootbank_nsx-python-greenlet_0.4.14-16723199, VMware_bootbank_nsx-python-logging_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-python-protobuf_2.6.1-16723197, VMware_bootbank_nsx-python-utils_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-sfhc_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-shared-libs_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsx-vdpi_3.1.2.0.0-7.0.17883598, VMware_bootbank_nsxcli_3.1.2.0.0-7.0.17883598, VMware_bootbank_vsipfwlib_3.1.2.0.0-7.0.17883598
   VIBs Skipped:

自動化

vCenter登録

コンピュートマネージャを登録するRest API操作は以下の通りです

curl --request POST -d @- \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/api/v1/fabric/compute-managers << EOF
{
  "server": "vcenter01.gokatei.go",
  "origin_type": "vCenter",
  "display_name": "vcenter01",
  "credential" : {
    "credential_type" : "UsernamePasswordLoginCredential",
    "username": "administrator@gokatei1.go",
    "password": "P@ssw0rd",
    "thumbprint": "74:6F:8C:6C:E9:96:A8:D1:2A:05:74:81:7D:45:0B:15:FB:B9:85:5E:5C:DE:0E:CF:E4:08:29:09:66:63:9D:27"
  }
}
EOF

vCenterのthumbprintが分からない場合は、thumbprintを指定せずにAPIリスエストを送ると、エラメッセージとしてthumbprintを教えてもらうことができます。

[root@ansible012 ~]# curl --request POST -d @- \
>   -u admin:P@ssw0rdP@ssw0rd \
>   --header "Content-Type:application/json" \
>   -k https://192.168.1.121/api/v1/fabric/compute-managers << EOF
> {
>   "server": "vcenter01.gokatei.go",
>   "origin_type": "vCenter",
>   "credential" : {
>     "credential_type" : "UsernamePasswordLoginCredential",
>     "username": "administrator@gokatei1.go",
>     "password": "P@ssw0rd"
>   }
> }
> EOF
{
  "httpStatus" : "BAD_REQUEST",
  "error_code" : 7057,
  "module_name" : "inventory-mgmt",
  "error_message" : "Compute manager server vcenter01.gokatei.go thumbprint input empty is not valid. Current retrieved compute manager server thumbprint is 74:6F:8C:6C:E9:96:A8:D1:2A:05:74:81:7D:45:0B:15:FB:B9:85:5E:5C:DE:0E:CF:E4:08:29:09:66:63:9D:27 . If correct, please re-submit with this thumbprint",
  "error_data" : {
    "ValidCmThumbPrint" : "74:6F:8C:6C:E9:96:A8:D1:2A:05:74:81:7D:45:0B:15:FB:B9:85:5E:5C:DE:0E:CF:E4:08:29:09:66:63:9D:27"
  }
}[root@ansible012 ~]# 

thumbprintとvCenter登録を同時に行う実装例は以下の通りです。

冪等性なし再実行不可です。エラーハンドリングが必要な方は加筆ください。

WORK_FILE=/tmp/nsx_api_work_$$

curl --request POST -d @- \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/api/v1/fabric/compute-managers \
  << EOF > ${WORK_FILE}
{
  "server": "vcenter01.gokatei.go",
  "origin_type": "vCenter",
  "credential" : {
    "credential_type" : "UsernamePasswordLoginCredential",
    "username": "administrator@gokatei1.go",
    "password": "P@ssw0rd"
  }
}
EOF

VCENTER_THUMB_PRINT=$(cat ${WORK_FILE} | jq -r ".error_data.ValidCmThumbPrint")

curl --request POST -d @- \
  -u admin:P@ssw0rdP@ssw0rd \
  --header "Content-Type:application/json" \
  -k https://192.168.1.121/api/v1/fabric/compute-managers << EOF
{
  "server": "vcenter01.gokatei.go",
  "origin_type": "vCenter",
  "display_name": "vcenter01",
  "credential" : {
    "credential_type" : "UsernamePasswordLoginCredential",
    "username": "administrator@gokatei1.go",
    "password": "P@ssw0rd",
    "thumbprint": "${VCENTER_THUMB_PRINT}"
  }
}
EOF
タイトルとURLをコピーしました