VMware ESXiにパッチを適用する
この記事で実現すること
無償版ESXi(VMware vSphere Hypervisor)について、VMwareのサイトから製品パッチに関する情報を入手し、ESXi上でパッチを適用します。この記事ではESXi8.0を対象にしていますが、コマンド自体はESXi7.0も変わりません。
ご注意事項
2024-01-22に発表されたVMWareブログによりますと、スタンドアロン製品の提供を終了し、サブスクリプションモデルに変更されることとなりました。この無償版ESXiは今後提供停止となりますが、サポートは継続されるとの事です。
無償版ESXiの利用にあたっては、まずこちらの記事「VMWare 無償版ESXiの提供終了について」を参照されることをお勧めします。
2024-02-29には、ESXi8.0の最新パッチ(VMware-ESXi-8.0U2b-23305546-depot)が提供されています。無償版ESXiの安全な運用は当面継続できそうです。
パッチ適用に必要なもの
SSHでESXiに接続し、コマンドラインでパッチを適用します。Windows10ではOpenSSHがサポートされていますので、オプション機能を追加するからOpenSSHクライアントを有効にし、コマンドラインからssh root@ESXiのIPアドレス
で接続可能です。Windows11ではOpenSSHがデフォルトで導入されています。
VMwareのパッチ情報
ESXiのパッチ情報は以下を参照してください。当該ページの左ペインメニューには最新パッチの情報が掲載されていますので、最新のパッチ情報を辿ってください。また、過去のパッチの情報も提供されています。
VMware ESXi 8.0 Update 2b (2024-03-01リリースノート発表)
https://docs.vmware.com/en/VMware-vSphere/8.0/rn/vsphere-esxi-80u2b-release-notes/index.html
セキュリティパッチと不具合修正があります。久しぶりのパッチだけに不具合修正もかなり多い状況です。セキュリティ対応も含め適用をお勧めします。久しぶりということで忘れがちですが、アップデートで稀に動作しなくなるデバイスが発生するケースもありますので事前の仮想マシンのバックアップをお勧めします。
ESXi7.0は2024-03-05に提供されています。
VMware ESXi 7.0 Update 3p(2024-3-5発表)
https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-esxi-70u3p-release-notes/index.html
この記事ではESXi7.0のパッチ適用の詳細は説明していません。ESXi8.0のものを参考に最新パッチをダウンロードし適用してください。
CVE-2024-22252, CVE-2024-22253, CVE-2024-22254, CVE-2024-22255への対応となります。
製品パッチの情報を入手する
ESXiのセットアップ時にCustomer Connectへの登録を行い、個人向けvSphere Hypervisorのライセンス(無償)を入手されている事を前提にしています。
VMware Customer Connectにサインインし、製品とアカウントメニューから、”製品パッチ”を選択します。
VMware Customer Connect
https://customerconnect.vmware.com/jp
さらに、”ESXi”とバージョンの”7.0”または”8.0”を選択し”検索”ボタンをクリックすると、パッチの一覧が表示されます。以下は8.0U2bの画面です。
基本的にESXiは修正パッチを適用する場合はこの7.0、8.0という2桁の数字は変わりません。この数字が変わる更新をアップグレードと呼びます。それ以外の小さい更新をパッチまたはアップデートと呼びます。但し、Update2,Update3というグループがあり、さらにUpdate3k、Update3lという具合にグループ単位でパッチ毎に末尾の英字が大きくなっていきます。VMwareのパッチは累積パッチとなるため、最新のパッチを適用するだけでよく、古いパッチの適用は必要ありません。ここでは最新版のパッチをダウンロードします。
事前準備
ESXiにログインし、以下の作業を行います。
- SSHを有効にします
- 仮想マシンを全てシャットダウンします
- ESXiをメンテナンスモードに切り替えます
- ダウンロードしたパッチファイル(ZIPファイル)をESXiにアップロードします
- SSHでESXiにログインします
- パッチ適用コマンドを入力、リブートします
- メンテナンスモードを終了します
- SSHを無効にします
- 仮想マシンを起動します
SSHを有効にする
ESXiの左ペインのホストー管理から、”サービス”のタブをクリックし、”TSM-SSH”を選択し”起動”ボタンをクリックし、SSHを有効にします。仮想マシンを全てシャットダウンします
ESXiをメンテナンスモードに切り替えます
パッチファイルのESXiへのアップロード
アップロードボタンをクリックし、ダウンロードしたパッチファイルをZIPのままアップロードします。
ESXiの左ペインメニューの”ストレージ”を選択、メインのストレージ(一般的にはdatastore1)を選択し、”データストアブラウザ”をクリックしますここの例ではディレクトリの作成ボタンでupdateフォルダを作成し、そこにアップロードします。
SSHでESXiにログイン
ログイン後、パッチをアップロードしたフォルダ(datastore1/update)に移動しアップロードしたパッチファイルが存在するかls
で確認します1
2
3
[root@esxi:~] cd /vmfs/volumes/datastore1/update
[root@esxi:~] ls
ESXiのパッチ適用
パッチ適用のコマンドは7.0、8.0とで違いはありません。ここでは直近バージョンからのパッチ適用のための具体的なコマンドを記載しています。
パッチ適用(ESXi8.0の場合)
ここでは、ESXi8.0の情報を掲載します。ESXi7.0についてもコマンド自体は変わりません。
現在稼働中のプロファイルを確認
新しいドライバやバグフィックス、セキュリティパッチなど含めたprofileとして整合性が取れたvibのアップデートはprofile updateを実行します。ここでは、ESXi8.0Update2からUpdate2bにアップデートすることを例にします。
現在の実行中のprofileを確認します。esxcli software profile get
1
2
3
4
5
6
7[root@localhost:~] esxcli software profile get
ESXi-8.0U2-22380479-standard
Name: ESXi-8.0U2-22380479-standard
Vendor: VMware, Inc.
Creation Time: 2023-09-28T11:26:16
Modification Time: 2024-03-04T10:24:30
Stateless Ready: True
一般的にはバージョンの最後に”-standard”の文字が付いています。standard版がインストールされている事を示します。
次に、パッチファイルに登録されているprofileを確認します(パッチはフルパス指定が必要です)。
1
2
3
4
5
6
7[root@localhost:/vmfs/volumes/644d900e-e666deaf-8cf2-1c34da77cb4c/update] esxcli software sources profile list -d /vmfs/volumes/datastore1/update/VMware-ESXi-8.0U2b-23305546-depot.zip
Name Vendor Acceptance Level Creation Time Modification Time
------------------------------ ------------ ---------------- ------------------- -----------------
ESXi-8.0U2sb-23305545-standard VMware, Inc. PartnerSupported 2024-02-29T00:00:00 2024-02-29T00:00:00
ESXi-8.0U2sb-23305545-no-tools VMware, Inc. PartnerSupported 2024-02-29T00:00:00 2024-02-14T06:50:08
ESXi-8.0U2b-23305546-standard VMware, Inc. PartnerSupported 2024-02-29T00:00:00 2024-02-29T00:00:00
ESXi-8.0U2b-23305546-no-tools VMware, Inc. PartnerSupported 2024-02-29T00:00:00 2024-02-14T08:21:05
今回は、VMWareTools有/無と通常/セキュリティパッチのみのパターンです。繰り返しとなりますが、Updateでは基本的に使えなくなるデバイスは発生しないのですが、新たな不具合によってデバイスが動かないことはありえます。
互換性ガイドでも特に8.0U2b向けのリストは出ていないので8.0U2からは変わっていないように見えます。
VMware Compatibility Guide
https://www.vmware.com/resources/compatibility/search.php
さて、VMWareTools有を前提として、パッチを2つ比較します。
ESXi-8.0U2b-23305546-standard(通常) | ESXi-8.0U2sb-23305545-standard(セキュリティパッチのみ) |
---|---|
VMW_bootbank_pensandoatlas_1.46.0.E.28.1.314-2 | VMW_bootbank_pensandoatlas_1.46.0.E.28.1.314 |
VMware_bootbank_bmcal_8.0.2-0.30.23305546 | VMware_bootbank_bmcal_8.0.2-0.25.23305545 |
VMware_bootbank_bmcal-esxio_8.0.2-0.30.23305546 | VMware_bootbank_bmcal-esxio_8.0.2-0.25.23305545 |
VMware_bootbank_clusterstore_8.0.2-0.30.23305546 | VMware_bootbank_clusterstore_8.0.2-0.25.23305545 |
VMware_bootbank_cpu-microcode_8.0.2-0.30.23305546 | |
VMware_bootbank_crx_8.0.2-0.30.23305546 | VMware_bootbank_crx_8.0.2-0.25.23305545 |
VMware_bootbank_drivervm-gpu-base_8.0.2-0.30.23305546 | VMware_bootbank_drivervm-gpu-base_8.0.2-0.25.23305545 |
VMware_bootbank_esx-base_8.0.2-0.30.23305546 | VMware_bootbank_esx-base_8.0.2-0.25.23305545 |
VMware_bootbank_esx-dvfilter-generic-fastpath_8.0.2-0.30.23305546 | VMware_bootbank_esx-dvfilter-generic-fastpath_8.0.2-0.25.23305545 |
VMware_bootbank_esx-update_8.0.2-0.30.23305546 | VMware_bootbank_esx-update_8.0.2-0.25.23305545 |
VMware_bootbank_esx-xserver_8.0.2-0.30.23305546 | VMware_bootbank_esx-xserver_8.0.2-0.25.23305545 |
VMware_bootbank_esxio_8.0.2-0.30.23305546 | VMware_bootbank_esxio_8.0.2-0.25.23305545 |
VMware_bootbank_esxio-base_8.0.2-0.30.23305546 | VMware_bootbank_esxio-base_8.0.2-0.25.23305545 |
VMware_bootbank_esxio-combiner_8.0.2-0.30.23305546 | VMware_bootbank_esxio-combiner_8.0.2-0.25.23305545 |
VMware_bootbank_esxio-combiner-esxio_8.0.2-0.30.23305546 | VMware_bootbank_esxio-combiner-esxio_8.0.2-0.25.23305545 |
VMware_bootbank_esxio-dvfilter-generic-fastpath_8.0.2-0.30.23305546 | VMware_bootbank_esxio-dvfilter-generic-fastpath_8.0.2-0.25.23305545 |
VMware_bootbank_esxio-update_8.0.2-0.30.23305546 | VMware_bootbank_esxio-update_8.0.2-0.25.23305545 |
VMware_bootbank_gc_8.0.2-0.30.23305546 | VMware_bootbank_gc_8.0.2-0.25.23305545 |
VMware_bootbank_gc-esxio_8.0.2-0.30.23305546 | VMware_bootbank_gc-esxio_8.0.2-0.25.23305545 |
VMware_bootbank_infravisor_8.0.2-0.30.23305546 | VMware_bootbank_infravisor_8.0.2-0.25.23305545 |
VMware_bootbank_loadesx_8.0.2-0.30.23305546 | VMware_bootbank_loadesx_8.0.2-0.25.23305545 |
VMware_bootbank_loadesxio_8.0.2-0.30.23305546 | VMware_bootbank_loadesxio_8.0.2-0.25.23305545 |
VMware_bootbank_native-misc-drivers_8.0.2-0.30.23305546 | VMware_bootbank_native-misc-drivers_8.0.2-0.25.23305545 |
VMware_bootbank_native-misc-drivers-esxio_8.0.2-0.30.23305546 | VMware_bootbank_native-misc-drivers-esxio_8.0.2-0.25.23305545 |
VMware_bootbank_trx_8.0.2-0.30.23305546 | VMware_bootbank_trx_8.0.2-0.25.23305545 |
VMware_bootbank_vdfs_8.0.2-0.30.23305546 | VMware_bootbank_vdfs_8.0.2-0.25.23305545 |
VMware_bootbank_vds-vsip_8.0.2-0.30.23305546 | VMware_bootbank_vds-vsip_8.0.2-0.25.23305545 |
VMware_bootbank_vmware-hbrsrv_8.0.2-0.30.23305546 | |
VMware_bootbank_vsan_8.0.2-0.30.23305546 | VMware_bootbank_vsan_8.0.2-0.25.23305545 |
VMware_bootbank_vsanhealth_8.0.2-0.30.23305546 | VMware_bootbank_vsanhealth_8.0.2-0.25.23305545 |
VMware_locker_tools-light_12.3.5.22544099-23305545 | VMware_locker_tools-light_12.3.5.22544099-23305545 |
いつもの通りですが、通常の方はセキュリティパッチのみよりも全体的なバージョンは上なので特段の理由がない場合は通常のパッチを適用します。
パッチ適用
以下のようにパッチファイルのzipをフルパスで指定し、VMwareのパッチ情報にあるプロファイル名を指定しパッチを適用します。ここではstandardを指定します。
1 | [.../update] esxcli software profile update -d /vmfs/volumes/datastore1/update/VMware-ESXi-8.0U2b-23305546-depot.zip -p ESXi-8.0U2b-23305546-standard |
esxcli software profile update
の実行後しばらくしてから、結果が表示されます。
1 | Update Result |
再起動と結果確認
コマンドプロンプトから、reboot
としてESXiを再起動します。
再起動完了後、ESXiにログインします。左ペインメニューの”ホスト”をクリックし、バージョンの表記に今回パッチを当てたビルド番号が表示されている事を確認してください。今回はU2bとなっているはずです。
または、sshでESXiに接続し、vmware -v
を実行し確認します。
1 | [root@localhost:~] vmware -v |
事後作業
これまで実施してきたメンテナンス準備とは反対の作業をします。メンテナンスモードの終了・SSHの無効化・仮想マシンの起動と続けます。
パッチのロールバック
あまり考えたくはありませんが、パッチ適用後、うまく動作しないなどの場合にはロールバックします。ESXiはひとつ前のバージョンに戻せます(アップグレードの場合は戻せない場合があります)。
ESXiホストを再起動し、起動中にShift+’R’キーを押します。
VMware ESXi を前のバージョンに戻す (1033604)
https://kb.vmware.com/s/article/1033604?lang=ja
Hypervisor のプログレス バーの読み込みが開始されたら、Shift+R を押します。(これはバーが表示されたロード後ではなく、ロード中に実行する必要があります。コマンドを実行するタイミングを逃さないよう、”system is preparing to boot” 表示中に Shift+R を繰り返し押すことをお勧めいたします)。
以下の通り、今動いているビルド番号と前のビルド番号が表示されます。
ここでロールバックを選択します。
構成情報のバックアップ(任意)
今後、パッチ適用を重ねていきますが、ある時点にロールバックしたいと思った時に、ホスト構成バックアップから戻す必要が出てきます。パッチを当てる度に構成情報のバックアップを取得されることをお勧めします。
参考にするドキュメントはこちらです。
ESXi ホストの構成のバックアップ方法 (2042141)
https://kb.vmware.com/s/article/2042141?lang=ja
- SSHでESXiに接続します。
- ストレージの確実な同期のためのコマンド
vim-cmd hostsvc/firmware/sync_config
を実行します。 - バックアップコマンド
vim-cmd hostsvc/firmware/backup_config
を実行します。 - 画面にダウンロードパスが表示されるのでそのURLにブラウザから接続し構成情報をダウンロードします。
1 | [root@esxi:~] vim-cmd hostsvc/firmware/sync_config |
先頭にhttp://*/
とありますが、ここはESXiのホスト名またはIPアドレスを指定しブラウザからアクセスします。例えば、http://192.168.1.1/downloads〜
という具合です。万が一レストアが必要になってしまった場合はバックアップを取得したバージョンのパッチを適用の上、メンテナンスモードに移行してからvim-cmd hostsvc/firmware/restore_config /your_backup_location/configBundle-esxi.local.tgz
で戻します。バックアップを取得してから既にハードウェア構成が変わっていたりする場合は戻せない場合があります。仮想マシンはデータストアブラウザから再登録する必要があります。詳細は上記VMwareのドキュメントを参照してください。