2025年5月5日月曜日

Prism Centralの活用その6(テンプレートから展開時にSysprepを自動実行する/その4)

前回までに、Sysprepで一般化した状態でシャットダウンした仮想マシンをテンプレート登録しました。併せて、テンプレート登録時に「unattend.xml」の内容を登録し、Sysprepにおける応答ファイルを自動で適用されるように設定しました。

この設定が反映されたうえで展開されるかを含め、実際にテンプレートから仮想マシンを展開してみたいと思います。

では早速仮想マシンを展開してみましょう。

Prism CentralのVMsから「Create VM from Templaet」を選択し、先ほど登録した、「Windows 11 Enterprise 24H2」を選択し、「Begin」をクリックします。


ここでは、仮想マシン名と展開台数を入力します。ここでは、展開台数を5台にしてみましょう。Startup Scriptを見ると、テンプレート登録時に登録したXMLの情報が記載されています。個別で別のXMLの内容をこちらで入力することもできます。

Advanced Deployでスペック等も変更可能ですが、今回はこのまま、「Next」をクリックします。


サマリーが表示されます。ポイントは、CDROMドライブの存在です。この環境では、テンプレート展開時に2台のCDROMドライブで構成された仮想マシンを登録していますので、テンプレート時の構成である2台のCDROMドライブを搭載した状態で展開されます。

そのまま「Deploy」をクリックします。


Deployボタンを押すと、ストレージブロックのポインターベースのクローンのため、瞬時に仮想マシンが展開されます。

では、展開した仮想マシンを一斉に起動してみましょう。


Lunch Cosoleで見ていると仮想マシンが起動しSysprepが動作しているのがわかります。ここまでくると後はしばらく待つばかりです。


一度再起動がかかり、以下のような画面が出ますが、まだ我慢です。


再び再起動します。もうちょっとの辛抱です。


すると、自動でデスクトップが表示されました。


コンピューター名も変更され、ADに参加していることがわかります。


Active Directoryのサーバーから見ても、コンピューターアカウントが5台登録されていることが確認できます。


SysprepによるAD参加までの設定が完了したことがわかりました。


さて、これでよかったよかったと思いたいところなのですが、あのSysprepのXML定義は一体どうやって仮想マシンに渡されたのでしょうか?今回は、AD参加のため、ネットワークに接続することが前提でしたが、ネットワークに接続できない環境であってもSysprepの定義ファイルを指定可能です。

この謎は、まずテンプレートから展開された仮想マシンの構成を見てみましょう。

Update VMから仮想マシンの構成を見ると、テンプレート登録時には、CDROMドライブは2台でしたか、いつしか3台に変わっており、かつ一番下のドライブを見ると、何らかのISOがマウントされていることがわかります。


展開されたOSから見ると、この環境の場合Fドライブとして3台目のドライブが認識しており、「cidata」というボリューム名が見えます。


中を見ると、Prism Centralでテンプレート作成時に見たXMLの内容がファイルになっています。


つまり、Sysprepのファイルは、CDROMドライブを経由し、ファイルを渡していることがわかります。

では、このISOはどこに存在しているのでしょうか?

Prism Elementで、確認すると「SelfServiceContainer」に存在しているISOをマウントしていることがわかります。


このUUDIのISOを探してみましょう。

SelfServiceContainerの中身を、WinSCPで覗いてみると

「SelfServiceContainer\.vm_customization_isos」配下に、作成されていることがわかります。


他にもたくさんのISOがあるので、これは仮想マシンごとに作成され、おそらくずっとそのまま放置され続けるのではないかと思います...。

また、もっと重要なことは、テンプレートからSysprepをかけて展開した仮想マシンは、必ずこのISOをアンマウントしてください!このISOは、自動でアンマウントされません!

XMLの定義ファイル内に、ローカルアカウントのパスワードや、Active Directoryに参加する用のメンテナンス用アカウントのユーザー名やパスワードが記載されている場合、そのまま利用者に渡すとアカウント情報の漏洩につながる可能性があります。

通常、Sysprepする場合は、マシン自体にカスタマイズ用の「unattend.xml」を配置し、Sysprep実行後バッチ等で削除する運用が一般的かと思います。
Nutanixのテンプレート機能の場合は、仮想マシン自体にファイルで配置するのではなく、ISOマウントになりますので、手動でアンマウントするか、何らかの形で自動でアンマウントする方法を考える必要があります。

このSysprep自動実行機能は、大変便利な機能ではありますが、最後に重要な落ちがありますので、注意が必要です。

かならず展開後はISOアンマウントだけはお忘れなく。









 

0 件のコメント:

コメントを投稿