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
環境変数を定義するファイル(今回は 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」などから様子が分かります。
デバッグ目的で、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, } }
以上。