nsxt_restというNSX-TのAnsibleモジュールを作ってみた


既存のNSX-TのAnsibleモジュールで対応していないオペレーションに対して柔軟に対応できるよう nsxt_rest というモジュールを作ってみました。
このモジュールはNSX-TのREST APIを簡単に実行できるモジュールです。
ここでは、モジュールの使い方とNSX-T APIの調査方法について説明したいと思います。

ansible-for-nsxt

nsxt_rest

一応、PRはしていますがマージしてくれるかは微妙かも..。
正直、このリポジトリは活発に動いてるのか分からないけど、今後の発展に期待。

環境

項目 バージョン
Python 3.6.8
Ansible 2.9.7

準備

前提

以下が実行済みであることが前提となります。

モジュールのダウンロード

モジュールをダウンロードします。

これで準備完了です 🙂

モジュールがサポートしているパラメーター

以下は、共通パラメーター(hostnameやpasswordなど)以外のnsxt_restがサポートしているパラメーターです。

パラメーター 説明
method HTTPメソッド(get,post,put,patch,delete)を指定します
path APIをコールするURIを指定します
src payloadが書かれたファイルのパスを指定します(srcを使う場合はcontentが無視されます)
content payloadを直接指定します

実行

ここでは、簡単なセグメントの作成、変更、削除をやってみようと思います。
※ちなみに、セグメントを作るモジュールは既存で存在しています
※セグメントのオペレーションを例にしたのは、シンプルで分かりやすいと思ったからです

セグメントの作成

作成用のPlaybookを作ります。

これを実行します。

このように作成したセグメント情報が戻り値で返ってきます。

以下は、トランスポートゾーンとVLANを指定して作成した時の例です。

これを実行します。

セグメント情報の変更

変更する場合は、contentまたはsrcのJSONを変更して実行すればいいです。

セグメントの削除

セグメントの削除は delete メソッドを使用します。

実行します。

これで、セグメントが削除されました 🙂

NSX-T REST APIの調査方法

REST APIドキュメントを見る

NSX-T 3.0のREST APIドキュメントは、マネージャーにバンドルされています。
以下のように参照できます。

NSX-T REST APIドキュメント確認方法 from sky_joker on Vimeo.

Chromeのデベロッパーツールを使う

最初のうちはドキュメントを見ただけでは、実際にやりとりしている内容やJSON構造のイメージが付かないかもしれません。
そこで、GUIでやった操作をChromeのデベロッパーツールを使ってどのURIに対してどういったpayloadが送信されたのか確認することができます。

次の動画では、セグメントを追加するオペレーションを実行し、実際にリクエストされたURIとメソッドおよびpayloadについて確認している例です。

NSX-T REST APIのリクエストをGoogle Chromeのデベロッパーツールを使って確認する from sky_joker on Vimeo.

このように、リクエスト先のURIとメソッドとpayloadが分かれば nsxt_rest で簡単にAPIを実行することができます 🙂

Leave a Reply

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

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