我が家の主要な仮想マシン (以下 VM) が稼働する VMware ESXi 4.0 は、一応 SSH でログインしてシェル操作が可能だが、使い慣れた Linux と比べるとストレスが溜まるので、簡単な操作以外は VMware vSphere Client 経由で行うことが多い。

一方、VMware Infrastructure Web Access (以下 VI Web Access) が Firefox 3.6 で使えない件をエントリーに書いた CentOS 5.4 上の VMware Server 2.0.2 も簡単な操作以外は VI Web Access を使うが、この VI Web Access は最高に使いやすいとは言い難く、どうも好きになれない。

そこへ先日、VMware Server 2.x を VMware Infrastructure Client (以下 VI Client) で管理できることを知った。VMware Server 2.x の操作にコマンドを使うのは VI Web Access をあまり触りたくないことが主な理由だが、ESX/ESXi と同じ管理ツールが使えるなら話は別だ。早速普段 ESXi を操作している手元の vSphere Client で VMware Server 2.0.2 が稼働するマシンの SSL 経由 VI Wev Access 用ポート 8333 番に接続してみると、「サーバーから必要なファイルを取得してインストールしろ」 と言う旨のメッセージが表示されたものの、結局ファイルが見つからずにダウンロードは失敗。ログインできなかった。

しかしポイントは 「vSphere Client が使える」 ではなく、「VI Client が使える」 と言う点。VMware Server 2.x を管理できるのは、あくまでも vSphere Client の前身である VI Client だ。

なら VI Client で試してみようと VMware サイトで VI Client を探すと、探し方が悪いのか単体では公開されていないのか、とにかく見つけられなかった。手近なところで ESX/ESXi 3.5が稼働していれば、そのマシン (https://<HOST>/client/VMware-viclient.exe 等) から即座に入手できるはずだが、生憎我が家の ESXi は 4.0 なので、手元にある ESXi 3.5 Update 5 の ISO ファイルから抜き出すことにした。ESXi 3.5 の ISO ファイルは今も公開されていて、アカウントを持っていれば無償で入手できる。

作業手順は、以前に書いた ESXi 3.5 を USB メモリにインストールする方法と全く同じ。ただ今回は単に VI Client のインストーラーが欲しいだけなので、Linux の実機で USB メモリを操作する必要はなく、適当な VM と 1GB の仮想ディスクを用意すれば十分。イメージファイルを書き込むと作成される 4つの FAT16 領域のうち、最後のパーティションにある VI Client 2.5 のインストーラーを利用する。

USB メモリなり仮想ディスクなり、イメージの書き込み先デバイスを /dev/sdc とすると、手順は以下の通り。

# fdisk -l /dev/sdc ← パーティションを確認
Disk /dev/sdc: 1019 MB, 1019215872 bytes 64 heads, 32 sectors/track, 972 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               5         750      763904    5  Extended
/dev/sdc4   *           1           4        4080    4  FAT16 <32M
/dev/sdc5               5          52       49136    6  FAT16
/dev/sdc6              53         100       49136    6  FAT16
/dev/sdc7             101         210      112624   fc  VMware VMKCORE
/dev/sdc8             211         750      552944    6  FAT16 ← これがターゲット

# mount -t vfat /dev/sdc8 /mnt/usbmem ← 任意のディレクトリにマウント

# cp /mnt/usbmem/packages/3.5.0/client/VMware-viclient.exe /tmp/ ← 任意の場所にコピー

# umount /mnt/usbmem ← マウント解除

インストーラーを入手できたら、Windows にインストールする (Windows 7 は *原則* 未対応なので注意。vSphere Client を Windows 7 で動作させる場合の処置はこちら。ただし追加する環境変数 DEVPATH は、システムのみで大丈夫だった)。既に vSphere Client がインストール済みのマシンに後から旧版をインストールするのが気持ち悪ければ vSphere Client を事前にアンインストールしておいてもいいが、僕が 「vSphere Client → VI Client」 と 「VI Client → vSphere Client」 それぞれの順番で試した限りでは、特に違いは見られなかった (%ProgramFiles%\VMware Infrastructure\Virtual Infrastructure Client 以下でバージョン別にフォルダーが分かれるので、上書きインストールされるわけではない)。

VI Client のインストールが完了したら、vSphere Client (事前にアンインストールしたか、最初から存在しない場合は VI Client) を起動して VMware Server 2.x が稼働するマシンの 8333番ポート (host:8333) にアクセスすると、ログインできる。ESXi 4.0 への接続も問題ない (vSphere Client が存在しないかアンインストール済みの場合は、ESXi 4.0 にアクセスした際に vShpere Client のインストールを促される)。

尚、一見 vSphere Client で ESXi 4.0 と VMware Server 2.x 両方に接続できているように見えるが、ウィンドウのタイトルバーを見ると、ESXi 4.0 に接続した際は vSphere Client、VMware Server に接続した際は VI Client と、接続先に応じて自動的に管理ツールが使い分けられていることがわかる。

さて問題の VI Web Access は、VI Client での接続には無関係だ。Firefox 3.6 でのトラブル遭遇時は 「どうせあまり使わないからいいや」 と書いたが、これで VI Web Access は本格的に不要になるので、起動スクリプトに手を加えて起動しないようにする。具体的には /etc/init.d/vmware に引数 start が与えられた際の処理で、関数 vmware_start_webAccess の呼び出し (1191行目。バージョンによって異なる可能性あり) をコメントアウトすれば OK。ただしこの起動スクリプトは所有者の root にも書き込み権限がないので、vi なら :w! で強制保存するか、事前に書き込み権限を付与してから編集する。

VI Web Access が動いていなければ、引数 stop の際の関数 vmware_stop_webAccess 実行も不要だが、今後何かの都合で VI Web Access を動かすことがあるかもしれない。その際に正しく停止させられるように、僕は停止時の関数呼び出しはそのままにしておいた。

20100317a_1.png
VI Web Access 停止で空きメモリ量増加

これでめでたく VI Web Access に余計なリソースを割かずに済み、うっかり Firefox 3.6 でアクセスして面倒なことになる心配もなくなった。「(対応 OS 上で) 対応ブラウザーさえあれば、専用ツールのインストールが不要で超便利」 と言うコンセプトは理解できるし、Web インターフェイスをあそこまで作り込んだことには脱帽するが、やはりこう言う用途には専用管理ツールの方が適していると思う。

(03/23 追記)
VI Client で VM の新規作成や既存 VM の管理ができるが、VMware Server 2.x や ESXi 4.x 標準の仮想ハードウェア・バージョン 7 (virtualHW.version = 7) の VM は、操作はできても設定を編集できないことが、エントリー公開後に発覚した。VI Client 経由で新規作成する VM の仮想ハードウェアもバージョン 4 になるので、この点は意識しておいた方がいいと思う。バージョン 7 の VM を新規作成または設定変更する必要がある場合は、素直に VI Web Access を使うことになりそうだ。

Leave a Reply

*