この記事では、コマンドラインから VMware ESXi ホストを手動でアップデートする方法について解説します。確かに、vSphere Update Manager や Lifecycle Manager に慣れている人にとっては、あまりスマートな方法とは言えませんが、スタンドアロンホストやテスト環境でパッチ適用やアップグレードが必要になることもあります。コマンドラインから行うのはesxcli難しそうに思えるかもしれませんが、一度コツをつかんでしまえば簡単です。通常、これはセキュリティパッチ、リリース中のマイナーアップグレード、あるいは ESXi バージョン間の切り替え(6.7 から 7.0 や 8.0 への移行など)に用いられます。GUI の不具合を回避し、スクリプト化や自動化が可能なため、便利です。ただし、ホストが VMware のリポジトリから直接アップデートを取得していない場合や、ネットワークが不安定な場合は、このプロセス全体が予期せず失敗する可能性があるので注意してください。また、大規模な導入では、VMware が推奨する方法は公式ツールを使用することですが、場合によっては手動で行う必要があることもあります。最後に再起動が必要になることを想定して、サーバーのハードウェアがアップグレードに対して正式にサポートされていることを確認してください。もちろん、VMware はそれを非常に複雑にする必要があるためです。」
CLI を使用して VMware ESXi を数ステップでアップグレードする方法
現在のバージョンを確認して準備する
- まず、ESXiホストにSSHで接続します。コンソールからSSHが有効になっていない場合は、有効にしてください。これは、ダイレクト・コンソール・ユーザー・インターフェース(DCUI)の「トラブルシューティング・オプション」から行うことができます。
- で現在の ESXi のバージョンを確認してください
vmware -v。たとえば、 のような出力が得られますVMware ESXi 8.0.2 build-22380479。これで現在インストールされているものがわかります。 - アップデートがいつインストールされたかを確認したい場合は、 を実行してください
esxcli software vib list | grep 'Install\|esx-base'。設定によっては、これによりパッチやアップデートがいつ適用されたか、現在のプロファイルがどのような状態かを確認できます。
オンラインアップデートの設定
- VMwareからアップデートを取得する前に、ファイアウォールルールでVMwareリポジトリへのHTTP/HTTPSトラフィックが許可されていることを確認してください。ルールは次のようにして開くことができます
esxcli network firewall ruleset set -e true -r httpClient。場合によっては動作しますが、特定の設定では、特定のファイアウォール設定を確認する必要がある場合があります。 - VMwareデポで利用可能なプロファイルを一覧表示し、アップグレード可能なものを確認してください。ESXi -8.0U2b-23305546-standard
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xmlなどのオプションが表示されます。パッチ適用ポリシーに適したものを選択してください。
ホストをメンテナンスモードにする — なぜ?
- 実行
esxcli system maintenanceMode set --enable=true。これは、アップグレード中にホストが仮想マシンを実行していないことを確認するための優れた安全対策です。また、一部のコマンドはメンテナンスモードでないと実行できません。ある設定では最初はうまくいきましたが、別の設定ではうまくいきませんでした。このように一貫性がないのは奇妙です。
実際のアップグレードを実行する
- いよいよ、いよいよ本当の魔法です。選択したプロファイルを使ってアップグレードしましょう。例えば、
esxcli software profile update -p ESXi-8.0U2b-23305546-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml。このコマンドはアップデートを取得して適用します。「お使いのCPUは公式にはサポートされていません」といったCPUサポートに関する警告が表示されることがありますが、これは煩わしいものですが、 を使えば回避できます-no-hardware-warning。これについては後ほど詳しく説明します。 - いくつかの警告が表示される可能性がありますが、目標はアップデートが成功したことと、再起動が必要であることを通知するメッセージが表示されることです。例えば、「アップデートは正常に完了しましたが、変更を有効にするにはシステムを再起動する必要があります。」などです。
アップデートの終了 – 再起動と確認
- 必要に応じてファイアウォール ルールを無効にします
esxcli network firewall ruleset set -e false -r httpClient。安全第一。 - ホストを再起動します
reboot。システムが停止するため、必要に応じて仮想マシンがオフになっているか、ストレージ vMotion がオンになっていることを確認してください。 - 再起動後、再度実行してアップグレードを確認する
vmware -vか、 でプロファイルを確認しますesxcli software profile get。
オンラインアップグレードが失敗したり、 「プロセスからデータを取得できませんでした」のような分かりにくいエラーが表示されたりした場合は、オフラインの方法(バンドルをダウンロードしてローカルにインストールする方法)をお勧めします。こうすることで、ネットワーク接続やVMwareのオンラインデポに頼る必要がなくなります。これらのデポは、不安定だったりプロキシによってブロックされたりすることがあるからです。
オフラインバンドル方式 — インターネットが使えないとき
- VMware のパッチ ポータルにアクセスしてログインします。
- ESXi(組み込みおよびインストール可能)製品を選択し、必要なビルドを見つけてください。最新のオフラインバンドルZIPファイル(またはアップグレードパッチ)をダウンロードしてください。
- vSphere ClientのデータストアブラウザまたはSSH経由で、ZIPファイルをローカルデータストアにアップロードしてください。容量が不足している場合は、VMFSデータストアを拡張するか、ESXiに接続された外付けUSBドライブを使用してください。
- ホストに SSH で接続し、メンテナンス モードに入ります
vim-cmd /hostsvc/maintenance_mode_enter。 - 実行して
esxcli software sources profile list --depot /vmfs/volumes/your_datastore/folder/your_bundled_offline.zip利用可能なプロファイルを確認します。 - 次の ZIP からアップグレードします: 特定のものが必要な場合は
esxcli software vib update --depot /vmfs/volumes/your_datastore/folder/your_bundled_offline.zip追加してください。--profile - で再起動し
reboot -f、メンテナンス モードを終了します:vim-cmd /hostsvc/maintenance_mode_exit。 - でバージョンを確認してください
vmware -v。うまくいけば、新しいビルドが表示されます。
プロのヒント:特に複数のホストを管理している場合は、PowerCLIを使ってこれらすべてをスクリプト化することもできます。ただし、これらを実行する前に、新しいESXiバージョンのハードウェアサポートを確認してください。VMware互換性ガイドが役立ちます。
以上です。確かに少し面倒ですが、何度かやってみるとそれほど難しく感じなくなります。よくあるトラブルやエラーには備えてください。しかし、GUIツールが使えない場合、ESXiホストを最新の状態に保つ確実な方法になります。