Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

NSX-T の Policy API をためす。Part.2(DELETE 編)

$
0
0

今回は、NSX-T のオブジェクトを、ひとつずつ Policy API で削除してみます。

 

前回ひたすら GET で確認したオブジェクトを・・・

NSX-T の Policy API をためす。Part.1(GET 編)

 

ひたすら削除して、下記の投稿の開始時点に環境を戻してみます。

自宅ラボで NSX-T 2.5 環境を構築する。Simplified UI 編。Part.1

 

今回も、Linux の curl コマンドを利用しています。

そして、必須ではありませんが便利なので jq コマンドをインストールして利用しています。

$ cat /etc/oracle-release

Oracle Linux Server release 7.7

$ jq -V

jq-1.5

 

前回と同様の変数も設定しています。

  • MGR: NSX Manager のアドレス
  • CRED: NSX Manager の「ユーザ:パスワード」 ※例はよくあるデモ用パスワード。

$ MGR=lab-nsxt-mgr-01.go-lab.jp

$ CRED='admin:VMware1!VMware1!'

 

オーバーレイ セグメントの削除。

オーバーレイ セグメント「seg-overlay-01」と「seg-overlay-01」を削除します。

セグメントの削除は、次の API です。

セグメントの表示名(display_name)ではなく、ID を指定します。

ちなみに、セグメント ID の指定は必須となっており、segments までの指定にしても全件削除はできません。

 

DELETE /policy/api/v1/infra/segments/セグメント ID

 

ここでは、VM の vNIC を接続したまま(対応する論理ポートが作成されたまま)でも削除できるように

「force=true」を指定しています。

 

オーバーレイ セグメント「seg-overlay-01」を削除します。

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/segments/seg-overlay-01?force=true

 

オーバーレイ セグメント「seg-overlay-02」を削除します。

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/segments/seg-overlay-02?force=true

 

成功した場合は、とくに標準出力はなく処理されます。

エラーが表示されずにうまくいかない場合は、

curl に -v  オプションを付与して実行すると問題がわかる場合があります。

 

DNS フォワーダの削除。

DNS フォワーダに関連するオブジェクトは、

DNS フォワーダ、DNS フォワーダ ゾーンの順に削除します。

 

DNS フォワーダ の削除。

DNS フォワーダは、Tier-1 ゲートウェイに接続しているので、

次の API で削除します。

 

DELETE /policy/api/v1/infra/tier-1s/Tier-1 ゲートウェイ ID/dns-forwarder

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-1s/t1-gw-01/dns-forwarder

 

DNS フォワーダ ゾーンの削除。

DNS フォワーダ ゾーンは、特定のゲートウェイに割り当てられないので、次の API で削除できます。

DNS フォワーダ ゾーンの ID(id)は、作成時に指定した DNS フォワーダの名前(display_name)と一致します。

 

DELETE /policy/api/v1/infra/dns-forwarder-zones/DNS フォワーダ ゾーンの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/dns-forwarder-zones/dns-zone-01

 

Tier-1 ゲートウェイの削除。

 

LocaleServices の削除。

Tier-1 ゲートウェイを削除する前に、ゲートウェイの Edge クラスタ割り当てなどを指定する

「LocaleServices」を削除しておく必要があります。

これ以降の URL で指定している LocaleServices などの ID は、前回の投稿での GET メソッドなどで確認できます。

UI で自動作成された LocaleServices の ID は、内部的なオブジェクトのためか UUID 形式です。

 

DELETE /policy/api/v1/infra/tier-1s/Tier-1 ゲートウェイの ID/locale-services/LocaleServices の ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-1s/t1-gw-01/locale-services/e69e20e0-fe12-11e9-be6c-bdb62d557eed

 

jq コマンドなどを利用して JSON をパースして ID を抽出し、

次のようなコマンドラインで削除することもできます。

