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 です)
コマンドラインを実行しやすいように、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 です)
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 で削除処理のステータスが確認できます。
以上。