メインコンテンツへスキップ
  1. Blogs/

Image Builderでカスタムイメージを作る

·3430 文字·
Blog VMware VSphere ESXi
hiroki
著者
hiroki
クラウドを作るお仕事をしてます。
目次
esxi-install-update - 関連記事
3: << この記事 >>

はじめに
#

ESXiのインストールには、VMware純正のイメージのほかにベンダーのカスタムイメージを使うことがあると思います。 しかしベンダーによっては全てのESXiのversionをカバーしているわけではなく、歯抜けが結構ある印象です。

この時は通常以下の手段を取ることになると思います。

ベンダーイメージでインストール → VMwareの純正zipバンドルでアップデート → 任意のマイナーバージョンへ

しかし2段階のアップデートはESXiの再起動等も伴い面倒です。。。

これを解決するのがvCenterに搭載されているImage Builder機能になっており、自分で好きなvibを選んでカスタムメイドのESXiイメージ(profile)を作成することができます。

1. Image Builderとは?
#

今まではpowerCLIで提供されていましたが、vCenterのGUI上からも操作ができる様になった、カスタムメイドのESXiイメージ作成ツールです。公式doc

7.0系のvCenterを使っていれば追加のinstall等不要で使用することができます。初回だけ有効化をする必要があるので管理者権限でloginし以下の画面から有効にしましょう。

カスタムイメージを作るだけなので、どのvCenterで実施してもOKです。 後述しますが読み込むzipバンドルの量だけ、vCenterのdiskを消費するので(上限あり)検証環境のvCenter等が良いでしょう。

alt text

右側の「ENABLE IMAGE BUILDER」をクリックしましょう。左側の「AUTO DEPLOY」は今回使いません。

AUTO DEPLOYはPXE-BOOTを使って、ESXi自体を自動でinstallするシステムになります。公式doc

2. zipバンドルを読み込む
#

Image Builderが読み込めるのはzipバンドルのみなのでzipバンドルを手元にdownload後、右上の「import」から追加します。

読み込みはzipバンドルだけですが、出力はisoとzip形式の両方に対応しています。
alt text

Image Profiles
#

zipバンドルの読み込みが完了すると、まずはImage Profilesのタブが表示され、profileの確認、clone、比較ができます。

alt text

Software Pacakges
#

Software Pacakgesでは、zipバンドルに搭載されているvibの一覧を把握することができます。

alt text

以下の記事で解説したときには、install後esxcli software vib listでvibを確認していましたが、これだとinstall前にGUIで確認できるので非常に便利です。

profile updateとprofile installの違い
·6995 文字
Blog VMware VSphere

3. profileの比較をしてみる
#

「Image Profiles」画面にて、4つのprofileが表示されていますが、これらにどんな違いがあるかご存知でしょうか? 折角なのでImage Builderの比較機能で比較してみます。

比較機能は「Image Profiles」タブの「Compare To」ボタンから実行できます。

-no-toolsと-standardの違い
#

これは名前から推測できますが、vmware-toolsのvibが入っているかの違いになるようです。

121個のvibの中、same=120、Additional=1となっているのでtoolsありなし以外の違いは無いことがすぐに分かります。

alt text

「s」の有無の違い
#

ESXi-8.0U2sb-23305545-standardのように「s」の文字列があるprofileも存在します。 差を見てみると「s」ありの方がversionが古く、「s」なしの方がversionが新しくなっていることが分かります。

alt text

リリースノートをみると、機能更新を含まないセキュリティーアップデートのみなのでvibのversionに差異が現れているようです。

alt text
Figure by 公式docs

4. 新しいprofileを作る
#

さて本題のベンダーイメージ + VMware純正zipバンドルを使ってカスタムメイドのESXiイメージを作ってみます。

1. ベンダーイメージのzipバンドルを読み込み

alt text

2. カスタムデポを作成する

Image Builderでは各種zipバンドルをデポという形で管理しています。Importの時はデポ名を指定して作成していましたが、今回は新しく作るのでNewからカスタムデポを作ります。

alt text

3. 既存のprofileをclone

ベースにしたいdepot、profileを選びcloneを実施します。Software depotは先ほど作ったカスタムデポ指定します。

命名は分かりやすいように適当な名前に変更しておきます。

alt text

4. 追加、削除するvibを選ぶ

Depotのカラムに他のデポのvibも表示されているので、他のデポのvibをcloneしたdepotに追加や削除ができます。

alt text

一度ベンダーインストール → VMware純正パッチでアップデート後に、esxcli software vib list等でどのvibが採用されているか検証しておきましょう。

今回はベンダー専用vibをVMware純正zibバンドルに混ぜ込んでみます。

alt text

5. profileのバリデーション

vibを選びNEXTで進めるとバリデーションが実行されます。

バリデーションがOKであれば、以下のように作成画面になるのでOKを押します。

alt text

例えばESXiのベースとなるesx-baseを何も選択しないで、次に進めてみます。

alt text

するとエラーで警告してくれます。

alt text

6. 確認のため比較

作成が成功するとカスタムデポの中に新しいprofileができるので、比較機能で意図したvib変更が反映されているかcheckしましょう。

今回はVMware純正パッチにベンダー専用vibを追加しただけなので、以下のようになりました。

alt text

本来はベンダーイメージ + VMware純正zibバンドルでは、nicのdriver等も変わってきます。詳細はこちらの記事へ

