vmware-vmrcというリモートコンソールの本体だけを使う

2009/02/02
vmware-vmrcを単体で使うよりもvmplayerをvmware-vmrcの代わりに使う方法もあった。詳しくは“VMware Playerをリモートコンソールとして使う”を参照

VMware Server Web Accessを使って先ず仮想マシンを起動して次にRemote Consoleを表示する、という動作をLinux上で見ていると余り気が付かないが、Windowsマシン上で使っていると、明らかにWeb AccessとRemote Consoleは別ソフトウェアだと気づく。つまり、Remote ConsoleはActiveXで実現されたブラウザの一部とは思えないデザインである。むしろVMware Playerにそっくりだ。そこでLinux上でRemote Consoleが表示されている状態でpsでプロセスの状態を見ると、

root@ubuntu804:~# ps axww
	:
	:
26866 ?        S      0:01 /root/.mozilla/firefox/32db216z.default/extensions/VMwareVMRC@vmware.com/plugins/bin/vmware-vmrc -h loca
lhost:443 -p 542b43db-bc90-1ec9-121d-9f97f81de1c8 -M 48

という感じで "vmware-vmrc" というプロセスが動いている。これがリモートコンソールの本体のようである。そこで、直接、このコマンドを実行すると、ちゃんとリモートコンソールが起動する。(ちょっとパスが深いが、次のように起動する。)

root@ubuntu804:~# cd /root/.mozilla/firefox/32db216z.default/extensions/VMwareVMRC@vmware.com/plugins
root@ubuntu804:plugins# ./vmware-vmrc

すると次のような画面が現れる。

サーバ名、ユーザ名、パスワードを入力すると次に様に仮想マシンの選択画面が出る。

あとは通常通りにつかえる。マウスのカーソルをフォーカスする必要はあるが、BIOSのメニューへ移行するには十分な時間がある。

これが使いたかったのである。こういった方法はマニュアルの最初にかいておいて頂けると嬉しい。(例えば、「リモートコンソールを直接起動する」とか。) なお、Firefoxプラグインのままだと、パスが深いので使いにくいが、このディレクトリごとどこかにコピーすればいい。

root@ubuntu804:~# mkdir -p /usr/local/bin/vmware
root@ubuntu804:~# tar cf - -C /root/.mozilla/firefox/32db216z.default/extensions/VMwareVMRC\@vmware.com/plugins/ . | tar xf - -C /usr/local/bin/vmware/
root@ubuntu804:~# ls /usr/local/bin/vmware
bin  lib  libconf  np-vmware-vmrc-e.x.p-100265.so  share  vmware-desktop-entry-creator  vmware-vmrc  vmware-vmrc-daemon  vmware-vmrc-legacy  xkeymap
root@ubuntu804:~# ln -s vmware/vmware-vmrc /usr/local/bin/vmware-vmrc
root@ubuntu804:~# 

これで、

root@ubuntu804:~# vmware-vmrc

と指定するだけでリモートコンソールが立ち上がるようになる。

mware-vmrcの引数は?

VMware Server Web Accessから起動されるvmware-vmrcには"-h localhost:443 -p 542b43db-bc90-1ec9-121d-9f97f81de1c8 -M 48"という引数が指定されていて、選択画面なしに特定の仮想マシンのコンソールへ接続できた。VMware Server 1.xのサーバコンソールの引数定義と照らすと、"-h"はサーバのホスト名で":"の後はhttpsのポート番号、"-p"はパスワード指定の筈だが、裸のパスワードではセキュリティが低くなるのでユーザIDとパスワードを一緒にUUIDにマッピングして送っているのだろう。最後の"-M"はVMware Server 1.xのサーバコンソールには無いが、仮想マシンを識別する番号だろう。いくつか仮想マシンを作ってみたところ"-M"の引数は16の倍数(16、32、48....)となっていた。(つまり4ビットを下駄上げして、順番に番号を振っているみたいだ。)ただ、この番号は人間にはわかりずらいので、コンフィグレーションファイル(*.vmx)へのパスでも表現できる筈である。ということで、試しに次のようにコマンドを実行してみた。

root@ubuntu804:~# vmware-vmrc -h localhost:443 -u root -p hirakegoma "[standard] Fedora-9/Fedora-9.vmx"

