とある検証で AutoDeploy が必要になったものの、そういえば触ったことが無いなということで、今更ながら AutoDeploy 環境の構築メモ。
vSphere AutoDeploy とは
AutoDeploy とは物理ホストに対し ESXi イメージをプロビジョニングし、ESXi のインストールや設定投入の集中管理を行うことができるコンポーネント。
各物理ホストは PXE boot にて ESXi が起動しそのままステートレスホストとして運用することや、ホストプロファイルを適用しステートフルホストとしてブートディスクへのインストールして運用することが可能で、またホスト名や IP アドレスなどのホスト毎の設定をホストプロファイルのカスタマイズ値より投入することができる。
docs.vmware.com
必要なコンポーネント
AutoDeploy を利用するにはサーバとして以下が必要。
- vCenter Server
- AutoDeploy サービスを有効化
- DHCP サーバ(*)
- TFTP サーバ (*)
(*)ラボ環境には dnsmasq があるので、今回はコレの DHCP/TFTP を有効化し兼任。
これとは別に以下のファイルも準備しておく。
- ESXi イメージ(オフラインバンドル)
- AutoDeploy PXE ブート用イメージ
- vCenter からダウンロードできる
AutoDeploy サービスの有効化
デフォルトでは AutoDeploy サービスは起動していないので有効化する必要がある。
といっても、メニューから AutoDeploy 画面をひらいてボタンを押すだけ。

とりあえず上記が出れば有効化は OK。
VAMI のサービスから見ると下記のサービス(AutoDeploy/ImageBuilder)。
VAMI でサービス有効無効を切り替えてもよい。

dnsmasq で DHCP/TFTP を立てる
まず TFTP の root フォルダを作成し、AutoDeploy の PXE イメージを設置しておく。
PXE イメージは AutoDeploy 画面の設定より以下のリンクからダウンロードができる。
ブラウザでダウンロードして設置でも良いが、PXE イメージのダウンロードは認証が不要なのでサーバから直接ダウンロードする方が手っ取り早いかも。
$ mkdir -p /var/lib/tftp $ cd /var/lib/tftp $ wget https://【vCSA の FQDN or IP】:6501/vmw/rbd/deploy-tftp.zip --no-check-certificate
ダウンロードした zip は展開しておく。
$ unzip deploy-tftp.zip $ ls -1 deploy-tftp.zip snponly64.efi snponly64.efi.officialkey snponly64.efi.testkey snponly64.efi.vmw-hardwired snponly64.efi.vmw-hardwired.officialkey snponly64.efi.vmw-hardwired.testkey tramp u[f:id:masahiroirie:20240920002833p:plain]ndionly.0 undionly.kpxe undionly.kpxe.debug undionly.kpxe.debugmore undionly.kpxe.nomcast undionly.kpxe.vmw-hardwired undionly.kpxe.vmw-hardwired-nomcast
dnsmasq.conf の設定を書き換え、DHCP/TFTP を有効化し PXE boot の設定をする。
# DHCP 周りの設定 dhcp-range=192.168.100.240,192.168.100.254,12h dhcp-option=option:router,192.168.100.1 dhcp-option=option:netmask,255.255.255.0 dhcp-option=option:dns-server,192.168.100.2 dhcp-option=option:ntp-server,192.168.100.2 # TFTP の設定 enable-tftp tftp-root=/var/lib/tftp # PXE boot の設定 dhcp-boot=snponly64.efi.vmw-hardwired
dhcp-boot の指定はホストが EFI なら snponly64.efi.vmw-hardwired、BIOS なら undionly.kpxe.vmw-hardwired ファイルの TFTP root からのファイルパスを指定しておく。
ソフトウェアデポ登録
再び vSphere Client にて AutoDeploy 画面。
プロビジョニングする ESXi イメージのソフトウェアデポを登録する。
オンラインデポがあればそれを指定しそのまま利用することが可能、無ければダウンロードやカスタマイズしたオフラインバンドルをインポートすることもできる。
インポートが完了するとオフラインバンドルに含まれているイメージプロファイルやソフトウェアパッケージ(VIB)が確認できる。
この画面でさらに VIB を追加したりなどのカスタマイズを行うことも可能っぽい。
デプロイルール登録
プロビジョニング対象のホストや利用するソフトウェアデポ、ホストプロファイル、実行するカスタムスクリプトなどのデプロイルールを作成する。
デプロイルールタブより新しいデプロイルールを作成する。
デプロイルール名とルール適用ホストの指定。
適用ホストはホスト名や IP、Mac アドレスなどで指定ができる。
デプロイルールに含めるアイテムの指定。
今回は一旦ホストの場所とイメージプロファイルのみを指定する。
プロビジョニングしたホストをどこのクラスタに登録するかの指定。
適用する ESXi のイメージプロファイルの指定。
さきほどのソフトウェアデポに含まれているイメージプロファイルを指定する。
設定の確認を行い、完了する。
デプロイルールが作成されるがデフォルトでは無効になっているので有効化する。
対象のルールにチェックを入れて有効化。
これで登録完了。
ホストを PXE ブートしてみる。
これで対象ホストをネットワークブートすると ESXi があがってくる…はず。
Nested 機で試してみる。EFI から Network Boot を選択。
それっぽい画面…
ESXi の boot 画面が上がってくる。見慣れない Load モジュールパス…
boot 完了。ただし IP は DHCP での割り当て。
vCenter にも自動で登録される。

ESXi は boot したが
ただし現時点だとステートレスホストであがってくるためローカルデータストアは持っておらず、オンメモリディスク状態のため再起動するとログやファイルなどは全て消える。
また、IP アドレスも DHCP 割り当てでサーバとして運用するにはちと厳しい状態。
この後、リファレンスホストとしてホストプロファイル設定・抽出・添付していくことで各ホスト毎の設定を投入し、ステートフルホストとして構築を行っていくがそれはまた後日。。。