今回は例のためにベンダー専用vibだけ追加しているので注意してください。

8. EXPORTしてダウンロード

全てOKであれば、カスタムデポのprofileを選択してEXPORTをすればカスタムイメージの作成は完了です。ISOかZIPか選んでEXPORT後にダウンロードしましょう。

Optionの値は以下の公式docsで解説されていますが、基本的にOptionはつけなくてOKです。 https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-esxi-installation/GUID-429504DD-BE12-40F4-919B-192E6CA7C860.html

alt text

一度EXPORTをするとDOWNLOADボタンしか表示されなくなりますが、以下のメニューから再度ISOかZIPを選んで再度EXPORTできます。
alt text

5. よくあるエラー
#

再現性がない場合がよくあるので、エラーをみて良く分からなかった場合はとりあえずretryをしてみましょう。 retryで解決することも多々あります。

diskスペースが足らない

経験したのはEXPORTに失敗した時ですが、IMPORT時にもdiskスペースが足らないという警告が出るらしいです。

alt text

Alertが発生していたので、

alt text

VAMIを確認すると、Image Builderに割り当てられたdiskスペースが足りないことが分かります。

alt text

Image Builder専用の領域が確保されているので、vCenter自体の容量枯渇ではないです。

root@v0-vcsa-01 [ ~ ]# df -h
Filesystem                                Size  Used Avail Use%
devtmpfs                                  4.0M     0  4.0M   0%
tmpfs                                     6.9G  1.3M  6.9G   1%
tmpfs                                     2.8G  1.3M  2.8G   1%
tmpfs                                     4.0M     0  4.0M   0%
/dev/mapper/vg_root_0-lv_root_0            47G   19G   27G  41%
/dev/sda3                                 488M   37M  416M   9%
/dev/sda2                                  10M  2.0M  8.1M  20%
tmpfs                                     6.9G  4.8M  6.9G   1%
/dev/mapper/seat_vg-seat                  9.8G  120M  9.2G   2%
/dev/mapper/vg_lvm_snapshot-lv_lvm_snapsh 147G   28K  140G   1%
/dev/mapper/log_vg-log                    9.8G  1.7G  7.7G  18%
/dev/mapper/lifecycle_vg-lifecycle         98G  4.0G   89G   5%

# Image Builderの領域にはまだ空きがありそうに見えますが。。。
/dev/mapper/imagebuilder_vg-imagebuilder  9.8G  1.9G  7.4G  20%
/dev/mapper/vtsdb_vg-vtsdb                9.8G   35M  9.2G   1%
/dev/mapper/updatemgr_vg-updatemgr         98G  430M   93G   1%
/dev/mapper/core_vg-core                   25G  276K   24G   1%
/dev/mapper/vtsdblog_vg-vtsdblog          4.9G   17M  4.6G   1%
/dev/mapper/dblog_vg-dblog                 15G   49M   14G   1%
/dev/mapper/db_vg-db                      9.8G  143M  9.1G   2%
/dev/mapper/archive_vg-archive             49G   81M   47G   1%
/dev/mapper/autodeploy_vg-autodeploy      9.8G   40K  9.3G   1%
/dev/mapper/netdump_vg-netdump            982M   24K  915M   1%
overlay                                    47G   19G   27G  41%

どうやらcacheSize_GB=2で設定されているのでこれを変更します。公式doc
(不要なdepotを削除でもOK)

root@v0-vcsa-01 [ ~ ]# cat /etc/vmware-imagebuilder/sca-config/imagebuilder-config.props
loglevel=INFO
cacheSize_GB=2
vmomiPort=8098
httpPort=8099root@v0-vcsa-01 [ ~ ]# vi /etc/vmware-imagebuilder/sca-config/imagebuilder-config.props

root@v0-vcsa-01 [ ~ ]# vi /etc/vmware-imagebuilder/sca-config/imagebuilder-config.props
root@v0-vcsa-01 [ ~ ]# cat /etc/vmware-imagebuilder/sca-config/imagebuilder-config.props
loglevel=INFO
cacheSize_GB=6
vmomiPort=8098
httpPort=8099

root@v0-vcsa-01 [ ~ ]# service-control --restart vmware-imagebuilder
Successfully restarted service imagebuilder

root@v0-vcsa-01 [ ~ ]# service-control --restart vmware-rbd-watchdog
Successfully restarted service rbd
root@v0-vcsa-01 [ ~ ]# 

cacheSize_GB=6にすることでSerivceの警告がなくなり、EXPORTもできるようになりました。

alt text

おわりに
#

カスタムイメージの作成はpowerCLIを使うしかありませんでしたが、Image BuilderはvCenterに最初から付属 + GUIで使いやすくだいぶハードルが下がりました。

とは言っても運用やカスタムイメージを作った経緯が複雑になってしまうのでなるべく避けたいですが、どうしても必要な時にはImage Builderは非常に良い選択肢になったと思います。

esxi-install-update - 関連記事
3: << この記事 >>

Related

profile updateとprofile installの違い
·6995 文字
Blog VMware VSphere
ESXiを自動でインストール
·3901 文字
Blog VMware VSphere RedfishAPI Python Kickstart Ansible
pyvmomiで自動化8 -情報をまとめて取得-
·2484 文字
Blog VMware VSphere Pyvmomi Python