ESXとUPSをそろそろ連動させようってことで外堀を埋める。
付属の仮想マシンの起動およびシャットダウンの機能だが、GUIではとりあえず自動起動、自動終了にはできそうに見える。
が、普段起動してにゃいvmが大量にあるので、これらは自動起動して欲しくにゃい。するとたぶんメモリ不足で大変にゃことににゃる。しかし普段常時起動していにゃいからといってUPSでESXがシャットダウンする際に起動しているにゃらばきちんと終了して欲しいものである。
次にしょっちゅうvmを移動したり登録したりしている場合にこのGUIを呼び出して毎回自動起動に設定するのは大変手間である。
ということでCUIに降りてくるわけだが、このvim-cmdの解説がさっぱりみあたらにゃい。
vim-cmd hostsvc/autostartmanager/update_autostartentry vmid StartAction StartDelay StartOrder StopAction StopDelay WaitForHeartbeat
と、意味は分かるんだがね。しょうがにゃいのでざらっと試したメモ。
StartAction : SystemDefault | PowerOn | PowerOff | none (PowerOffはエラーが出る)
StartDelay : 数
StartOrder : 1〜可能にゃ数
StopAction : SystemDefault | GuestShutDown | PowerOff | Suspend | none
StopDelay : 数
WaitForHeartbeat : yes | no
と、こんにゃ感じ。多分他にもある。とりあえずdelayをデフォにする方法が分からにゃい。
で、やってみた分かったけど、StartActionにnoneを指定すると、GUIでは設定出来にゃい「自動起動はしにゃいけど自動終了はする」vmを作れる。これは便利。ただしGUIでは確認も変更もできにゃい。
そんにゃわけで、およそ
vim-cmd hostsvc/autostartmanager/update_autostartentry $vmid none 90 1 GuestShutDown 120 yes
みたいにゃ設定を全vmにかましておくとESX終了時にシャットダウンしてくれて便利。
その他関連コマンド
vim-cmd hostsvc/autostartmanager/get_autostartseq
現状確認。startActionにゃんかの確認に必要。
vim-cmd hostsvc/autostartmanager/autostart
自動起動の実行。実験用に。
vim-cmd hostsvc/autostartmanager/autostop
自動終了の実行。実験用に。
尚、delayの意味というか全体の挙動として、順番に1つ1つ処理していってtoolsの起動/電源OFF/delay秒経過のどれかを検出したら次へ行く感じ。つまりシャットダウン時にdelayが5だとすると5秒ごとにvmにシャットダウン命令が出され、最後のvmがシャットダウンを開始して5秒後に全vmがPowerOFFされてESXがシャットダウンすると考えるのが普通。StopDelayを短くして同時にvmをシャットダウン云々を考えるにゃらば順番と最後のvmのdelayはよく考えるべきだろう。実験してにゃいけど。