概要
VMware VIXを利用してホストOSからコマンドを叩いてゲストOSを起動する。
試した環境
ゲストOS:CentOS 7(64bit)
ホストOS:Windows 7(64bit)
VMware Player 6.0
VMware VIX 1.13.3
※ホストOSはWindowsまたはLinuxのみ可
※VMware Playerは少なくともメジャーバージョンを6にすること
必要な物をインストールする
VMware VIXを取得する
下記ダウンロードページからホストOSに合ったものをダウンロードする。
※VMware Playerのダウンロードページで「ドライバとツール」タブを押せばよい。
VMware VIXをインストールする
Windowsの場合、インストーラ起動してデフォルト設定のまま実行でよい。
スクリプトを書く
※ホストOSがWindowsの場合を書く。Linuxの場合はコマンドを適宜読み替えること。
定数宣言用バッチ
@echo off
REM VIXのexeのディレクトリを指定する(デフォルトならこのまま)
set DIR_VMRUN="C:\Program Files (x86)\VMware\VMware VIX"
set CMD_VMRUN=vmrun
REM 起動したいVMのvmxファイルを絶対パスで指定する
set VMX_TARGET="C:\VM\path\to\xxxx.vmx"
@echo on
起動用バッチ
call vmconst.bat
cd %DIR_VMRUN%
start %CMD_VMRUN% -T player start %VMX_TARGET% nogui
exit
※その他のvmrun.exeのオプション
-gu <userName in guest OS>
-gp <password in guest OS>
起動中のVMを一覧表示するバッチ
call vmconst.bat
cd %DIR_VMRUN%
%CMD_VMRUN% -T player list %VMX_TARGET%
pause
サスペンド用バッチ
call vmconst.bat
cd %DIR_VMRUN%
start %CMD_VMRUN% -T player suspend %VMX_TARGET%
exit
※startと違ってオプション無し
強制シャットダウン用バッチ
call vmconst.bat
cd %DIR_VMRUN%
start %CMD_VMRUN% -T player stop %VMX_TARGET%
exit
※hardはホストOS側で電源ボタンを押して止めた場合と同じ(何も書かないとこちら)。
※softはゲストOS内でシャットダウンコマンドを叩いた場合と同じ(通常はこちらだが、なぜか全然終わってくれない…)。
他に使えるパワーコマンド
vmrun.exeのUsageより
POWER COMMAND |
PARAMETERS | DESCRIPTION |
---|---|---|
start | Path to vmx file [gui|nogui] | Start a VM or Team |
stop | Path to vmx file [hard|soft] | Stop a VM or Team |
reset | Path to vmx file [hard|soft] | Reset a VM or Team |
suspend | Path to vmx file [hard|soft] | Suspend a VM or Team |
pause | Path to vmx file | Pause a VM |
unpause | Path to vmx file | Unpause a VM |
参考
「仮想サーバのCUI起動」
http://ogeji.hatenablog.com/entry/2014/05/14/000000
「VMPlayerのvmxをバックグラウンドで起動」
http://m-shige1979.hatenablog.com/entry/2014/02/22/034335
「BATファイルで環境変数を設定ファイルから読み込む方法2つ」
http://kunst1080.hatenablog.com/entry/2014/04/07/183736
「vmrun コマンド メモ(更新)」
http://bibourokumikan.blog.fc2.com/blog-entry-31.html