NTNX>日記

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

NDB のプロファイル ID を REST API で取得してみる。

Nutanix Database Service(NDB)の REST API で DB をプロビジョニングやクローン作成する場合には、プロファイルを UUID で指定します。

しかし、NDB の Web UI からはプロファイル ID を確認できないので、REST API でまとめて取得してみます。

今回の環境

今回も、これまで利用してきた自宅の NDB Server(lab-ndb-01.go-lab.jp)を利用します。

REST API は、Linux マシンの curl と jq(これは追加インストール)を利用して実行します。

[root@lab-linux-02 ~]# cat /etc/oracle-release
Oracle Linux Server release 8.7
[root@lab-linux-02 ~]# rpm -qf $(which curl)
curl-7.61.1-25.el8.x86_64

jq は追加インストールしてあります。Oracle Linux 8 ではデフォルトで ol8_appstream(Application Stream)リポジトリからインストールできますが、他の Linux ディストリビューションでは EPEL リポジトリなどからインストールできるはずです。

[root@lab-linux-02 ~]# dnf install -y jq
[root@lab-linux-02 ~]# rpm -qf $(which jq)
jq-1.6-3.el8.x86_64

REST API でのプロファイル情報の取得

NDB REST API のリファレンスは、NDB Web UI の REST API Explorer か、下記リファレンスで確認できます。そしてGET /profiles で情報取得できるとわかります。

curl のオプション指定を簡潔にするため、NDB Server のアドレスと認証情報を変数に格納しておきます。

[root@lab-linux-02 ~]# NDB=lab-ndb-01.go-lab.jp
[root@lab-linux-02 ~]# CRED='admin:nutanix/4u'

プロファイルは、下記のようになコマンドラインで取得できます。

[root@lab-linux-02 ~]# curl -ks -u "$CRED" --url "https://$NDB/era/v0.9/profiles"

さらに下記のように Python や jq などを利用することで、出力される JSON データを整形できます。

Python3

[root@lab-linux-02 ~]# curl -ks -u "$CRED" --url "https://$NDB/era/v0.9/profiles" | python3 -m json.tool

jq

[root@lab-linux-02 ~]# curl -ks -u "$CRED" --url "https://$NDB/era/v0.9/profiles" | jq -r .

ただし、このままではプロファイル全体の情報取得になるため、大量に出力されてしまいます。

[root@lab-linux-02 ~]# curl -ks -u "$CRED" --url "https://$NDB/era/v0.9/profiles" | python3 -m json.tool | nl | tail
  3147                      "UNDO_TABLESPACE": "1024",
  3148                      "TEMP_TABLESPACE": "256",
  3149                      "PROCESSES": "300",
  3150                      "MEMORY_TARGET": "512",
  3151                      "NLS_TERRITORY": "AMERICA"
  3152                  }
  3153              }
  3154          ]
  3155      }
  3156  ]

そこで jq コマンドを利用して、下記に絞った出力にしてみます。

  • プロファイル ID
  • プロファイルの種類
  • プロファイル名

Compute、Database_Parameter、Network、Software のほかに、Storage プロファイルも作成されていることがわかります。

[root@lab-linux-02 ~]# curl -ks -u "$CRED" --url "https://$NDB/era/v0.9/profiles" | jq -r '.[] | [.i
d, .type, .name] | @csv'
"a1c3033d-f999-47b2-8565-feced1a33503","Storage","DB_DEFAULT_STORAGE_PROFILE"
"1d907076-4653-4e4e-a870-11d1e4e07f35","Compute","DEFAULT_OOB_COMPUTE"
"70700ae6-fa63-4841-8b7a-183f03806b55","Compute","DEFAULT_OOB_SMALL_COMPUTE"
"108cd28b-385a-4d0d-adec-eb81dcf5d4a0","Database_Parameter","DEFAULT_ORACLE_PARAMS"
"038103f2-6704-45a0-a297-33d066463bab","Database_Parameter","DEFAULT_POSTGRES_PARAMS"
"694dd3a8-8297-4477-a2d5-3958960f368f","Database_Parameter","DEFAULT_POSTGRES_HA_PARAMS"
"537aa45e-aa65-44c3-8c94-4f1ec11846f4","Database_Parameter","DEFAULT_SQLSERVER_INSTANCE_PARAMS"
"389fdf15-c81b-4aa7-b7d5-d6c11c597246","Database_Parameter","DEFAULT_SQLSERVER_DATABASE_PARAMS"
"a09c9eb3-9c5f-4d5f-a676-86194cca76d5","Database_Parameter","DEFAULT_MARIADB_PARAMS"
"06991466-c839-459a-8fce-9a42b3a61cb1","Database_Parameter","DEFAULT_MYSQL_PARAMS"
"cb986891-4bb5-4bd5-b58d-22dadb98a4e6","Database_Parameter","DEFAULT_SAPHANA_PARAMS"
"de595b57-f8b2-4f7b-ba60-7c4f56bc9b20","Database_Parameter","DEFAULT_MONGODB_PARAMS"
"b24d694f-db0a-4ab0-b29f-5099945337c4","Network","DEFAULT_OOB_ORACLE_NETWORK"
"f910bb46-ec1f-41a2-8618-bdc0fdec763f","Network","DEFAULT_OOB_MONGODB_NETWORK"
"930a292f-788e-4f86-bc05-42b01071eccd","Network","DEFAULT_OOB_SQLSERVER_NETWORK"
"621b5be0-12e7-4e4c-8018-7c22b6733f7d","Network","DEFAULT_OOB_MARIADB_NETWORK"
"1005a5ea-b208-4f75-8316-a32592fc1498","Network","DEFAULT_OOB_POSTGRESQL_NETWORK"
"cb83b2c1-9c8a-4052-9f74-29ea8b2c4954","Network","DEFAULT_OOB_MYSQL_NETWORK"
"33e0631b-0f20-4759-98f7-50affe1261fe","Software","POSTGRES_10.4_OOB"
"d1a19fcb-aa82-4ee1-b177-c4ee8c2965d2","Software","POSTGRES_10.4_HA_ENABLED_OOB"
"ef500e20-b3d3-4885-9d69-011455fbfae5","Software","MARIADB_10.3_OOB"
"d05fa7eb-5703-4da8-bce4-b88cf53a203f","Software","MYSQL_8.0_OOB"
"cc1bfb97-bfe3-4cb9-bff9-7be346b54b91","Software","MONGODB_4.4_OOB"
"241340d5-5354-48e2-a6df-facc59d4530e","Software","oracle-19c-si"
"aaa1de12-9fbb-4b1d-badb-cc9d4cc6b94a","Compute","compute_2cpu_8mem"
"612f2d7c-7b82-477b-a729-9f0aec9ed6d5","Database_Parameter","db-param-profile-oracle-01"
"ec9327ce-04d5-4bc3-b470-8535da548082","Database_Parameter","db-param-profile-oracle-02"

これで、API 操作で必要になるプロファイルの UUID(.id)が確認できるはずです。

以上。

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