vm.gowatana.jp

NEOにほんごVMware(仮)

VMware Cloud on AWS の タスク情報を REST API で確認してみる。(SDDC パラメータの確認例)

VMware Cloud on AWS(VMC on AWS)の SDDC の作成(プロビジョニング)や削除などは、アクティビティ ログから確認できます。しかし、Web UI ではあまり詳細な情報が表示されないため、REST API で情報取得してみます。

 

VMware Cloud on AWS のアクティビティ ログ(Web UI)

Web UI では、下記のような画面でアクティビティ ログを確認できます。しかし、この画面ではあまり詳細な情報がわかりません。

 

1. REST API での tasks 情報取得(全件)

アクティビティ ログとして表示されていた情報は、REST API では tasks 情報として取得できます。

REST API を利用するための API リファレンスの場所や API キー取得については、下記を参考にしてください。

 

1-1. tasks 情報取得スクリプト(全件)

今回は、下記のような bash + curl + jq スクリプトを用意しました。

 

get_vmc_task_all.sh

  • 7行目: 引数1 で API キーと 組織 ID を記載したファイルを指定します。
  • 19行目~: /orgs/$ORG_ID/tasks への GET メソッドで、すべてのタスク情報を取得します。

gist.github.com

 

今回のスクリプトでも、以前に紹介したものと同様に、VMC の API キーと組織 ID を記載したファイルを用意しておきます。

id_and_key.txt

export API_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
export ORG_ID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

 

1-2. tasks 情報の取得(全件)

スクリプトを下記のように実行すると、JSON 形式でタスク情報を保存できます。

$ bash ./get_vmc_task_all.sh ./id_and_key.txt > ./task_all.json

 

タスク情報 1件の JSON データを確認してみると、下記のような形式になっています。ちなみにこれは、SDDC を削除したタスクのものです。

gist.github.com

 

スクリプトの標準出力、もしくは保存した JSON ファイルは、jq コマンドなどで活用できます。たとえば、下記のように応用できます。

  • いくつかフィールドを絞る(created, .id, task_type, resource_type, user_name)
  • CSV 形式に変換(@csv)
  • 日付順に並び替えて(先頭の created 列で sort)、直近の25件を取得(tail -n 25)
  • SDDC の作成のタスクのみに絞る(SDDC-PROVISION)
$ cat ./task_all.json | jq -r '.[] | [.created, .id, .task_type, .resource_type, .user_name] | @csv' | sort | tail -n 25 | grep SDDC-PROVISION
"2023-11-08T12:19:01.000696Z","08d9c8db-f978-40e1-9700-cb4b8a1c82a4","SDDC-PROVISION","sddc","実行したユーザ"
"2023-11-08T18:00:20.000665Z","68d5d352-40c5-4d0a-ab05-3282f2c03e92","SDDC-PROVISION","sddc","実行したユーザ"

 

これで、直近で SDDC を作成したタスクの ID が 68d5d352-40c5-4d0a-ab05-3282f2c03e92 であることがわかります。この ID を指定して、ここから特定のタスク情報を確認してみます。

 

2. REST API での tasks 情報取得(Task UUID 指定)

タスクの UUID を指定することで、タスク情報を1件に絞って取得できます。

 

2-1. tasks 情報取得スクリプト(Task UUID 指定)

ここからは、下記のスクリプトを使用します。

前述の方法や、REST API での SDDC 作成 / 削除時などに標準出力として表示されるタスク情報の UUID(id フィールド)をもとに、処理の進捗を確認できたりします。

 

get_vmc_task.sh

  • 8行目: スクリプトの第2引数で、タスク UUID を指定します。
  • 21行目: REST API の URL で、タスク UUID を渡します。

gist.github.com

 

2-2. 実行例1: タスク進捗を確認

タスクの進捗(%)を確認してみます。status を確認してみると、もう 100% になっている(完了している)ことがわかります。

$ bash get_vmc_task.sh ./id_and_key.txt 68d5d352-40c5-4d0a-ab05-3282f2c03e92 | jq -r .progress_percent
100

 

そしてタスクのステータス(status)も、完了(FINISHED)です。

$ bash get_vmc_task.sh ./id_and_key.txt 68d5d352-40c5-4d0a-ab05-3282f2c03e92 | jq -r .status
FINISHED

 

2-3. 実行例2: タスク情報から SDDC 作成時のパラメータを確認

params フィールドには、タスク実行時に指定したパラメータが含まれています。SDDC 作成タスクであれば、下記のように 以前の SDDC 作成時に指定したパラメータを確認できます。ただし、SDDC 再作成で使うとなると、実際のところ修正が必要です。

$ bash get_vmc_task.sh ./id_and_key.txt 68d5d352-40c5-4d0a-ab05-3282f2c03e92 | jq -r .params
{
  "mgwName": "sddc-mgw",
  "sddcConfig": {
    "region": "AP_NORTHEAST_1",
    "num_hosts": 1,
    "name": "TEST-SDDC-1Node",
    "provider": "AWS",
    "skip_creating_vxlan": false,
    "vpc_cidr": "10.10.0.0/16",
    "sso_domain": "vmc.local",
    "sddc_type": "1NODE",
    "one_node_reduced_capacity": false,
    "account_link_config": {
      "delay_account_link": true
    },
    "deployment_type": "SingleAZ",
    "storage_capacity": 0,
    "size": "MEDIUM",
    "host_instance_type": "i3.metal",
    "edition": "CPM3"
  },
  "registerDomainTaskParam": "e545c33b-cb00-4348-b29d-02ae2fa310d1",
  "sddcWorkerTaskId": "0382d6fd-610e-46aa-941e-b40bfa0dc5bf",
  "esxConfigDisableSshTaskId": "40f3e21c-65b5-449e-9db8-15814efd317b",
  "skynetPostDeployNsxtConfigTaskId": "599240e4-91c0-4867-b171-5ae3606b0367",
  "beforeSddcReadyStageTaskId": "1e54ebd8-557e-44e6-8a77-228acdd9cd7f"
}

 

以上、REST API で VMC on AWS のタスク情報を確認してみる話でした。