vm.gowatana.jp

NEOにほんごVMware(仮)

ESXi のオフライン バンドルから ISO イメージ ファイルを作成してみる。

ESXi のオフライン バンドルから、インストーラの ISO イメージ ファイルをエクスポートしてみます。

はじめに

最新版や、特定バージョンの ESXi を利用する場合、たいてい ISO イメージ ファイルからインストールした後にオフライン バンドルとよばれるパッチを適用することになります。

しかし PowerCLI の Image Builder を利用することで、オフライン バンドルの zip ファイルから、そのパッチが適用された状態と同様の ISO イメージ ファイルをエクスポートすることができます。

Image Builder のドキュメントは下記のあたりです。

docs.vmware.com

本来であれば 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 スクリプトを作成してみました。ただし特にエラー制御とかはしていません。

gist.github.com

下記のように、オフライン バンドルのファイル名とエクスポート先のディレクトリを指定して実行します。

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 をインストールすることができます。

f:id:gowatana:20210102123528p:plain

参考

Image Builder については、少し古いですが下記ブログが参考になります。

以上、Image Builder で ESXi のパッチから ISO イメージ ファイルをエクスポートする話でした。