技術的雑談-Windows上のVMWareServer2.0内のVMをコマンドラインで操作する
環境
- ホストOS : WindowsXP sp3
- VMWare Server : 2.0.8
目的
- VMWare ServerのVMをコマンドラインから一発起動する。
手順
vmrun.exe
VMWare Server 2.0から、従来の.exe形式のコントロールセンターではなくWeb経由のWebアプリケーションでVMの操作を行うようになった。
これはこれで賛否両論あるところだが、まあ、そういうものだから仕方がない。
Linux版のVMWare Server 2.0ではコマンドラインからVMを操作するvmware-vim-cmdとかvmware-vimshなどというコマンドがあるが、Windows版では同名のコマンドは無いようだ。
が、VMWare Serverのインストールディレクトリ(デフォルトだと「C:\Program Files\VMware\VMware Server」)にvmrun.exeというコマンドがあり、これがvmware-vim-cmdの代わりになっているらしい。
基本的な使い方
DOS窓もしくはバッチから操作する。
C:\Program Files\VMware\VMware ServerにPathを通すかCDして、引数にパラメータを設定する。
以下はDOS窓から実行したときの使い方。
現在動いているVMの一覧を表示する
listサブコマンドを使用する。
vmrun.exe -T server -h https://localhost:8333/sdk -u ******** -p %%%%%%%% list
ここで、********はVMWareのWeb GUIにログインするときのユーザ名(=ホストOSのログインアカウントからドメイン名を除いたもの)、%%%%%%%%はそのパスワードだ。
上記の「https://〜/sdk」はお約束。
「-T」オプションの意味は、
オプションの文字列 | 対象VMWareバージョン |
---|---|
ws | VMWare Workstation |
server | VMWare Server 2.x |
server1 | VMWare Server 1.x |
また、他のコマンドでも共通だが、-hの後にはVMWare Serverが動いているホストOSのアドレスをセットする。
検証してみたが、「VMware Server Web Access」サービスが止まっている時もvmrun.exeが使用可能だ。
これはうれしい!!
内蔵のTomcatが動いていなくてもVMの操作が可能ということだ。
ちなみに、コマンドが成功すると以下のように現在稼働中のVMの一覧が表示される。
Total running VMs: 2 [standard] CentOS 5.2/CentOS 5.2.vmx [standard] CentOS 5.3/CentOS 5.3.vmx
上記は2つのVMが動いていることを表す。
バッチにする場合はバッチの最後に「pause」を書いておかないと表示結果が一瞬で消えてしまって悲しい。
登録されているVMを一覧する
listRegisteredVMサブコマンドを使う。
実行すると以下のように登録されているVMが一覧される。
Total registered VMs: 4 [standard] Windows Server 2003 R2/Windows Server 2003 R2.vmx [standard] CentOS 5.2/CentOS 5.2.vmx [standard] CentOS 5.3/CentOS 5.3.vmx [standard] Solaris10/Solaris10.vmx
VMを起動する(VMの電源をONする)
startサブコマンドを使う。
startサブコマンドの後に起動したいVMの名前を指定するが、上記のlistやlistRegisteredVMの表示結果の「[standard]」も含めて指定してやる必要があるらしい。
([standard]というのはGUIで言うところのストレージ、実Pathで言うと「C:\Virtual Machines」以下の事らしい。)
以下のようにコマンドを実行する。
vmrun.exe -T server -h https://localhost:8333/sdk -u ******** -p %%%%%%%% start "[standard] CentOS 5.2/CentOS 5.2.vmx"
VM名に半角スペースが入る場合は""でくくってあげること。
VMを停止する(VMの電源を切る)
同様にstopサブコマンドを使用する。
ただし、注意しなくてはいけないのは、このコマンドは「VMの電源を切る」コマンドであって、「Guest OSをShutdownするコマンドではない」ということだ。
普通のPCだったらいきなり電源をプッチンするのと同じなので、普通の場合はGuest OS内からshutdown -h nowとか、スタートメニューから終了オプションを選択してやること。
vmrun.exe -T server -h https://localhost:8333/sdk -u ******** -p %%%%%%%% stop "[standard] CentOS 5.2/CentOS 5.2.vmx"
履歴
2009/04/15 -- 初版
技術的雑談へ戻る