●久々にESXiのカスタムISOをつくってみた
ブログのタイトルに仮想化という言葉がはいっているのですが、ここ2-3年ESXiなどにちゃんと触れていないことに気づき、後ろめたい気持ちがあったので、久々に仮想化について記載いたします。
今回は自作PCをくみ上げ、ESXi 6.7をインストールしてみました。
※7じゃなくて6.7な理由は、自作パソコンをくみ上げた後にオンボードnicがRealtekさんだったことに気づいたためです。
ESXi 6.7までは有志の方が作ったRealtekのドライバを使うことができたようなのですが、7では使えないらしく、泣く泣くこの選択になりました。。。
そのため、インストールではなく、カスタムイメージの作成から始まります。
※というかインストールはいろんな人がすでにブログで書いており、現状ほぼ自分も迷わないので、忘備録としてカスタムISOの作成だけを記載します。。汗
普段Workspace ONEに触れている私は、ESXiのカスタムイメージを作成する機会が滅多になく、作成のたびに2時間程度調べて格闘しなければいけなかったので、この機会に忘備録として記載してしまいます。。
なお、必要なイメージやVIBなどは以下を利用しました。
手順は主に以下を参考にしました。
●ESXiのカスタムイメージ作成をやる前に、概念をぼんやり思い出そう
今回のESXiカスタムイメージ作成では、以下二つの概念が出てきます。
- ソフトウェアデポ
これはVIBなどのソフトウェアモジュールをプールしたモノのようです。ESXiのオフラインバンドルや拡張VIBモジュールのzipを入手したら、Add-EsxSoftwareDepotコマンドレットを使用して、とりあえずソフトウェアデポに追加していきます。
- プロファイル
ESXiのイメージのプロファイルです。上記のソフトウェアデポに登録されたモジュールのうち、どのソフトウェアモジュールを使ってESXiのイメージを構成するかを定義したものです。
流れとしては、「欲しいソフトウェアモジュールをソフトウェアデポに放り込む→どのモジュールを含むか指定したプロファイルを定義して、プロファイルを使ってソフトウェアデポの中にあるVIBを選択し、カスタムISOに固める」という感じになるのかな、と思います。
※ESXiのイメージ作成が久しぶりすぎて、厳密には上記理解は間違ってそうな気がしますが。。。。
●とりあえずやってみよう!
ではさっそく始めていきます。
今回、デスクトップにesxiのイメージを編集するためのディレクトリを作成し、その中に必要なオフラインバンドルとコミュニティサポートのRealtekドライバのzipファイルを配置しています。
PS C:\Users\dyajima\Desktop\esxi> dir
ディレクトリ: C:\Users\dyajima\Desktop\esxi
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2020/12/23 19:49 473650008 ESXi670-201912001.zip
-a---- 2020/12/23 19:03 1131668 net55-r8168-8.045a-napi-offline_bundle.zip
PS C:\Users\dyajima\Desktop\esxi>
ESXiのオフラインバンドルをソフトウェアデポに登録します。
PS C:\Users\dyajima\Desktop\esxi> Add-EsxSoftwareDepot .\ESXi670-201912001.zip
Depot Url
---------
zip:C:\Users\dyajima\Desktop\esxi\ESXi670-201912001.zip?index.xml
PS C:\Users\dyajima\Desktop\esxi>
ちょっとコマンドの証跡を取り忘れてしまったのですが、ソフトウェアデポにバンドルを登録したら、"Get-EsxSoftwarePackage"コマンドで現在ソフトウェアパッケージとしてデポに登録されたソフトウェアの一覧を一度確認して控えておいてください。
次に、変数$aにESXのイメージプロファイルを格納します。
PS C:\Users\dyajima\Desktop\esxi> $a =get-esximageprofile
こうしておくと以下のように $a という変数を入力することで、PowerShell上でESXiのプロファイルなどを扱えます。
PS C:\Users\dyajima\Desktop\esxi> $a
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-6.7.0-20191201001s-no-... VMware, Inc. 2019/11/25 1... PartnerSupported
ESXi-6.7.0-20191201001s-sta... VMware, Inc. 2019/11/25 1... PartnerSupported
ESXi-6.7.0-20191204001-no-t... VMware, Inc. 2019/11/25 1... PartnerSupported
ESXi-6.7.0-20191204001-stan... VMware, Inc. 2019/11/25 1... PartnerSupported
この状態では、変数 $a の中に4つのイメージプロファイルが格納されています。
多分変数 $a はArray型の変数(?)のようなので、後ろに[数字]として挙げると、上から数えて[数字]番目のイメージプロファイルだけ見ることができます。また、.Nameなどと属性を指定してあげると、その属性だけを表示してくれます。
※カウントは0番目から開始されます。
PS C:\Users\dyajima\Desktop\esxi> $a[0]
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
ESXi-6.7.0-20191201001s-no-... VMware, Inc. 2019/11/25 1... PartnerSupported
PS C:\Users\dyajima\Desktop\esxi> $a[0].Name
ESXi-6.7.0-20191201001s-no-tools
PS C:\Users\dyajima\Desktop\esxi>
変数 $a の中の各イメージプロファイルの詳細を見たいときは以下のようにします。
今回は以下のイメージプロファイルをもとにカスタムイメージを作成したいと思います。
PS C:\Users\dyajima\Desktop\esxi> get-esximageprofile -name $a[1].Name | select -Property *
Name : ESXi-6.7.0-20191201001s-standard
Vendor : VMware, Inc.
Author :
Description : Updates ESXi 6.7 Image Profile-ESXi-6.7.0-20191201001s-standard
CreationTime : 2019/11/25 11:43:03
ModifiedTime : 2019/11/25 11:43:03
ReadOnly : False
VibList : {ata-pata-amd 0.3.10-3vmw.670.0.0.8169922, scsi-megaraid-mbox 2.20.5.1-6vmw.670.0.0.8169922, vmware-esx-esxcli-nvme-plugin 1.2.0.36-2.48.13006603, elxnet 11.4.1097.0-5vmw.67
0.3.73.14320388...}
AcceptanceLevel : PartnerSupported
Guid : bd75ba940f7811ea9763005056affc1c
Rules :
StatelessReady : True
PS C:\Users\dyajima\Desktop\esxi>
次に選んだイメージプロファイルをコピーして、新しくイメージプロファイルを作成します。
※今回、コミュニティサポートのRealtekのVIBモジュールを追加してカスタムイメージを作るので、AcceptanceLevelをcommunityにしないと、後でコミュニティサポートのrealtekのドライバが追加できません
PS C:\Users\dyajima\Desktop\esxi> New-EsxImageProfile -CloneProfile ESXi-6.7.0-20191201001s-standard -Name RealtekVIBaddded -AcceptanceLevel community
コマンド パイプライン位置 1 のコマンドレット New-EsxImageProfile
次のパラメーターに値を指定してください:
(ヘルプを表示するには、「!?」と入力してください。)
Vendor: Custom
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
RealtekVIBaddded Custom 2019/11/25 1... CommunitySupported
PS C:\Users\dyajima\Desktop\esxi>
これで私の欲しいESXiカスタムイメージを作成するためのプロファイルが作成されました。
次に、ダウンロードしたRealtekのドライバを含むVIBをソフトウェアデポに登録します。
PS C:\Users\dyajima\Desktop\esxi> Add-EsxSoftwareDepot -DepotUrl zip:C:\Users\dyajima\Desktop\esxi\net55-r8168-8.045a-napi-offline_bundle.zip?index.xml
Depot Url
---------
zip:C:/Users/dyajima/Desktop/esxi/net55-r8168-8.045a-napi-offline_bundle.zip?index.xml
PS C:\Users\dyajima\Desktop\esxi>
ちょっとコマンドの証跡を取り忘れてしまったのですが、ソフトウェアデポにVIBを登録したら、"Get-EsxSoftwarePackage"コマンドで現在ソフトウェアパッケージとしてデポに登録されたソフトウェアの一覧を一度確認して控えておいてください。
ESXiのオフラインバンドル登録直後のソフトウェアパッケージの一覧に、net55-r8168という名前のソフトウェアパッケージが追加されているはずです。そのパッケージを、ESXiカスタムイメージを作成するためのプロファイルに追加します。
PS C:\Users\dyajima\Desktop\esxi> Add-EsxSoftwarePackage -ImageProfile RealtekVIBaddded -SoftwarePackage net55-r8168
Name Vendor Last Modified Acceptance Level
---- ------ ------------- ----------------
RealtekVIBaddded Custom 2020/12/23 1... CommunitySupported
PS C:\Users\dyajima\Desktop\esxi>
最後に、ISOイメージとしてエクスポートすれば、カスタムISOの完成です。
※今回はHomelabのために、パッケージ間の依存関係とか気にせずカスタムイメージを作成しましたが、本番サーバにあてるイメージを作成するときは、ちゃんと確認しましょう。。汗
PS C:\Users\dyajima\Desktop\esxi> Export-EsxImageProfile -ImageProfile RealtekVIBaddded -ExportToIso -FilePath C:\Users\dyajima\Desktop\esxi\RealtekVIBaddded.iso
PS C:\Users\dyajima\Desktop\esxi>
以上です。