ESXi のカスタム ISO を作る備忘録です.
先日,Intel の NUC 用のインストール ISO ファイルを作ったのですが,色々情報が散らばっていてかなり時間がかかってしまったので,現時点(2018年10月時点)の最新の情報をまとめておきます.
PowerCLI ver.11
まず,やらなければならないことは,ESXi をコマンドラインから操作する PowerShell のパッケージである PowerCLI をインストールすることなのですが,ググって出てくる多くの情報が ver 6.5 u1 以前のものです.
ver 6.5 u1 以前はインストーラーからパッケージを導入出来た様ですが,これ以降のものは PowerShell からコマンドで導入するのが正しい入れ方の様です.
詳しくは,
にある「VMware PowerCLI User’s Guide」を参照していただければ良いと思いますが,必要最低限のところのみ以下に抜粋します.
まず,インストール可能なオペレーティングシステムは
OS Type |
64-Bit
|
Server |
|
Workstation |
|
となっています.また,以下の PowerShell の ver で導入できる様です.
- Windows PowerShell 3.0
- Windows PowerShell 4.0
- Windows PowerShell 5.0
- Windows PowerShell 5.1
- PowerShell Core 6.1 (for Ubuntu and macOS)
さらに,PowerCLI を導入する前に,
OS Type | .NET Version | PowerShell Version |
---|---|---|
Windows | .NET Framework 4.5, 4.5.x, 4.6, 4.6.x or 4.7.x | Windows PowerShell 3.0, 4.0, 5.0, or 5.1 |
Ubuntu | .NET Core 2.0 | PowerShell Core 6.1 |
macOS | .NET Core 2.0 | PowerShell Core 6.1 |
も入れておかないといけない様です.なお,今回は Windows10 でしたので,必要条件は特に何もせずに満たしていました.
インストール方法は,PowerShell のコンソールに以下の通り入力するだけです.
> Install-Module VMware.PowerCLI -Scope CurrentUser 続行するには NuGet プロバイダーが必要です PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または 'C:\Users\hyt\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"):Y 信頼されていないリポジトリ 信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery' からモジュールをインストールしますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y >
PowerCLI スクリプトの実行許可
次に PowerCLI スクリプトの実行許可の状態を変更します.デフォルトだと Microsoft のもの以外実行できませんので,その都度許可をすれば全てのスクリプトを実行できる状態にします.
なお,PowerCLI を実行するだけなら,もう1段階高いセキュリティの実行許可状態でも構いませんが,今回は外部のスクリプト(ESXi-Customizer-PS)を利用しますので,この実行許可状態にしておく必要があります.
実行許可の変更は,管理者モードで Powershell コンソールを立ち上げて,
> Set-ExecutionPolicy Unrestricted 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y >
とすれば良いだけです.
ESXi-Customizer-PS
ESXi のカスタマイズ版 ISO イメージを作成するための,ESXi-Customizer-PS を
からダウンロードします.現時点での最新版は「ESXi-Customizer-PS-v2.6.0.ps1」です.
なお,ESXi-Customizer というプログラムもありますが,これはかなり古く現在はメインテナンスされていない様です.
次に,PowerShell を起動し,次のコマンドを入力します.
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
次にVMWare のサイトが TLS1.2 に対応したことに伴う変更への対応のためのようで,これを実行しておかないと,エラーで ISO の作成がストップします(以下参照).
続いて,ESXi-Customizer-PS を実行します.管理者権限ではなく,一般ユーザー権限で大丈夫です.
> .\ESXi-Customizer-PS-v2.6.0.ps1 セキュリティ警告 信頼するスクリプトのみを実行してください。インターネットから入手したスクリプトは便利ですが、コンピューターに危害を及ぼ す可能性があります。このスクリプトを信頼する場合は、この警告メッセージが表示されないように、Unblock-File コマンドレットを使用して、スクリプトの実行を許可してください。C:\Users\hyt\Desktop\ESXi-Customizer-PS-v2.6.0.ps1 を実行しますか? [D] 実行しない(D) [R] 一度だけ実行する(R) [S] 中断(S) [?] ヘルプ (既定値は "D"): R This is ESXi-Customizer-PS Version 2.6.0 (visit https://ESXi-Customizer-PS.v-front.de for more information!) (Call with -help for instructions) Logging to C:\Users\HYTSUT~1\AppData\Local\Temp\ESXi-Customizer-PS-4976.log ... Running with PowerShell version 5.1 and VMware PowerCLI version 11.0.0.10336080 Connecting the VMware ESXi Online depot ... [OK] Getting Imageprofiles, please wait ... [OK] Using Imageprofile ESXi-6.7.0-20181004001-standard ... (dated 10/08/2018 10:26:36, AcceptanceLevel: PartnerSupported, For more information, see http://kb.vmware.com/kb/58849.) Exporting the Imageprofile to 'C:\Users\hyt\Desktop\ESXi-6.7.0-20181004001-standard.iso'. Please be patient ... All done.
現時点だと,これで「ESXi-6.7.0-20181004001-standard.iso」が出来ます.WMware から直接ダウンロードできるものは4/3版だが,ESXi-Customizer-PS だと 6.7 u1 相当のものができる様です.
最新のドライバを含むインストール ISO ファイルを作るときは,以下のように実行します(Intel NUC7 のLANチップ I219V に対応する場合).
> .\ESXi-Customizer-PS-v2.6.0.ps1 -v67 -load ne1000
また,サードパーティ等のドライバを含むインストール ISO を作る場合は,例えば,Realtek のドライバならば,
から対応する vib ファイル(net55-r8168-8.045a-napi.x86_64.vib)をダウンロードして,vibs フォルダ以下に配置してから,
> .\ESXi-Customizer-PS-v2.6.0.ps1 -v67 -pkgdir vibs
の様に実行すると,欲しい ISO ファイルが出来ます.
以上!