AnsibleからREST API経由でNSX-Tを操作してみる


この投稿はAnsible 2 Advent Calendar 2019(通称裏アドベントカレンダー?)の12日めの記事です。
1週間全部俺の5回目です!

NSX-TのAnsibleモジュールがVMwareのプロジェクトで開発されています。

しかし、現状はTerraformの方がやれることが多そうです。

ただ、API経由であればモジュールが無くても対応できるので、今回はNSX-Tのモジュールを使うのではなくAnsibleからREST APIをキックしてNSX-Tの操作する例をやってみます。

環境

項目 バージョン
vCenter 6.7.0
ESXi 6.7.0
NSX-T 2.5.0
Anxible 2.9.2

NSX-T 2.5 API Document

NSX-TのAPIについて

NSX-TのREST APIはBasic認証でアクセスして操作することができます。
やりとりするデータ構造はJSONで対応可能です。
そのためAnsibleのuriモジュールで操作することが可能です。

Logical Routerを作ってみる

ここでは例としてTier0の論理ルーターを作ってみます。

Playbook

Playbookは以下のように作成してみました。(APIの仕様はコメントアウトのリンクを参照ください)

変数 説明
manage_url NSX ManagerのURL
basic_auth_info Basic認証用のアカウント情報
edge_cluster_name Tier0の論理ルーターを所属させるEdge Cluster名
tier0_params Tier0のパラメーター関連

Logical Router作成

Logical Routerを作成してみます。

Logical Routerが作成されているか確認します。

Logical Router削除

次にLogical Routerを削除してみます。

NSX ManagerのWebUIからLogical Routerが削除されていることを確認します 🙂

Tier-0 ゲートウェイを作ってみる

Playbook

Playbookは以下のように作成してみました。(APIの仕様はコメントアウトのリンクを参照ください)
Tier-0ゲートウェイでEdge Clusterを紐付けるところまでは準備できなかったので一先ず作るだけをやってみます。

変数 説明
manage_url NSX ManagerのURL
basic_auth_info Basic認証用のアカウント情報
tier0_params Tier0のパラメーター関連

Tier-0 ゲートウェイ作成

Tier-0ゲートウェイを作成してみます。

Tier-0ゲートウェイが作成されているか確認します。

Tier-0ゲートウェイ削除

次にTier-0ゲートウェイを削除してみます。

NSX ManagerのWebUIからTier-0ゲートウェイが削除されていることを確認します 🙂

最後に

REST APIを使えばモジュールが無くてもある程度は対応できそうです。
例えば、FWやLBなどの設定一気入れとか。
FWのルール変更が数百行来たときにいちいち手で入れなくてもAPI経由でサクッと入れられそうですね。
ちなみに、昔作ったFWのバックアップモジュール例を紹介しておきます 🙂

5回目は以上です!次!

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください