NSX では、API ガイドが公開されています。
NSX vSphere API Guide NSX 6.2 for vSphere
http://pubs.vmware.com/NSX-62/topic/com.vmware.ICbase/PDF/nsx_62_api.pdf
ためしに API を NSX Manager に実行してみたいのですが、
残念ながら NSX は評価版が一般公開されていません。
しかし、VMware Hands-on Labs(HoL)では NSX 環境を使用することができるので、そこで試してみようと思います。
VMware Hands-on Labs
http://labs.hol.vmware.com/HOL/catalogs/
HoL の Lab のうち、今回は「HOL-SDC-1603 VMware NSX Introduction」を使用します。
HOL-SDC-1603 VMware NSX Introduction の環境
HoL の NSX Manager のアドレスは、Web Client の
「Networking & Security」→「Installation」→「Management」タブ
を開くと確認できます。「192.168.110.15」が NSX Manager です。
この環境には、Web ブラウザの REST Cliet などがみあたらなかったので
vCenter(VCSA)の curl コマンドから API を実行してみます。
VCSA「vcsa-01a.corp.local」には、PuTTY から SSH でログインできます。
curl コマンドでの API 実行
API を実行する場合は、直接入力だとつらいので HoL の「テキストの送信」機能を使用します。
これで手元に、実行したコマンドラインや XML ファイルを残すことができます。
ためしに API から、論理スイッチを表示 / 作成してみます。
論理スイッチの表示
API ガイドを参考にして、下記のコマンドラインを実行してみました。
- 論理スイッチは、「virtualwires」と指定します。※以前はこう呼ばれていました。
- XML 表示を整形するために、パイプで xmllint をつけています。
- 出力内容が多いので、パイプで more をつけています。
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/vdn/scopes/vdnscope-1/virtualwires | xmllint --format - | more
下記のような感じで、論理スイッチの情報が XML で表示されます。
表示量が多いので、とりあえず「| grep name」で絞ってみました。
Web Client からみた 論理スイッチ(Logical Switches)と同じ情報です。
論理スイッチの作成
「LS-test-01」という論理スイッチを作成してみます。
論理スイッチの作成は、表示とは異なり、XML ファイルを読み込ませます。
ls-test.txt ファイルの内容
<virtualWireCreateSpec>
<name>LS-test-01</name>
<description>Test LS</description>
<tenantId>virtual wire tenant</tenantId>
<controlPlaneMode>UNICAST_MODE</controlPlaneMode>
<guestVlanAllowed>false</guestVlanAllowed>
</virtualWireCreateSpec>
このファイルは、下記のように作成します。
cat <<EOF > ls-test.txt
<virtualWireCreateSpec>
<name>LS-test-01</name>
<description>Test LS</description>
<tenantId>virtual wire tenant</tenantId>
<controlPlaneMode>UNICAST_MODE</controlPlaneMode>
<guestVlanAllowed>false</guestVlanAllowed>
</virtualWireCreateSpec>
EOF
そして、下記のようにコマンドラインを実行します。
cat ls-test.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/2.0/vdn/scopes/vdnscope-1/virtualwires
実行する様子は、このようになります。
これで、論理スイッチが作成されました。
Web Client でも、論理スイッチの作成が確認できます。
このような感じで、HoL でも NSX API を実行できます。
以上、HoL で NSX API を試してみる話でした。