ESXi-Customizer-PSを用いたVMware ESXi 6.7インストールの現状

ESXi-Customizer-PSを用いたVMware ESXi 6.7インストールの現状
Page content

Mini PCを使って2016年11月に構築したVMware ESXiホストは、ストレージがHDDであるため、動きが少し緩慢であった。SSDへの換装を目論んでいたところ、このたび480GBのものを約六千円で購入できたので、ESXiホストのHDD→SSD換装をやってみることに。

内蔵ストレージの容量としては1TB→480GBの縮小なので、そのままdd的なコピーとはいかず、ESXiのデータストアの仮想マシンイメージは外部媒体にいったん退避させた。そしてSSDへVMware ESXiをインストールし直したのだが、このインストールが一筋縄ではいかなかった。

数時間かかった私の作業が誰かの時短に役立つように、顛末をメモしておきます。ちなみに購入したSSDはこちら↓。

CFD販売 CSSD-S6B480CG3VX CFD CG3VX シリーズ SATA接続 SSD 480GB

CFD販売 CSSD-S6B480CG3VX CFD CG3VX シリーズ SATA接続 SSD 480GB

シー・エフ・デー販売

0) 概要

前回 (2016/11)今回 (2019/03)
VMware ESXi Ver.6.0 Update 26.7 Update 1
内蔵ストレージ1TB SSHD; TOSHIBA MQ02ABD100H480GB SSD; CFD CSSD-S6B480CG3VX

1) ESXiカスタムイメージの作成

ESXiのカスタムイメージを、定番ツールであるESXi-Customizer-PSを用いて作成する。ESXi-Customizer-PSの実行には、WindowsのPowerShell環境が必要だ。

ESXi-Customizer-PSでの追加パッケージを確認

ESXiをインストールするVorke V1は、NICがRealtekのカニさんチップなので、ESXi-Customizer-PSの-loadオプションで指定する追加パッケージとして「net55-r8168」が必要になる。前回のインストール時に追加した他のパッケージ「cpu-microcode」「sata-xahci」は、下記のように執筆時点では不要となっていた。

-loadオプション前回 (2016/11) 6.0u2今回 (2019/03) 6.7u1
net55-r8168■必要■必要
cpu-microcode■必要□不要 (ESXi 6.0向け)
sata-xahci■必要□不要 (ESXi 6.5から不要)

VMware PowerCLIのインストール

PowerCLI 最新版 (11.2系) ではうまくいかず

ESXi-Customizer-PSのRequirements (必要なもの) に挙がっている「VMware PowerCLI」は、執筆時点のPowerCLI公式情報では次のように、PowerShell上のInstall-Moduleコマンドを用いてインストールせよと案内されている。

PS> Install-Module -Name VMware.PowerCLI

しかし、このようにしてVMware PowerCLIの最新版 (11.2系; おそらく11.2.0.12483638だった) をインストールした状態では、ESXi-Customizer-PSの起動が次のように失敗する。「VMware.ImageBuilder.Impl.IfServer」をキーワードにウェブ検索してみたものの、失敗の原因や簡単な解決策はよくわからず。

PS> .\ESXi-Customizer-PS-v2.6.0.ps1 -vft -load net55-r8168
(中略)
An unexpected error occured:
'VMware.ImageBuilder.Impl.IfServer' のタイプ初期化子が例外をスローしました。

PowerCLI 6.3 R1を導入

そこで NUC8でESXiを動かすまでの道のり - Qiita を参考にする。問題を誘発していそうなVMware PowerCLIのPowerShellインストール版を避けて、一般的なインストーラーを用いる版であるVMware PowerCLI 6.3 R1をインストールすることにした。

なお、Install-ModuleコマンドでインストールしてしまったPowerCLIの最新版は、PowerCLI 6.3 R1をインストールする前に、VMware関連の他のパッケージ含め完全削除したほうがよいと思われる。(私の場合はExplorerでPowerShellのパッケージ保存場所を探して、そこにある「VMware.*」フォルダをすべて削除したが、これが正しい方法かは不明)

PowerCLI 6.3 R1をインストーラーで導入したあとは、ESXi-Customizer-PSの起動時に「‘VMware.ImageBuilder.Impl.IfServer’ のタイプ初期化子が例外をスローしました (The type initializer for ‘VMware.ImageBuilder.Impl.IfServer’ threw an exception.)」が発生せず、先へ進むことができる。

