VMware NSX(以降、NSX と表記) は、 Broadcom が提供するネットワーク仮想化ソリューションです。
NSXを使用すると、複数のVMware ESXi(以降、ESXi と表記) 間で、物理ネットワーク機器の設定変更無しでレイヤー2ネットワークを構築できます。同様にルーティングも ESXi 上で行われます。
また、セキュリティ面でも、分散ファイアウォールや分散 IDS/IPS 機能によって、仮想マシンが別の ESXi に移行しても同じセキュリティポリシーを維持できます。
これらの機能は全て NSX Manager から設定を行います。本記事では、 NSX Manager のデプロイをほぼ自動で行えるように、コマンドラインツールである OVFTool を利用してデプロイをする方法をご案内します。
OVFTool のダウンロード
VMware 製品のダウンロードサイトは Broadcom のサポートポータルに移管されていますが、OVFTool は サポートポータルへログインせずに、以下の URL からダウンロード可能です。
Open Virtualization Format (OVF) Tool
本記事では Windows 上でOVFTool を利用します。MSI と Zip で提供されていますが、今回は Zip ファイルをダウンロードします。
ダウンロードした Zip ファイルを解凍します。
OVFTool で NSX Manager のデプロイ
コマンドプロンプトを開いて解凍されたフォルダに移動します。
cd C:\Users\Administrator\Downloads\ovftool
以下のコマンドを実行します。
※ 長いコマンドのため「^」を入れて見やすくしています。改行していますが一行のコマンドとして認識されます。
ovftool ^ --name=<仮想マシン名> ^ --deploymentOption=<デプロイサイズ> ^ --X:injectOvfEnv ^ --X:logFile=ovftool.log ^ --allowExtraConfig ^ --datastore=<データストア名> ^ --network="<ポートグループ>" ^ --acceptAllEulas ^ --noSSLVerify ^ --diskMode=thin ^ --powerOn ^ --prop:"nsx_role=NSX Manager" ^ --prop:"nsx_ip_0=<管理IPアドレス" ^ --prop:"nsx_netmask_0=<サブネットマスク>" ^ --prop:"nsx_gateway_0=<デフォルトゲートウェイ" ^ --prop:"nsx_dns1_0=<DNSアドレス>" ^ --prop:"nsx_domain_0=<ドメイン名>" ^ --prop:"nsx_ntp_0=<NTPサーバ>" ^ --prop:"nsx_isSSHEnabled=True" ^ --prop:"nsx_allowSSHRootLogin=True" ^ --prop:"nsx_passwd_0=<パスワード>" ^ --prop:"nsx_cli_passwd_0=<パスワード>" ^ --prop:"nsx_hostname=ホスト名" ^ <OVA ファイルの絶対パス> ^ vi://<vcenterログインユーザ名>:<vCenterパスワード>@<vCenter IPアドレス>:443/?ip=<ESXi IPアドレス>
なお、コマンド入力の際に「^」の後ろにスペースが入っていると以下のエラーが表示されて実行できないため、ご注意ください。
Error: No source or target specified. Try 'ovftool --help' for more options. Completed with errors
オプションの詳細について以下の表にまとめました。
オプション | 説明 |
---|---|
--name=<仮想マシン名> | デプロイされる仮想マシン名を指定します。 |
--deploymentOption | NSX Manager のデプロイサイズを指定します。extra_small/small/medium/large の4種類から指定可能です。 |
--X:injectOvfEnv | ESXi を指定して展開する場合に OVF プロパティを挿入します。 |
--X:logFile=<ログファイルパス> | ログファイルの保存場所、ファイル名を指定します。指定しない場合は zip ファイルの解凍先フォルダに保存されます。 |
--allowExtraConfig | OVF プロパティの指定をできるようにします。 |
--datastore=<データストア名> | 展開先のデータストア名を指定します。 |
--network="<ポートグループ>" | 展開先のポートグループを指定します。 |
--acceptAllEulas | すべての使用許諾契約書を承諾します。 |
--noSSLVerify | vSphere 接続時の SSL 検証をスキップします。 |
--diskMode=thin | 仮想マシンディスクのフォーマット(thin or thick)を指定します。 |
--powerOn | デプロイ完了後に仮想マシンを起動します。 |
--prop:"nsx_role=<NSXManagerロール>" | NSX Manager のロールを指定します。"NSX Manager","nsx-cloud-service-manager","NSX Global"のいずれかを指定可能です。 |
--prop:"nsx_ip_0=<管理IPアドレス>" | NSX Manager の管理 IP アドレスを指定します。 |
--prop:"nsx_netmask_0=<サブネットマスク>" | 管理 IP アドレスのサブネットマスクを指定します。 |
--prop:"nsx_gateway_0=<デフォルトゲートウェイ>" | デフォルトゲートウェイを指定します。 |
--prop:"nsx_dns1_0=<DNSアドレス>" | DNS サーバを指定します。 |
--prop:"nsx_domain_0=<ドメイン名>" | ドメインサーチリストを指定します。複数指定する際はスペースで区切ります。 |
--prop:"nsx_ntp_0=<NTPサーバ>" | NTP サーバを指定します。複数指定する際はスペースで区切ります。 |
--prop:"nsx_isSSHEnabled=True" | SSH ログインを有効にします。True(有効) or False(無効)で指定します。 |
--prop:"nsx_allowSSHRootLogin=True" | Root ユーザの SSH ログインを有効にします。True(有効) or False(無効)で指定します。 |
--prop:"nsx_passwd_0=<パスワード>" | Root ユーザのパスワードを指定します。以下のパスワード条件を満たす必要があります。 12 文字以上 1 文字以上の小文字 1 文字以上の大文字 1 文字以上の数字 1 文字以上の特殊文字 5 文字以上の異なる文字 |
--prop:"nsx_cli_passwd_0=<パスワード>" | admin ユーザのパスワードを指定します。以下のパスワード条件を満たす必要があります。 12 文字以上 1 文字以上の小文字 1 文字以上の大文字 1 文字以上の数字 1 文字以上の特殊文字 5 文字以上の異なる文字 |
--prop:"nsx_hostname=ホスト名" | ホスト名を指定します。 |
<OVAファイルの絶対パス> | NSX Manager OVA ファイルの保存場所を指定します。 例:C:\Users\Administrator\Downloads\nsx-unified-appliance-4.1.1.0.0.22224317.ova |
vi://<vcenterログインユーザ名>:<vCenterパスワード>@<vCenterIPアドレス>:443/?ip=<ESXiIPアドレス> | 展開先となる vCenter と ESXi を指定します。 |
コマンド入力後、プロンプトに表示されるログサンプルは以下の通りです。実際に出力されたログを一部マスクして表示します。
Opening OVA source: C:\Users\Administrator\Downloads\nsx-unified-appliance-4.1.1.0.0.22224317.ova The manifest validates Source is signed but could not verify certificate (possibly self-signed) Certificate information: CertIssuer:/C=US/ST=California/L=Palo Alto/O=VMware, Inc. CertSubject:/C=US/ST=California/L=Palo Alto/O=VMware, Inc. -----BEGIN CERTIFICATE----- (中略) -----END CERTIFICATE----- Opening VI target: vi://(vCenter URL) Deploying to VI: vi://(vCenter URL) Transfer Completed Powering on VM: (VM Name) Task Completed Task Completed Completed successfully
動作確認
NSX Manager に https でアクセスしてログインします。 画面が表示されることを確認します。
おわりに
今回は、 NSX Manager を例にして OVFTool を利用した仮想マシンのデプロイをご紹介しました。
コマンドを一度用意しておくと、検証目的で同じ仮想マシンを何度もデプロイする場合に非常に便利です。
また、NSX Manager の場合は設定をリストアする際に新規デプロイされた NSX Manager を用意する必要があるため、今回の方法を利用するとより短時間でリストア可能になります。
検証用途でも本番用途でも汎用的に使えるツールなので、利用する際は本記事が参考になれば幸いです。