NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix Self-Service API で Prism Central に接続してみる。(curl)

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」→「マイ アプリ」にあるアプリの情報が取得できました。

以上。

 

©2024 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。