!!!技術的雑談-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 -- 初版 [[技術的雑談]]へ戻る !!突っ込み {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る