ESXi のオフライン バンドルから、インストーラの ISO イメージ ファイルをエクスポートしてみます。
- はじめに
- PowerCLI と Image Builder
- ISO イメージ ファイルのエクスポート
- 「s」有無によるプロファイルの違い
- standard / no-tools プロファイルの違い
- PowerCLI スクリプト編
- 参考
はじめに
最新版や、特定バージョンの ESXi を利用する場合、たいてい ISO イメージ ファイルからインストールした後にオフライン バンドルとよばれるパッチを適用することになります。
しかし PowerCLI の Image Builder を利用することで、オフライン バンドルの zip ファイルから、そのパッチが適用された状態と同様の ISO イメージ ファイルをエクスポートすることができます。
Image Builder のドキュメントは下記のあたりです。
本来であれば Image Builder は、ハードウェア特有のドライバ追加などの場合に利用されますが、今回はただ、パッチから最新版 ESXi のインストーラを抽出するためだけに利用してみます。
PowerCLI と Image Builder
PowerCLI をインストールしておきます。今回の PowerCLI バージョンは下記です。
PS C:\> Get-Module -Name VMware.PowerCLI -ListAvailable | select Version Version ------- 12.1.0.17009493
Image Builder は PowerCLI に含まれています。
PS C:\> Get-Command -Module VMware.ImageBuilder | ft -AutoSize CommandType Name Version Source ----------- ---- ------- ------ Function Get-ImageBuilderCommand 7.0.0.15902843 VMware.ImageBuilder Cmdlet Add-EsxSoftwareDepot 7.0.0.15902843 VMware.ImageBuilder Cmdlet Add-EsxSoftwarePackage 7.0.0.15902843 VMware.ImageBuilder Cmdlet Compare-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder Cmdlet Export-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-DepotAddons 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-DepotBaseImages 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-DepotComponents 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-DepotInfo 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-DepotVibs 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-EsxSoftwareDepot 7.0.0.15902843 VMware.ImageBuilder Cmdlet Get-EsxSoftwarePackage 7.0.0.15902843 VMware.ImageBuilder Cmdlet New-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder Cmdlet New-IsoImage 7.0.0.15902843 VMware.ImageBuilder Cmdlet New-PxeImage 7.0.0.15902843 VMware.ImageBuilder Cmdlet Remove-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder Cmdlet Remove-EsxSoftwareDepot 7.0.0.15902843 VMware.ImageBuilder Cmdlet Remove-EsxSoftwarePackage 7.0.0.15902843 VMware.ImageBuilder Cmdlet Set-EsxImageProfile 7.0.0.15902843 VMware.ImageBuilder
ISO イメージ ファイルのエクスポート
ESXi のオフラインバンドル(パッチ)を My VMware からダウンロードしておきます。
PS C:\> ls C:\work\iso\ESXi670-201912001.zip ディレクトリ: C:\work\iso Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2020/12/30 6:48 473650008 ESXi670-201912001.zip
Image Builder で、オフライン バンドルを読み込みます。
PS C:\> Add-EsxSoftwareDepot C:\work\iso\ESXi670-201912001.zip Depot Url --------- zip:C:\work\iso\ESXi670-201912001.zip?index.xml
オフラインバンドルには、複数のイメージ プロファイルが含まれています。今回は、VMware Tools のインストーラと、セキュリティパッチ以外の修正も含んでいる「ESXi-6.7.0-20191204001-standard」というイメージ プロファイルを利用します。
PS C:\> Get-EsxImageProfile | ft -AutoSize Name Vendor Last Modified Acceptance Level ---- ------ ------------- ---------------- ESXi-6.7.0-20191201001s-no-tools VMware, Inc. 2019/11/25 11:43:03 PartnerSupported ESXi-6.7.0-20191201001s-standard VMware, Inc. 2019/11/25 11:43:03 PartnerSupported ESXi-6.7.0-20191204001-no-tools VMware, Inc. 2019/11/25 11:43:03 PartnerSupported ESXi-6.7.0-20191204001-standard VMware, Inc. 2019/11/25 11:43:03 PartnerSupported
イメージ プロファイルを指定して、ISO イメージ ファイルをエクスポートします。
PS C:\> Export-EsxImageProfile -ImageProfile ESXi-6.7.0-20191204001-standard -ExportToIso -FilePath C:\work\ESXi-6.7.0-20191204001-standard.iso
ISO イメージ ファイルがエクスポートされました。
PS C:\> ls C:\work\ESXi-6.7.0-20191204001-standard.iso ディレクトリ: C:\work Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/01/02 12:18 351318016 ESXi-6.7.0-20191204001-standard.iso
「s」有無によるプロファイルの違い
プロファイルには、ESXi-6.7.0-20191201001s-standard と ESXi-6.7.0-20191204001-standard のように、名前に「s」が含まれるものがあります。
「s」ありのプロファイルは重要なセキュリティ修正のみが含まれるもので、「s」なしは、それ以外のバグ修正も含まれます。そのため「s」なしのプロファイルの方が、バージョンが高い VIB が含まれます。
PS C:\> $vib_s_standard = (Get-EsxImageProfile "ESXi-6.7.0-20191201001s-standard").VibList | sort Name PS C:\> $vib_standard = (Get-EsxImageProfile "ESXi-6.7.0-20191204001-standard").VibList | sort Name PS C:\> compare $vib_s_standard $vib_standard | Sort-Object InputObject | ft -AutoSize InputObject SideIndicator ----------- ------------- elx-esx-libelxima.so 11.4.1184.1-2.48.13006603 <= elx-esx-libelxima.so 11.4.1184.2-3.89.15160138 => esx-base 6.7.0-3.85.15160134 <= esx-base 6.7.0-3.89.15160138 => esx-update 6.7.0-3.85.15160134 <= esx-update 6.7.0-3.89.15160138 => native-misc-drivers 6.7.0-2.48.13006603 <= native-misc-drivers 6.7.0-3.89.15160138 => net-vmxnet3 1.1.3.0-3vmw.670.2.48.13006603 <= net-vmxnet3 1.1.3.0-3vmw.670.3.89.15160138 => vmkusb 0.1-1vmw.670.2.48.13006603 <= vmkusb 0.1-1vmw.670.3.89.15160138 => vsan 6.7.0-3.85.14840325 <= vsan 6.7.0-3.89.14840357 => vsanhealth 6.7.0-3.85.14840327 <= vsanhealth 6.7.0-3.89.14840358 =>
standard / no-tools プロファイルの違い
ESXi のオフライン バンドルには、standard / no-tools の2種類が含まれています。no-tools は、VMware Tools が含まれないプロファイルです。VIB のリストを比較すると、standard に含まれる VIB が、1つ多く含まれています。
PS C:\> Get-EsxImageProfile | select Name,{$_.VibList.Count} | ft -AutoSize Name $_.VibList.Count ---- ---------------- ESXi-6.7.0-20191201001s-no-tools 142 ESXi-6.7.0-20191201001s-standard 143 ESXi-6.7.0-20191204001-no-tools 142 ESXi-6.7.0-20191204001-standard 143
差分の VIB は「tools-light」です。
PS C:\> $vib_standard = (Get-EsxImageProfile "ESXi-6.7.0-20191204001-standard").VibList | sort Name PS C:\> $vib_no_tools = (Get-EsxImageProfile "ESXi-6.7.0-20191204001-no-tools").VibList | sort Name PS C:\> compare $vib_standard $vib_no_tools | ft -AutoSize InputObject SideIndicator ----------- ------------- tools-light 11.0.1.14773994-15160134 <=
tools-light は、VMware Tools にあたります。
PS C:\> (Get-EsxImageProfile ESXi-6.7.0-20191204001-standard).VibList | select Name,Version,Summary,Description | where {$_.Name -eq "tools-light"} | fl Name : tools-light Version : 11.0.1.14773994-15160134 Summary : VMware Tools VIB for Windows and Linux guests (generated by ESXi server build 15160134) Description : This package contains cdrom and floppy images used to install the VMware Tools inside virtual machines.
PowerCLI スクリプト編
同様のことができる簡易的な PowerCLI スクリプトを作成してみました。ただし特にエラー制御とかはしていません。
下記のように、オフライン バンドルのファイル名とエクスポート先のディレクトリを指定して実行します。
PS C:\work> .\export_esxi-offline-bundle_to_iso.ps1 "C:\work\iso\VMware\ESXi\ESXi670-201912001.zip" C:\work\iso Export ISO File: C:\work\iso\ESXi-6.7.0-20191204001-standard.iso
この ISO ファイルからブートして、ESXi をインストールすることができます。
参考
Image Builder については、少し古いですが下記ブログが参考になります。
- VMware ESXi イメージ管理ベストプラクティス その1 - VMware Japan Blog
- VMware ESXi イメージ管理ベストプラクティス その2 - VMware Japan Blog
以上、Image Builder で ESXi のパッチから ISO イメージ ファイルをエクスポートする話でした。