Nutanix Self-Service API で Self Service を操作するため、Prism Central に接続してみます。今回は接続確認として、展開されているアプリの一覧を curl で取得してみます。
今回の内容です。
今回の環境
Prism Central / Self Service は、前回の投稿と同じ環境を利用しています。
curl も、前回利用した Linux マシン(Rocky Linux 8)から実行します。
[demo@vm-0-241214-021130 ~]$ cat /etc/rocky-release Rocky Linux release 8.9 (Green Obsidian)
取得できるデータは大量なので、必要な部分のみ抽出しやすいように jq コマンドを併用します。jq は下記のようにインストールしてあります。
$ sudo dnf install jq -y
REST API URL とメソッドの確認
下記の投稿でも紹介したように、Nutanix Self-Service API の API Explorer は、Prism Central で確認できます。
Self Service のアプリは、API では Apps(apps)という名前です。
Self Service アプリの一覧は「POST /apps/list」で取得できます。
Nutanix Self-Service API での Self Service 接続(curl)
curl による Self Service への接続確認として、アプリの情報を取得してみます。
まず、curl コマンドを実行しやすくするため、Prism Central への接続情報を変数に格納しておきます。PC、SSUSER、SSPASS
[demo@vm-0-241214-021130 ~]$ PC=lab-nxpc-01.go-lab.jp [demo@vm-0-241214-021130 ~]$ SSUSER=admin [demo@vm-0-241214-021130 ~]$ SSPASS='パスワード'
下記のように、curl で REST API をコールします。
curl -k -s -X 'POST' \ --url "https://$PC:9440/api/nutanix/v3/apps/list" \ -u "$SSUSER:$SSPASS" \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{}'
さらに、フィルタリングと表示整形のために、jq を利用します。。
curl -k -s -X 'POST' \ --url "https://$PC:9440/api/nutanix/v3/apps/list" \ -u "$SSUSER:$SSPASS" \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{}' \ | jq -r '.entities[] | { "name":.metadata.name, "source_bp": .status.resources.source_marketplace_name, "bp_version": .status.resources.source_marketplace_version, "project":.metadata.project_reference.name, "uuid":.metadata.uuid}'
実際に実行すると、下記のようにアプリの情報が取得できます。
[demo@vm-0-241214-021130 ~]$ curl -k -s -X 'POST' \ > --url "https://$PC:9440/api/nutanix/v3/apps/list" \ > -u "$SSUSER:$SSPASS" \ > -H 'accept: application/json' \ > -H 'Content-Type: application/json' \ > -d '{}' \ > | jq -r '.entities[] | { > "name":.metadata.name, > "source_bp": .status.resources.source_marketplace_name, > "bp_version": .status.resources.source_marketplace_version, > "project":.metadata.project_reference.name, > "uuid":.metadata.uuid}' { "name": "rocky-02", "source_bp": "Rocky BP", "bp_version": "1.0.0", "project": "Project-01", "uuid": "da2ef557-b4a9-423f-885c-619aef4f7fe5" } { "name": "rocky-01", "source_bp": "Rocky BP", "bp_version": "1.0.0", "project": "Project-01", "uuid": "95d281bf-01ba-47c5-8c87-1292edcd1634" } { "name": "Self Service", "source_bp": "Self Service", "bp_version": "3.8.1", "project": "_internal", "uuid": "49b9b7b8-c704-499b-b4d7-ca3b2741a9f5" } { "name": "Infrastructure", "source_bp": "Infrastructure", "bp_version": "", "project": "_internal", "uuid": "11b9d7f5-3e44-45dc-8d92-d7e5932a9a9a" }
Prism Central の「Admin Center」→「マイ アプリ」にあるアプリの情報が取得できました。
以上。