NTNX>日記

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

Nutanix REST API v3 で VM を停止 / 起動してみる。

Nutanix REST API v3 で VM の停止、起動をしてみます。

  • Nutanix CE ce-2018.05.01-stable の Prism Element に実行します。
  • 今回も curl を使用しています。
  • vm01 という名前のVM は1台だけ作成してあります。(VM 名の重複なく)

スクリプトの例。

下記の PUT /vms/{uuid} で power_state を変更します。

http://developer.nutanix.com/reference/prism_central/v3/#vms-uuid-put

gist.github.com

環境変数を定義するファイル(今回は prism-login.conf)を作成しておきます。

export PRISM_ADDR="ntnx-n-01.go-lab.jp"
export PRISM_USER=admin
export PRISM_PASS='パスワード'

ファイル構成は下記です。

$ ls -1
prism-login.conf
set-vm-power-state.sh

実行。

$ sh ./set-vm-power-state.sh ./prism-login.conf vm01 OFF
VM_UUID: 885074b9-d128-4a25-86c7-9b08bf5850c4
"OFF"
$ sh ./set-vm-power-state.sh ./prism-login.conf vm01 ON
VM_UUID: 885074b9-d128-4a25-86c7-9b08bf5850c4
"ON"

実行した VM の「VM Tasks」などから様子が分かります。

f:id:gowatana:20180801074236p:plain

デバッグ目的で、VM の情報は json ファイルを作成として残しています。

$ ls -1
prism-login.conf
set-vm-power-state.sh
vm-vm01.json
vm-vm01.json.power-state
$ diff vm-vm01.json vm-vm01.json.power-state
25c25
<       "power_state": "OFF",
---
>       "power_state": "ON",

SPEC metadata.spec_version は現在の VM の数字に合わせなくてはいけないので、スクリプトでは都度 VM の情報を取得して、そのまま json の power_state だけ ON / OFF 変更して利用しています。

$ cat vm-vm01.json | grep -e "^{" -e "^}" -e "^  }" -e meta -e spec
{
  "spec": {
  },
  "metadata": {
    "spec_version": 29,
  }
}

以上。