ESXi-Customizer-PSでイメージ作成

次のように、PowerShellのスクリプト実行ポリシーを一時的に変更しておき、ESXi-Customizer-PSを、追加パッケージ指定などの必要なオプションを付けて実行する。

PS> Set-ExecutionPolicy RemoteSigned -Scope Process # スクリプト実行ポリシーを一時的に変更

PS> .\ESXi-Customizer-PS-v2.6.0.ps1 -vft -load net55-r8168

すると、次のような画面出力とともに、ESXiカスタムイメージである「ESXi-6.7.0-20190104001-standard-customized.iso」が保存された。

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\ABC\AppData\Local\Temp\ESXi-Customizer-PS-2308.log ...

Running with PowerShell version 5.1 and VMware PowerCLI version 6.3.0.0

Connecting the VMware ESXi Online depot ... [OK]

Connecting the V-Front Online depot ... [OK]

Getting Imageprofiles, please wait ... [OK]

Using Imageprofile ESXi-6.7.0-20190104001-standard ...
(dated 01/16/2019 10:43:42, AcceptanceLevel: PartnerSupported,
Updates ESXi 6.7 Image Profile-ESXi-6.7.0-20190104001-standard)

Load additional VIBs from Online depots ...
   Add VIB net55-r8168 8.045a-napi [New AcceptanceLevel: CommunitySupported] [OK, added]

Exporting the Imageprofile to 'C:\Users\ABC\Desktop\ESXi-6.7.0-20190104001-standard-customized.iso'. Please be patient ...


All done.

2) ESXiインストール用のUSBメモリ作成

ESXiカスタムイメージ「ESXi-6.7.0-20190104001-standard-customized.iso」を、USBメモリに焼いて、ESXiインストールのためのブートメディアを作成する。ブートメディアの作成には、Rufusというツールを使用。次のページにRufusの使い方の詳しい説明があるので、参考にした。

3) ESXiのインストール

ks.cfgを用意する

Intel NUC(NUC5CPYH)にVMware ESXiを入れる - Qiita を参考に、ブートメディアに追加するKickstart構成ファイルks.cfgを作成する。ks.cfgの内容を抜粋すると次の通り。

vmaccepteula
rootpw mypassword
install --firstdisk=local --overwritevmfs
network --bootproto=dhcp --device=vmnic0
reboot
%post --interpreter=python --ignorefailure=true
import time
stampFile = open('/finished.stamp', mode='w')
stampFile.write( time.asctime() )

ブート時に行うこと・パスワードの条件

上記ks.cfgをルートディレクトリに保存したブートメディアでPCを起動して、ESXiインストーラー起動中に「Shift+O」を押すと画面の最下部にrunweaselで始まる入力行が現れる。その後ろに、次のように「ks=」以降の文字列を追加入力してエンターキーを押せば、インストールが進行していくはず。

runweasel ks=usb:/ks.cfg ignoreHeadless=TRUE

ちなみに手抜きして、rootpwをそのまんま「mypassword」にしておくと、次の画面のようにエラーが発生する。

VMwareのドキュメント ESXi のパスワードとアカウントのロックアウト によれば、設定可能なパスワードの条件として次の定義があるのでご注意。

  • パスワードを作成する際、デフォルトでは、小文字、大文字、数字、および特殊文字(アンダースコアやダッシュなど)の 4 種類の文字を混在させる必要があります。
  • デフォルトでは、パスワードの長さは 8 文字以上 40 文字未満です。
  • パスワードには、辞書ファイル内の単語または単語の一部を含めることはできません。

インストール完了・管理画面へ

ks.cfg内のrootpwを、パスワードの要件を満たす適切なものに変更し、ESXiのインストールにもう一度挑戦すると、今回の環境ではおよそ5分でインストールが完了してPCに再起動がかかった。

その後しばらくしてから、ESXiホストとなったPCにDHCPで割り当てられるIPアドレスへ、ウェブブラウザでhttpsアクセス (https://aaa.bbb.ccc.ddd/) すると、ESXiの青基調の管理画面を開くことができる。