NTNX>日記

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

NDB で DB と DB サーバ VM を削除してみる。(REST API & curl 編)

Nutanix Database Service(NDB)でプロビジョニングした PostgreSQL の DB と DB サーバ VM を、REST API から削除してみます。

今回の内容です。

構成のイメージです。

今回の環境

下記のようにプロビジョニングしてある DB と DB サーバを削除します。

curl コマンドは、Linux マシンで実行します。

[root@lab-linux-02 ~]# cat /etc/oracle-release
Oracle Linux Server release 8.7

Linux マシンには、jq コマンドをインストールしてあります。

[root@lab-linux-02 ~]# jq -V
jq-1.6
[root@lab-linux-02 ~]# rpm -q jq
jq-1.6-3.el8.x86_64

下記の DB と DB サーバ VM を削除します。

  • DB: pgsql-02
  • DB サーバ VM: ndb-pgsql-sv-02

DB の削除

今回は、NDB Web UI での下記と同様の削除処理を実施します。

  • VM からデータベースを削除します。: ON
  • NDB からデータベースのタイムマシン(スナップショット / ログ)を削除します。: ON

この設定は、REST API の DELETE メソッドで指定する JSON データでは下記のようになります。今回は、ndb_db_delete_setting.json というファイルとして作成してあります。
(ちなみにデフォルトだと、ndb_db_delete_setting_default.json です)

gist.github.com

コマンドラインを実行しやすいように、NDB Server のアドレスと「ログイン ユーザ:パスワード」を、変数に格納しておきます。

[root@lab-linux-02 ~]# NDB=192.168.20.19
[root@lab-linux-02 ~]# CRED='admin:nutanix/4u'

DB の名前も変数に格納しておきます。

[root@lab-linux-02 ~]# DBNAME=pgsql-02

DB「pgsql-02」の ID を取得して、変数「DBID」に格納します。

[root@lab-linux-02 ~]# DBID=$(curl -ks -u $CRED -X GET --url "https://$NDB/era/v0.9/databases?value-type=name&value=$DBNAME" | jq -r .[].id)
[root@lab-linux-02 ~]# echo $DBID
d3890149-f281-4635-ba4b-adccd22e056b

それでは、/databases の DELETE メソッドで削除します。

[root@lab-linux-02 ~]# curl -ks -u $CRED -X DELETE -d @./ndb_db_delete_setting.json -H 'Content-Type: application/json' --url "https://$NDB/era/v0.9/databases/$DBID"
{"name":"cleanup_database (type:database, name:pgsql-02, id:d3890149-f281-4635-ba4b-adccd22e056b)","workId":"8c8ba8b5-97f1-4f7f-b27f-5686bc51585c","operationId":"80d5d38f-de8a-4a02-841f-5e245f7f64e5","dbserverId":"bb9c4a77-f918-48d2-bfcc-7c9a0e8fa106","message":null,"entityId":"d3890149-f281-4635-ba4b-adccd22e056b","entityName":"pgsql-02","entityType":"ERA_DATABASE","status":"success","associatedOperations":null,"dependencyReport":null}

NDB Web UI で、削除処理の様子が確認できます。

DB サーバ VM の削除

DB の削除が完了したら、DB サーバを削除します。今回は、NDB Web UI での下記の削除を API で実施します。

  • DB と関連するストレージの削除: ON

REST API の DELETE メソッドで指定する JSON データは下記のようになります。これは、ndb_dbsv_delete_setting.json というファイルとして作成しておきます。
(ちなみにデフォルトだと、ndb_dbsv_delete_setting_default.json です)

gist.github.com

DB サーバ VM の名前を変数に格納しておきます。

[root@lab-linux-02 ~]# DBSVNAME=ndb-pgsql-sv-02

DB サーバ VM「ndb-pgsql-sv-02」の ID を取得して、変数「DBSVID」に格納しておきます。

[root@lab-linux-02 ~]# DBSVID=$(curl -ks -u $CRED -X GET --url "https://$NDB/era/v0.9/dbservers?value-type=name&value=$DBSVNAME" | jq -r .[].id)
[root@lab-linux-02 ~]# echo $DBSVID
bb9c4a77-f918-48d2-bfcc-7c9a0e8fa106

それでは、/dbservers の DELETE メソッドで削除します。

[root@lab-linux-02 ~]# curl -ks -u $CRED -X DELETE -d @./ndb_dbsv_delete_setting.json -H 'Content-Type: application/json' --url "https://$NDB/era/v0.9/dbservers/$DBSVID"
{"name":"delete_dbserver_vm (id:bb9c4a77-f918-48d2-bfcc-7c9a0e8fa106, ip:192.168.11.136)","workId":"60ed7082-d68e-4b15-880f-c62475120290","operationId":"899bba23-39d7-4e05-bbc4-40ecd8989591","dbserverId":"3d934ff6-746a-45e5-a9ca-750f34648381","message":"","entityId":"bb9c4a77-f918-48d2-bfcc-7c9a0e8fa106","entityName":"ndb-pgsql-sv-02","entityType":"ERA_DBSERVER","status":"success","associatedOperations":null,"dependencyReport":null}

DB サーバ VM も、NDB Web UI で削除処理のステータスが確認できます。

以上。

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