ESXiで無理やりVMを自動起動

素直に自動起動を設定するでも良いのですが、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をとにかく起動させます。多分あまり推奨されない方法ですのであまり積極的にやらない方がいいかもしれません。というかやめときましょう。

コメントを残す