ドキュメントや REST API Explorer などを確認していると、Nutanix の REST API には、少なくとも 2種類の URL があるようです。
- /PrismGateway/services/rest/バージョン/
- /api/nutanix/バージョン/
そこで、それぞれの URL で、Nutanix CE の Prism Element と Prism Central から情報取得できるか試してみました。
今回の確認方法
使用した Nutanix CE のバージョンは下記です。
- Nutanix CE 2020.09.16(Prism Element)
- Prism Central pc.2020.09.16
どのバージョンにもある、GET /vms にて情報取得できるか試してみました。ただし、v3 だけは GET /vms が存在しないので、POST /vms/list です。
下記のように curl で API コールしてみました。
まずは接続情報を変数に格納して・・・
[gowatana@infra-jbox-01 ~]$ USER=admin [gowatana@infra-jbox-01 ~]$ PASS='パスワード' [gowatana@infra-jbox-01 ~]$ PE='lab-nxce-01.go-lab.jp' [gowatana@infra-jbox-01 ~]$ PC='lab-nxpc-01.go-lab.jp'
curl で、ひたすら API コールしていきます。
Prism Element 宛($PE)。最初の /PrismGateway/services/rest/v3 は情報取得できていません。
[gowatana@infra-jbox-01 ~]$ curl -ks -u "$USER:$PASS" -X POST -d '{}' -H "Content-Type: application/json" https://$PE:9440/PrismGateway/services/rest/v3/vms/list | jq -r . | head [gowatana@infra-jbox-01 ~]$ [gowatana@infra-jbox-01 ~]$ curl -ks -u "$USER:$PASS" -X POST -d '{}' -H "Content-Type: application/json" https://$PC:9440/api/ nutanix/v3/vms/list | jq -r . | head { "api_version": "3.1", "metadata": { "total_matches": 13, "kind": "vm", "length": 13, "offset": 0 }, "entities": [ { [gowatana@infra-jbox-01 ~]$
Prism Central 宛($PC)も同様に確認していきます。
[gowatana@infra-jbox-01 ~]$ curl -ks -u "$USER:$PASS" -X POST -d '{}' -H "Content-Type: application/json" https://$PC:9440/Pris mGateway/services/rest/v3/vms/list | jq -r . | head [gowatana@infra-jbox-01 ~]$ [gowatana@infra-jbox-01 ~]$ curl -ks -u "$USER:$PASS" -X POST -d '{}' -H "Content-Type: application/json" https://$PC:9440/api/ nutanix/v3/vms/list | jq -r . | head { "api_version": "3.1", "metadata": { "total_matches": 13, "kind": "vm", "length": 13, "offset": 0 }, "entities": [ { [gowatana@infra-jbox-01 ~]$
結果
下記のような感じでした。
- v8.0 は、Prism Element のみで利用可能。
- v2 は、なぜか v2.0 と指定する必要あり。
- v2 は、Prism Central では利用不可。
- v3 は、/api/nutanix/v3 のみ利用可能。
Prism | Version | URL | 結果 |
Element | v0.8 | /PrismGateway/services/rest/v0.8 | OK |
Element | v0.8 | /api/nutanix/v0.8 | OK |
Element | v1 | /PrismGateway/services/rest/v1 | OK |
Element | v1 | /api/nutanix/v1 | OK |
Element | v2 | /PrismGateway/services/rest/v2.0 | OK |
Element | v2 | /api/nutanix/v2.0 | OK |
Element | v3 | /PrismGateway/services/rest/v3 | NG |
Element | v3 | /api/nutanix/v3 | OK |
Central | v0.8 | /PrismGateway/services/rest/v0.8 | NG |
Central | v0.8 | /api/nutanix/v0.8 | NG |
Central | v1 | /PrismGateway/services/rest/v1 | OK |
Central | v1 | /api/nutanix/v1 | OK |
Central | v2 | /PrismGateway/services/rest/v2.0 | NG |
Central | v2 | /api/nutanix/v2.0 | NG |
Central | v3 | /PrismGateway/services/rest/v3 | NG |
Central | v3 | /api/nutanix/v3 | OK |
以上。