素直に自動起動を設定するでも良いのですが、DHCPサーバー等何があってもとにかく起動して欲しいVMがあったりするとコケると割と面倒くさい。そこでrc.localに記述して無理やり起動させる事にしました。あとついでにメンテナンスモードになってたらそれも同時に解除するコマンドも加えてます。今回は/etc/rc.local.d/local.shを編集しました。exit 0の手前くらいに追記すると良さそう? ちなみにrc.local.d以下に適当なファイルを作ってみたのですが再起動したらファイルごと消えてしまいました。新規ファイルはあまり作らない方がいいかもしれません。
# If in Maintenance mode, disable it
if [ "$(esxcli system maintenanceMode get )" = "Enabled" ];
then
esxcli system maintenanceMode set --enable false
fi
# VM turn on script
vm_turn_on () {
VM_NAME=$1
VM_ID=$(vim-cmd vmsvc/getallvms | grep $VM_NAME | awk '{print $1}' )
if [ "$( vim-cmd vmsvc/power.getstate $VM_ID | tail -n 1 )" != "Powered on" ];
then
echo $VM_NAME is down. try turn on it.
vim-cmd vmsvc/power.on $VM_ID
fi
}
vm_turn_on dhcp
vm_turn_on proxy
vm_turn_on web
vm_turn_on mail
vm_turn_on fs0
この例ではdhcp、proxy、web、mail、fs0というVMをとにかく起動させます。多分あまり推奨されない方法ですのであまり積極的にやらない方がいいかもしれません。というかやめときましょう。