$ T1_LOC_ID=$(curl -ks -u $CRED -X GET https://$MGR/policy/api/v1/infra/tier-1s/t1-gw-01/locale-services | jq -r .results[].id)

$ echo $T1_LOC_ID

e69e20e0-fe12-11e9-be6c-bdb62d557eed

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-1s/t1-gw-01/locale-services/$T1_LOC_ID

 

Tier-1 ゲートウェイの削除。

Tier-1 ゲートウェイを削除します。

 

DELETE /policy/api/v1/infra/tier-1s/Tier-1ゲートウェイの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-1s/t1-gw-01

 

DHCP サーバの削除。

DHCP を利用するゲートウェイ/セグメントが削除されたので、

DHCP サーバを削除します。

 

DELETE /policy/api/v1/infra/dhcp-server-configs/DHCP サーバの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/dhcp-server-configs/dhcp-sv-01

 

Tier-0 ゲートウェイの削除。

Tier-0 ゲートウェイの削除でも、Tier-1 ゲートウェイと同様で、

先に参照するオブジェクトを削除しておく必要があります。

 

NAT ルールの削除。

SNAT ルールを削除します。

なぜか NAT ルールの ID は、Simplified UI で作成しても UUID 形式です。

 

DELETE /policy/api/v1/infra/tier-0s/Tier-0 ゲートウェイの ID/nat/USER/nat-rules/NAT ルールの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/nat/USER/nat-rules/c149a1a0-fe14-11e9-be6c-bdb62d557eed

 

jq コマンドなどで工夫すれば、SNAT ルールを作成したときの表示名(今回は t0-snat-01)などから

ID を抽出することもできます。

$ NAT_ID=$(curl -ks -u $CRED -X GET https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/nat/USER/nat-rules | jq -r '.results[] | select(.display_name == "t0-snat-01") | .id')

$ echo $NAT_ID

c149a1a0-fe14-11e9-be6c-bdb62d557eed

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/nat/USER/nat-rules/$NAT_ID

 

スタティックルートの削除。

Tier-0 ゲートウェイのスタティック ルートを削除します。

 

DELETE /policy/api/v1/infra/tier-0s/Tier-0 ゲートウェイの ID/static-routes/ルート ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/static-routes/t0-route-01

 

インターフェースの削除。

Tier-0 ゲートウェイのインターフェースを削除します。

インターフェースは、Tier-0 ゲートウェイの LocaleServices の一部として作成されています。

 

DELETE /policy/api/v1/infra/tier-0s/Tier-0 ゲートウェイの ID/locale-services/LocaleServices の ID/interfaces/インターフェースの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/locale-services/470f1260-fe11-11e9-be6c-bdb62d557eed/interfaces/t0-uplink-01

 

ここまでのオブジェクトと同様、jq コマンドを利用する例です。

LocaleServices の ID は UI 作成時に特定できないので、工夫して取得する必要があります。

$ T0_LOC_ID=$(curl -ks -u $CRED -X GET https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/locale-services | jq -r .results[].id)

$ echo $T0_LOC_ID

470f1260-fe11-11e9-be6c-bdb62d557eed

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/locale-services/$T0_LOC_ID/interfaces/t0-uplink-01

 

LocaleServices の削除。

Tier-0 ゲートウェイの LocaleServices を削除します。

インターフェース削除の際に取得した LocaleServices ID を指定しています。

 

DELETE /policy/api/v1/infra/tier-0s/Tier-0 ゲートウェイの ID/locale-services/LocaleServices の ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01/locale-services/$T0_LOC_ID

 

Tier-0 ゲートウェイの削除。

他のオブジェクトからの参照がなくなったので、Tier-0 ゲートウェイを削除します。

 

DELETE /policy/api/v1/infra/tier-0s/Tier-0 ゲートウェイの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/tier-0s/t0-gw-01

 

VLAN セグメントの削除。

最後に、NSX-T 外部ネットワークとの境界にしていた VLAN セグメントを削除します。

削除の API は、オーバーレイ セグメントと同じものです。

 

DELETE /policy/api/v1/infra/segments/セグメントの ID

$ curl -ks -u $CRED -X DELETE https://$MGR/policy/api/v1/infra/segments/seg-vlan-0200

 

ひととおり Simplified UI から作成したオブジェクトを削除したので、

次は、Policy API でオブジェクトを作成してみます。

 

以上、NSX-T Policy API でオブジェクトを削除する話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>