NTNX>日記

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

NDB で PostgreSQL DB をプロビジョニングしてみる。(REST API & curl 編)

Nutanix Database Service(NDB)での PostgreSQL の DB プロビジョニングを、REST API から実行してみます。今回は、下記の投稿で実施した PostgreSQL DB(と DB サーバ VM) のプロビジョニングと同等の処理を Linux の curl で実行してみます。

今回の内容です。

構成のイメージです。

1. API スクリプトの生成

以前の投稿 と同様に、NDB Web UI で DB のプロビジョニングを進めます。

「データベース」→「ソース」画面を開いて、「プロビジョン」→「PostgreSQL」→「インスタンス」をクリックします。

ひたすらパラメータを入力してウィザードを進めます。

1) データベース サーバー VM

2) インスタンス

3) タイムマシン

最後の画面では、プロビジョンをクリックせず「同等の API」ボタンをクリックします。

これで、ここまでのウィザードで入力したパラメータを REST API に置き換えたスクリプトが表示されます。API に渡す JSON データだけでなく、下記の言語でのスクリプトも生成されます。

  • shell(cURL)
  • Python
  • Go Lang
  • JavaScript
  • PowerShell

今回は、cURL(shell)のスクリプトをダウンロードしておきます。デフォルトでは、era_curl_script.sh という名前でダウンロードされるはずです。

もしくはクリップボードにコピーしておくこともできます。

スクリプトを取得したら、プロビジョニング処理は実行せずに「X」ボタンなどでウィザードを終了しておきます。

2. スクリプト(curl コマンド)の準備

NDB Web UI で生成されたシェル スクリプトを NDB とは関係しない Linux マシンに配置してあります。生成されたスクリプトには curl のオプションや HTTP のヘッダなども指定された状態で生成されているので、今回は NDB Server の認証情報のみ書き換えます。

これからファイルの一部を編集するので、cp でコピーしておきます。

[root@lab-linux-02 ~]# cp era_curl_script.sh provision_pgsql_db.sh

そして、NDB Web UI の認証情報を書き換えておきます。

[root@lab-linux-02 ~]# vi provision_pgsql_db.sh

認証情報は、下記の部分のみです。例では、認証情報として下記を指定しています。もともとのスクリプトにある「-H 'Authorization: Basic '」に 「ゆーざ:パスワード」を Base64 エンコードした文字列を指定できますが、今回は見ためがわかりやすい平文指定にしています。

  • admin
  • nutanix/4u
[root@lab-linux-02 ~]# diff era_curl_script.sh provision_pgsql_db.sh
5c5
<       -H 'Authorization: Basic ' \
---
>       -u 'admin:nutanix/4u' \

結果として、スクリプトは下記のような内容になっています。

gist.github.com

このうち、-d オプションで指定さている JSON データは、整形すると下記のようになっています。

gist.github.com

3. スクリプトの実行

それでは、スクリプトを実行してみます。

[root@lab-linux-02 ~]# bash provision_pgsql_db.sh
{"name":"Provision database 'pgsql-02'","workId":"d6ea7176a0f69cb926754338e245a2ab3c17f754747a5cd62c21c91d62171547","operationId":"cfa68718-77f4-4254-bdd8-ca8f444774fc","dbserverId":"3d934ff6-746a-45e5-a9ca-750f34648381","message":null,"entityId":"47ab2dbb-e753-422c-984f-1ded0361f59c","entityName":"pgsql-02","entityType":"ERA_DATABASE","status":"success","associatedOperations":null,"dependencyReport":null}

NDB Web UI でも、DB のプロビジョニングが開始されたことが確認できます。

しばらく待つと、DB のプロビジョニングが完了します。

Web UI での操作と同様に、DB サーバ VM と DB がプロビジョニングされました。

以上。

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