それまではずっと仮想化=Xenの人だったのですが、各ディストリビューションでのXenのサポートがあまり進んでない(むしろ最近後退すらしているような気が…)のと、ESXiがあまりにもさくさく使えるのと相まって、すっかり浮気気味です。(もちろんXenの方が便利なシーンもたくさんあるのですが)
ただESXiのネックは、専用の管理クライアントが必要なこと。Xenのように実機のコンソールからログインしてCUIレベルでさくさく管理というわけにはいきません。(コンソールからログインも出来るらしいのですが、unsupportedな手順になってしまうので)
さらに困った事には、管理クライアントであるVMware Infrastructure ClientはWindowsでしか動きません。ESXi上のサーバにLinuxしか使わない環境でもWindowsが必須なんてあんまりだ…。
というわけで、VMware Infrastructure ClientをLinuxで動かしてみました。こちらで検証した環境はubuntu 8.04ですが、特にubuntuに特化した事はしてないと思うので他のディストリビューションでも似たような手順で実現可能だと思われます。
基本的な手順はこちらの内容を参考にさせていただきました。
vmware infrastructure client on ubuntu … an update
http://www.virtualinsanity.com/index.php/2009/02/02/vmware-infrastructure-client-on-ubuntu-an-update/
まずはWineをインストールするのですが、公式リポジトリにある1.0ではうまく動いてくれないため、WineHQにある最新の開発版(2009/03/09時点で1.1.16)をインストールするために、以下の2つのコマンドを実行します。
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/hardy.list -O /etc/apt/sources.list.d/winehq.list
これで最新の開発版が使えるようになりました。
いつものようにWineをインストールします。
sudo apt-get install wine
続いてWineの導入補助スクリプト(という表現でいいのかな?)であるwinetricksを導入します。導入と言っても、スクリプトをダウンロードしてくるだけなので以下のコマンド1つだけでOKです。
wget http://www.kegel.com/wine/winetricks
保存する場所はたぶんどこでも大丈夫です。
そうしたらwinetricksが利用するcabextractも導入します。
sudo apt-get install cabextract
winetricksを使って必要なWindowsコンポーネントを導入します。
sh winetricks dotnet20 ie6 winxp
途中で(Windowsユーザには)見慣れたダイアログボックスが出てくると思うので、普通にインストールを進めちゃってください。
以上でクライアントを導入する環境は整いました。ESXiが稼働しているサーバから、クライアントアプリをダウンロードしてインストールします。(普通にexeファイルをダブルクリックすればWineが良きに計らってくれます)
これで準備万端…と言いたいところなのですが、どうもWineの通信関連に問題があるらしく、クライアント−サーバ間の通信にSSL(HTTPS)を使うとクライアント側が落ちてしまうとの事。HTTPで通信しようとしてもデフォルトではHTTPSにリダイレクトされてしまいます。そこでHTTPでのアクセスを可能にするためにサーバ側の設定を変更します。これは正規の手順ではないので、本番稼働中のサーバなど、ダウンが許されないサーバでは絶対に行わないでください。
まずはESXiにコマンドレベルでログインします。そのために、ESXiが稼働している実機のコンソールにてAlt+F1を押します。するとコマンドっぽい画面(表現下手でスミマセン…)に変わるので、キーボードからunsupportedと打ち込んでEnterを押します。打ち込んだ文字は画面には表示されませんが、気にしないでください。するとパスワード入力のプロンプトが表示されるので、サーバ導入時に設定したパスワードを入力してEnterを押します。無事に完了すると、見慣れたLinuxのコマンドプロンプトが現れます。
ここで修正すべきファイルは /etc/vmware/hostd/proxy.xml で、ファイルに記述されている httpsWithRedirect を httpAndHttps に変更します。viなどで普通に変更されてもいいですが、たぶん以下のコマンドを実行すれば意図したとおりに変更されると思います。
cd /etc/vmware/hostd
cp proxy.xml proxy.xml.org
sed 's/httpsWithRedirect/httpAndHttps/' proxy.xml.org > proxy.xml
cp proxy.xml proxy.xml.org
sed 's/httpsWithRedirect/httpAndHttps/' proxy.xml.org > proxy.xml
修正が完了したらESXiを再起動しましょう。
reboot
再起動が完了したら、いよいよクライアントから接続します。
IP Address / Nameの部分は通常IPアドレスだけ記述すればOKなのですが、それだとHTTPSで通信を始めてしまうため、明示的に http://xxx.xxx.xxx.xxx とプロトコル名込みで記述してください。ここまで全ての手順が正しく完了していれば、VMware Infrastructure Clientが無事に起動してくれると思います。
まだざっとしか使っていませんが、現時点で分かっている不具合は以下のとおりです。
・Consoleが使えない
・右クリックが軒並み全滅
・Getting Startedの表示がおかしい
Getting Startedは設定で消せちゃうようなタブなので特に影響はなく、右クリックに関してもメニュー等別の方法で目的の処理までたどり着けるようなのですが、Consoleが使えないのはちょっと致命的。Linuxクライアントから新しいVMを作るのはちょっと無理のようです。トラブルシューティングなども最後はコンソールからの操作が頼りなので何とか解決してくれるといいんですが、今のところどうしようもないみたいです。ひょっとしたらWineのバージョンが上がったら解決するかも…と淡い期待。(それよりも本家VMwareからLinuxクライアントが出てほしいところですが)
とは言え、とりあえずVMの操作やリソース状態の確認、データストアの操作などは問題なくできるので、それなりに利用価値はありそうです。通常の運用端末はLinuxにしておき、いざという時は別途WindowsPCを持ち込んで対処するとか。(少なくともWindowsのライセンス数の削減には貢献できそう)
ワッサーで助言を下さった@kimitakeさん、@umqさん、@naru01さん、ありがとうございました!