VMware NSX API (3) ~ IP Pool 作成 & NSX Controller デプロイ & ESXi Hosts の準備 ~

VMware NSX API (3) ~ IP Pool 作成 & NSX Controller デプロイ & ESXi Hosts の準備 ~

NSX API を連載紹介する第3弾として、IP Pool や NSX Controller、 ESXi Hosts の Preparation を NSX API を用いた構成方法をご紹介したいと思います。もちろん通常通り GUI ベースの構成も可能ですが、繰り返し行うような作業には、スクリプトを組んで、CLI ベースの構成やオペレーションが役に立つと思います。

NSX コンポーネントデプロイ の流れ

前回 は、NSX API を用いた (1) NSX Manager CLI Deploy と (2) Register with vCenter をご紹介させていただきましたが、既に NSX Manager のデプロイは終了しているので、以降は NSX API を用いた Programable な操作を行うことができます。

今回は、(3) Deploy NSX Controllers (+ IP Pool 作成) と ④ Prepare Hosts を、 NSX API を用いて実装する方法 についてご紹介していきます。

NSX コンポーネントデプロイ順 参照元:VMware® NSX for vSphere ( NSX-V ) Network Virtualization Design Guide

NSX Controller について

NSX Controller は、NSX Manager からの操作を各 ESXi ホストに伝達 したり、論理ネットワーク(Distributed Logical Switch / Distributed Logical Router)の 各種テーブル(ARP, MAC,VTEP)情報を集中管理 するコンポーネントです。
仮想アプライアンスとして NSX Manager から提供され、冗長性 や 負荷分散、スプリットブレイン などを考慮した(Versionにもよりますが)3台構成が基本 となります。

NSX Controller や NSX Edge Service Gateway などの 仮想アプライアンスのファイル (OVF) は、NSX Manager 内に格納されているので、別途 OVF ファイルをダウンロードする必要はありません。

IP Pool 作成 ( NSX API )

NSX Controller が使用するIPアドレスは、IP Pool から割り当てる ため、事前に作成する必要 があります。
※POSTする場合、Content-Type を application/xml に設定することもお忘れないように!

【IP Pool 作成】

Request : POST https://NSX-Manager-IP-Address/api/2.0/services/ipam/pools/scope/globalroot-0

Request Body は以下の実行画面を参考にしてください。
それぞれの入力項目は下記の通りです。

  • name       IP Pool につける名前
  • prefixLength  CIDR (サブネット値)
  • gateway    ゲートウェイのアドレス
  • startAddress  IP レンジ の最初の IP アドレス
  • endAddress    IP レンジの最後の IP アドレス

NSX IP Pool 作成 : NSX API 実行画面

NSX Controller デプロイ (NSX API)

それでは、NSX Controller Deploy を NSX API から実行していきましょう。

Deploy に必要な情報をパラメーターとして入力していきますが、仮想アプライアンスの展開先となる Cluster、Datastore、PortGroup の指定 の際に、それぞれの Object ID (MOID) を使用するため、事前に調べておきましょう。(調べ方は【 VMware NSX API (1) ~NSX & vCenter Object ID の調べ方~ 】をご覧ください)

事前に調べた Object ID をもとに、次の実行例にならって、NSX Controller をデプロイ します。
また、NSX Controller は 一台ずつデプロイ しましょう。他の NSX Controller をデプロイ中は、別の NSX Controller のデプロイはできません。

【 NSX Controller Deploy 】

Request : POST https://NSX-Manager-IP-Address/api/2.0/vdn/controller

Request Body は以下の実行画面を参考にしてください。
それぞれの入力項目は下記の通りです。

  • name        NSX Controller の名前
  • ipPoolId       IP Pool の MOID
  • clusterId      NSX Controller を展開する Cluster の MOID
  • resourcePoolId  Resource Pool または、Cluster の MOID(今回の例では、clusterId を指定)
  • datastoreId    NSX Controller のファイルを格納する Datastore の MOID
  • deployType     NSX Controller のリソースサイズ(指定可能オプション:small | medium | large )

※NSX API で指定可能なのは medium のみ です。本来であれば、small や medium、large を指定することで、メモリサイズを変更できるのですが、現状 medium 以外はエラーが返ってきます。

NSX Controller デプロイ : NSX API 実行画面

三台分繰り返した結果、vSphere Web Client 上に、以下のように表示されます。

※画像の結果は、何度か NSX Controller を作り直しているため、controller-3 ~ controller-5 で作成されています。

NSX Controller デプロイ : vSphere Web Client 画面

Host Preparation について

次に、Host Preparation を行います。日本語だと「ホストの準備」です。

デフォルトでは、ESXi には NSXコンポーネントが含まれていないので、Host Preparation でインストールします。基本的には、インストールする Cluster を指定 すると 後は自動的にシステムが処理 してくれます。

システム内部では、NSX Manager が保持する NSX 用の vSphere Installation Bundles (VIB) を、Cluster 内の各 ESXi ホストにインストール してくれています(ちなみに、NSX Manager から VIB をダウンロードして、コマンドで ESXi にインストールすることもできます)。

NSX 用の VIB をインストールすることにより、Distributed Logical Switch (VXLAN)、Distributed Logical Router (DLR)、分散ファイアウォール (DFW)、および通信に使用する ユーザー ワールド エージェント (UWA) 機能を ESXi に追加できます。

Host Preparation ( NSX API )

それでは、Host Preparation を NSX API で行ってみたいと思います。

【 Host Preparation 】

Request : POST https://NSX-Manager-IP-Address/api/2.0/nwfabric/configure

Request Body は以下の実行画面を参考にしてください。
それぞれの入力項目は下記の通りです。

  • resourcePoolId    Cluster の MOID

NSX Host Preparation : vSphere Web Client 画面

まとめ

今回は、IP Pool / NSX Controller / Host Preparation の NSX API を用いた構成方法 をご紹介させて頂きました。
これで土台が完成!…と言いたいところですが、土台完成までにはもう少し構成する必要があります。続きは次回ご紹介させていただきます!

次回は、VTEP 作成 / Segment ID Pool 作成 / Transport Zone 作成 についてご紹介します。

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。