setodaNote

忘れる用のメモ書き for Cybersecurity

VMware ESXi へのパッチ適用手順

VMware ESXi へのパッチ適用手順

ESXi のバージョンアップ作業の手順メモです。

パッチ の入手

My VMware にログインしている状態で、以下のページにアクセスします。

リストから選択する形式でパッチを検索できるので、ESXi (Embedded and Installable) を選んでからパッチを適用したいバージョンを選び、検索ボタンを押します。 *1

パッチファイルの一覧が表示されるので、今回は2020年11月19日に公開された「VMware-ESXi-7.0U1b-17168206-depot.zip」を適用することとして進めます*2

このファイルを ESXi のサーバにアップロードします。 vSphere Web Client からデータストアブラウザを使って適当な場所にアップロードしました。

f:id:soji256:20201123231233p:plain:w360
データストアブラウザ

アップデートはコマンド入力で進めるので、先だってSSH等でアクセスできるようにサービスを有効にしておきます。 右クリックメニューからも有効化できます

f:id:soji256:20201123231631p:plain:w360
SSH の有効化

また、アップデートするためにメンテナンスモードに変更する必要があります。 仮想マシンはシャットダウンしておきます。*3

f:id:soji256:20201123232601p:plain
メンテナンスモード

ここから先は SSH で ESXi サーバにアクセスして進めます。

アップロードしたファイルは /vmfs/volumes/datastore1/ といった場所にあるはずです。*4

まずアップデートをする準備として、esxcli コマンドを用いてファイルに含まれているイメージプロファイル名を確認します。

# esxcli software sources profile list -d /vmfs/volumes/datastore1/VMware-ESXi-7.0U1b-17168206-depot.zip

Name                           Vendor        Acceptance Level  Creation Time        Modification Time
-----------------------------  ------------  ----------------  -------------------  -----------------
ESXi-7.0U1b-17168206-no-tools  VMware, Inc.  PartnerSupported  2020-11-11T11:34:51  2020-11-11T11:34:51
ESXi-7.0U1b-17168206-standard  VMware, Inc.  PartnerSupported  2020-11-11T11:34:51  2020-11-11T11:34:51

上記の通り「no-tools」と「standard」の2種類がありました。*5 どちらを適用する必要があるのか、現在の環境のプロファイルを以下のコマンドで確認します。

# esxcli software profile get

ずらりと出てくる結果の最初の方に「ESXi-7.0.0-15843807-standard」とあったので「standard」を適用すればいいと分かります。

以下のコマンドでアップデートを実行します。*6

# esxcli software profile update -d /vmfs/volumes/datastore1/VMware-ESXi-7.0U1b-17168206-depot.zip -p ESXi-7.0U1b-17168206-standard

うまくいくと次のように表示されます。

Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
(後略)

指示通り再起動をかけます。再起動後は SSH サービスが起動してこないので注意が必要です。*7

esxcli system shutdown reboot -r "Update to version 7.0U1b"

再起動が完了したら vSphere Web Client などからアクセスしてバージョンを確認します。 問題なければメンテナンスモードを解除し、仮想マシンを順次再開させていきます。

なお、以下のコマンドでもバージョンを確認できます。

# vmware -l
VMware ESXi 7.0 Update 1
# vmware -v
VMware ESXi 7.0.1 build-17168206

付録

アップグレード、パッチ適用、アップデート、および移行の違い

アップグレードパスの確認方法

アップグレード等、自分の環境のバージョンが少し古い場合は以下のページで適用可能な範囲を確認できます。

HardwareError が出たとき

アップデートを実行すると Hardware precheck が走ります。もしサポートされていないハードウェアが検出された場合は、以下のようなエラーが出て処理が中止します。

 [HardwareError]
 Hardware precheck of profile ESXi-7.0U1b-17168206-standard failed with warnings: <UNSUPPORTED_DEVICES WARNING: This host has unsupported devices [<PciInfo ' [XXXX:XXXX XXXX:XXXX]'>, <PciInfo ' [XXXX:XXXX XXXX:XXXX]'>]>

 Apply --no-hardware-warning option to ignore the warnings and proceed with the transaction.
 Please refer to the log file for more details.

PciInfo [XXXX:XXXX XXXX:XXXX] の部分が PCI Vendor Id/Device Id と呼ばれているものらしく "PCI XXXX XXXX" といった感じで検索すると対象の製品が分かります。 対処法としては、当該製品がサポートされるまで待つか --no-hardware-warning オプションを付加して続行するかです。 これが出るからといって必ず不具合が発生するものではないですが、どちらを選ぶかは自分で判断します。

参考文献

更新履歴

  • 2020/12/23 新規作成

*1:検索ページが表示されていない場合は、My VMware にログインしている状態であることを確かめてから改めて上記リンクからページに飛んでみてください。

*2:記事を書いた当時はこのパッチが最新でした。公開時点での最新版は「VMware-ESXi-7.0U1c-17325551-depot.zip」です。

*3:実際は少し横着をしてサスペンドにして進めてみました。

*4:デフォルトでは「datastore1」となっていますが、変更している場合はその名称。

*5:なお ESXi-7.0U1b の部分に「s」が付いているような場合もあります。これはセキュリティ修正のみを含む(その他のバグ修正は含まない)バージョンを意味するようです。例えば「ESXi-7.0bs-16321839-standard」といったものがそうです。 https://docs.vmware.com/jp/VMware-vSphere/7.0/rn/esxi70b.html

*6:esxcli software profile update -d {depot.zip の場所} -p {プロファイル名}

*7:必要なら SSH サービスを起動と共に立ち上がるように設定変更しておきましょう。