すると、いきなり(この例では)Fedora-9という仮想マシンのコンソールとなる。

パスワードはコマンド上は裸になっているのでセキュリティ的にはよろしくないが、通信上はSSLを使っているので暗号化されているだろう(未確認)。もし、パスワードだけGUI画面で入力するようにするのであれば"-p"オプションを指定しなければいい。そうすることで、先ほどのログイン画面の内、パスワードのところだけが空白の状態で表示され、パスワードだけ入力すれば済むようになる。
その他のオプションとして、1.xにあった電源を自動的にONにする"-x"は無視される、というか、vmware-vmrcで停止状態の仮想マシンへ接続すると自動的にONになってしまう。2.0からの仕様のようだ。だた、フル画面で起動する"-X"オプションは有効だ。また、Linux版のvmware-vmrcでは次のようにロングネームのオプションも使えた。(Windows版では使えなかった。)

root@ubuntu804:~# vmware-vmrc --host localhost:443 --user root --password hirakegoma "[standard] Fedora-9/Fedora-9.vmx"

Windowsvmware-vmrcは?

Linux版のvmware-vmrcはFirefoxプラグインとして展開されたものを利用できるが、Windows版のvmware-vmrcはどこにあるのか? Linux版と同様にIEへのプラグインとして提供されるのでWebサーバ上のディレクトリに格納されている筈である。それであれば/usr/lib/vmware/WebAccessの下となるが、探したところ、次の場所にあった。(Linux版も同じディレクトリにある。)

Linux版:
/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/webapps/ui/plugin/vmware-vmrc-linux-x86.xpi
/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/webapps/ui/plugin/vmware-vmrc-linux-x64.xpi
Windows版:
/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/webapps/ui/plugin/vmware-vmrc-win32-x86.cab
/usr/lib/vmware/webAccess/tomcat/apache-tomcat-6.0.16/webapps/ui/plugin/vmware-vmrc-win32-x86.xpi

xpiであればLinuxアーカイブマネージャで展開できるし、cabであればWindowsのツールで展開できる。例えばcabファイルをWindowsマシン上へコピーして展開すると"vmware-vmrc-win32-x86"というフォルダができ、そこに"vmware-vmrc.exe"がある。これをクリックして起動してみる、とWindows版では次のようなメッセージが出て終了してしまう。*1

どうもWindows版ではコマンドの引数としてサーバ名や、ユーザ名、起動する仮想マシンの名前を必ず与える必要があるようである。引数は、VMware Server 1.xのRemote Consoleと互換性があるだろうから同様の引数と、2.0からのデータストアのネーミング方法を考慮してコマンドラインで次のように指定することで、すんなりとリモートコンソールが使えるようになった。

C:>vmware-vmrc.exe -l log.txt -h ubuntu804:443 -u "root" -p "hirakegoma" "[standard] Fedora-8/Fedora-8.vmx"

仮想マシンの起動までに25秒程時間がかかったが、仮想マシンの起動の最初の段階からアクセスできるので、次のようにBIOS設定に移行する時間も十分ある。

しかし、見れば見るほどRemote Consoleってvmplayerに似ている....。

おまけ

見れば見るほどRemote Consoleってvmplayerに似ている。「ひょっとして」と思いLinux版の"vmware-vmrc"を"vmplayer"にリネーム(もしくはシンボリックリンク)して実行してみると。

う〜む。いっそのことVMware Serverのリモートコンソールはvmplayerそのものです、と言ってしまった方がユーザとしてもすっきりするのだけど。

2.0の正式リリースが楽しみだ

Release Candidate 1はその名前のとおりリリース候補版なので、余程のことがない限り、このバージョンがほぼ製品版になっていく。(ひどいソフトウェア会社だと、RC2、RC3とか出してくるところもあるが....。VMware社は大丈夫だろう。) たぶん、この時期にRC1をリリースしてくるというのは9月15日からのvmworld 2008の直前に製品版をリリースする積りなのだろうか。

タイミング的にもIntelのG45チップセット対応のマザーボードが出回っているころなので、いいタイミングとなりそうだ。

*1:Error opening the remote virtual machine \: Missing server name or connection configuration file name.