VMware ESXi 5 になって Host Update Utility が使用できなくなったので、vCLI (vSphere Command-Line Interface) を使い、有償ツールを使わずコマンドラインベースでパッチを当てる方法。



以下の手順で進めていきます。

パッチの確認

まず新しいパッチが存在するかどうか、VMware 公式サイトの Download Patches で確認します。

Build Number と、起動中のハイパーバイザー CUI に表示されるものを比較し、古ければ必要なパッチを当てていきます。

例えば VMware ESXi 5.0.0 を素の状態で使っていれば build 469512 のはずですので、Build Number がより大きい以下のパッチ群を 1つずつ、せっせと当てていくことになります。

Patch Build Number
ESXi500-201109001 474610
ESXi500-201111001 504890
ESXi500-201112001 515841
update-from-esxi5.0-5.0_update01 623860
ESXi500-201204001 653509
ESXi500-201205001 702118

パッチのダウンロード / アップロード

パッチ当てが必要なことが判明したら、パッチをクライアント PC にダウンロードします。ファイルは zip 形式になっていますが、解凍の必要はありません。

VMware vSphere Client で zip を datastore にアップロードしていきます。
例えば datastore1 の /upload フォルダに置いたとします。

ESXi マシンにログオンし SSH を一時的に有効にします。
Troubleshooting Options -> Enable SSH

これで PuTTY / Tera Term などの SSH クライアントでハイパーバイザに接続できるようになるので、ログイン後以下のコマンドでパッチを当てます。

~# esxcli software vib install -d /vmfs/volumes/datastore1/upload/ESXi500-201205001.zip

最後に ESXi マシンにログオンし Disable SSH する (無効にもどす) のをお忘れなく。

ハマりそうなポイント

手順は以上ですが、実際に陥りそうなポイントもいくつか。

esxcli コマンドには絶対パスを与える必要がある

ちなみに最後の esxcli コマンドも、フルパスで書くのを横着して手動で upload フォルダに降りていって、相対パスでパッチを当てようとしたところ、

~ # cd /vmfs/volumes/datastore1/upload
/vmfs/volumes/4f69f044-f39a965e-b4db-001b213c1b13/upload # 
/vmfs/volumes/4f69f044-f39a965e-b4db-001b213c1b13/upload # esxcli software vib install -d ESXi500-201109001.zip
 [MetadataDownloadError]
 Could not download from depot at zip:/var/log/vmware/ESXi500-201109001.zip?index.xml, skipping (('zip:/var/log/vmware/ESXi500-201109001.zip?index.xml', '', "Error extracting index.xml from /var/log/vmware/ESXi500-201109001.zip: [Errno 2] No such file or directory: '/var/log/vmware/ESXi500-201109001.zip'"))
        url = zip:/var/log/vmware/ESXi500-201109001.zip?index.xml
 Please refer to the log file for more details.
/vmfs/volumes/4f69f044-f39a965e-b4db-001b213c1b13/upload #

と意味不明なエラーメッセージを出します。esxcli -d オプションの引数には zip ファイルの絶対パスを指定する必要があるようです。

当て間違えると altbookbank のエラーになることが

パッチを当てる順番を間違えると、以下のような altbootbank に関するエラーが返ってきてしまうことがあります。

~ # esxcli software vib install -d /vmfs/volumes/datastore1/upload/ESXi500-201205001.zip
 [InstallationError]
 There was an error checking file system on altbootbank, please see log for detail.

teketeke_55さんの日記によると、

altbootbank配下のファイルをすべて移動してから再度vib installを実行。

で回避したようですが、仁礼の場合はうまくいきませんでした。

無償の範囲が狭くなっていく VMware

とまあ、VMware ESXi 5 におけるパッチのインストールは、Host Update Utility のようにボタン一発でパッチというのは無理で、手動でパッチを探してきて、手動であてないといけないという面倒極まりないものです。

VMware の秘伝のタレであるハイパーバイザー部分は無償で公開し敷居を低くし、VMware vSphere 関連ツールを有償とし収益を確保するのが VMware 社の最近のビジネススタイルでしたが、バージョンアップを重ねるにつれて、無償の範囲は狭まっており、侵食されて岩だけになった沖ノ鳥島の上に立っているような気分になります。

VMware Server 2.0 が初めてリリースされた時も、VMware Server 1 より使い勝手が悪くなり不安定になったことがあり、どうも VMware 社の製品は、最初のメジャーバージョンが良くて、後になるほど改悪されているように思えます。