NSX-T 2.4 を REST API で操作してみる。Part.2

NSX-T 2.4 を REST API で操作してみる。Part.2

NSX-T を REST API で操作してみます。

今回は、Tier-1 論理ルータの作成です。

一連の投稿の前提/想定環境などは下記をどうぞ。

NSX-T 2.4 を REST API で操作してみる。Part.1

以前に投稿した下記の、API 操作版です。

自宅ラボで NSX-T 2.4 環境を構築する。Part.9

Tier-1 論理ルータの作成。

まず、Tier-1 論理ルータを作成するために、JSON ファイルを用意します。

その前提として、Tier-1 論理ルータを接続する NSX Edge クラスタ の ID を取得する必要があります。

オブジェクトの ID については、殆どのものが NSX Manager の Web UI からでも確認できます。

しかし、今回はあえて ID も API で取得してみます。

Edge クラスタ「edge-cluster-01」の ID を取得してみます。

なお、この Edge クラスタは、前提として作成ずみのものです。

$ curl -ks -u $CRED -X GET https://$MGR/api/v1/edge-clusters | jq -r '.results[] | select(.display_name == "edge-cluster-01") | .id'

7228228c-6d93-46be-bb7a-f5e367cf1390

ここで用意する JSON ファイルは、下記のような内容です。

赤字の部分は、環境固有の値となります。

※これ以降の JSON も含め、わかりやすいサンプルにするため、あえてオプション指定を少なくしています。

{

  "display_name": "Tier-1 論理ルータの名前",

  "router_type": "TIER1",

  "edge_cluster_id": "Edge クラスタ ID",

  "edge_cluster_member_indices": [

    0

  ],

  "high_availability_mode": "ACTIVE_STANDBY"

}

display_name と edge_cluster_id に、具体的な値を指定した JSON を作成しました。

t1-router-001.json

{

  "display_name": "t1-router-001",

  "router_type": "TIER1",

  "edge_cluster_id": "7228228c-6d93-46be-bb7a-f5e367cf1390",

  "edge_cluster_member_indices": [

    0

  ],

  "high_availability_mode": "ACTIVE_STANDBY"

}

それでは、論理ルータを作成します。

作成と同時に、レスポンス情報から作成された論理ルータの ID を取得しておきます。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./t1-router-001.json https://$MGR/api/v1/logical-routers | jq -r '.id'

b8c1e482-a6d0-47eb-aca3-315abf738c8f

作成ずみの論理ルータの ID は、下記のように取得することもできます。

$ curl -ks -u $CRED -X GET https://$MGR/api/v1/logical-routers | jq -r '.results[] | select(.display_name == "t1-router-001") | .id'

b8c1e482-a6d0-47eb-aca3-315abf738c8f

Tier-0 論理ルータとの接続。

Tier-1 論理ルータを Tier-0 論理ルータを接続(リンク)させるために、

それぞれの論理ルータにポートを作成する必要があります。

Tier-0 論理ルータ側のルータ ポート作成。

まず、Tier-0 論理ルータ側でポートを作成します。

このとき、Tier-0 論理ルータのルータ ID が必要になります。

ここで指定する Tier-0 論理ルータ「t0-router-01」は、前提として作成ずみのものです。

$ curl -ks -u $CRED -X GET https://$MGR/api/v1/logical-routers | jq -r '.results[] | select(.display_name == "t0-router-01") | .id'

64f51cf0-bdf8-49d2-8a51-309b97b6ab40

オーバーレイ論理スイッチの論理ルータ ポート作成とは異なり、

resource_type には「LogicalRouterLinkPortOnTIER0」を指定します。

t1-router-001_t0-link-port.json

{

  "display_name": "作成する Tier-0 論理ルータ側のポート名",

  "resource_type": "LogicalRouterLinkPortOnTIER0",

  "logical_router_id": "Tier-0 論理ルータの ID"

}

それでは、ポートを作成します。

作成と同時に、レスポンス情報から作成されたポートの ID を取得しておきます。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./t1-router-001_t0-link-port.json  https://$MGR/api/v1/logical-router-ports | jq -r '.id'

Tier-1 論理ルータ側のルータポート作成。

Tier-0 論理ルータ側のポートを作成した後に、Tier-1 論理ルータ側でポートを作成します。

こちらでは、下記のような指定をします。

  • logical_router_id には、この投稿の最初に作成した Tier-1 論理ルータのルータ ID を指定します。
  • resource_type では「LogicalRouterLinkPortOnTIER1」を指定します。
  • linked_logical_router_port_id では、ひとつ前の手順で作成した Tier-0 論理ルータのポート ID を指定します。

t1-router-001_t1-link-port.json

{

  "display_name": "作成する Tier-1 論理ルータ側のポート名",

  "resource_type": "LogicalRouterLinkPortOnTIER1",

  "logical_router_id": "Tier-1 論理ルータの ID",

  "edge_cluster_member_index": [

    0

  ],

  "linked_logical_router_port_id": {

    "target_id": "Tier-0 論理ルータ ポートの ID",

    "target_type": "LogicalRouterLinkPortOnTIER0",

    "is_valid": true

  }

}

作成した JSON ファイルで、論理ルータ ポートを作成します。

$ curl -ks -u $CRED -X POST -H "Content-type: application/json" -d @./t1-router-001_t1-link-port.json https://$MGR/api/v1/logical-router-ports

これで、Tier-1 論理ルータが作成され、Tier-0 論理ルータと接続された状態になりました。

NSX Manager の Web UI でも、Tier-0 ルータが接続されたことが確認できます。

nsxt-api-p02-01.png

つづく。

NSX-T 2.4 を REST API で操作してみる。Part.3

Tags (3)
Version history
Revision #:
1 of 1
Last update:
‎06-23-2019 06:02 AM
Updated by: