※この記事は「AOS 7.0 AHV10.0 Prism Central pc.2024.3」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。
前回の記事では、Connection ServerにNutanix環境を登録しました。今回は、Gold Imageを作成します。
なお、AHV環境でのHorizon 2506は商用利用もできるようですが、LA(Limited Available)リリースのため、完全GAではなく申請ベースでの制限付きのリリースとなるようです。実際の導入は、GA版がリリースされてから検討いただくとよさそうです。
目次
1.今回の環境
AOS: 7.0.1.9
AHV: 10.0.1.4
Prism Central: pc.2024.3.0.2
Horizon 2506-8.16.0-16594022598
DBサーバ: Microsoft SQL Server Express Edition
▽環境のイメージは以下の通りです。

Horizon 2506のLA版における注意点ですが、このリリースではNutanix環境の登録に制限がかけられており、制限の解除方法についてはメーカー担当者に問い合わせる必要があります。
Nutanix環境でのGold Imageの作成方法はドキュメントで公開されておりますが、下記リンク先の内容は最低限の設定となります。
制限付きの提供:ゴールド イメージの準備 - Nutanix
https://docs.omnissa.com/ja-JP/bundle/Desktops-and-Applications-in-HorizonVmulti/page/Nutanix_PreparingaGoldenImage.html
なお、Tech Zoneではもう少し細かい手順が公開されていますので、今回はTech Zoneの手順に従ってGold Imageを作成してみます。
Manually creating optimized Windows images for Horizon VMs
https://techzone.omnissa.com/resource/manually-creating-optimized-windows-images-horizon-vms#installing-windows
2. デスクトッププール展開用の仮想ネットワークの作成
Horizon Consoleにてデスクトッププールを展開する際に、展開先のVLANネットワークとして、AHVの「仮想ネットワーク」を指定することができます。仮想ネットワークとは、vSphereのポートグループに相当するものです。
AHVの仮想ネットワークでは、IPAM(IP Address Management)と呼ばれるDHCP機能を使用することができます。このIPAMを使用して、デスクトップVMにもIPアドレスを自動で割り当てることが可能です。
今回は、Prism Centralから仮想ネットワークを作成します。Prism Centralでは、仮想ネットワークが「Subnet」と表示されますのでご注意ください。
▽Prism Centralの「Subnets」画面にて「Create Subnet」から作成できます。

▽以下は作成画面の一例です。VLAN IDや作成先のスイッチを指定し、「Nutanix IPAM」を選択するとDHCP機能が使用できます。IPプールやDNSサーバの設定が可能です。

この仮想ネットワーク(Subnet)は、デスクトッププールを展開する前には作成しておきます。
3. Gold Imageとなる仮想マシンの作成
Horizon 2506 LAリリースでは、AHV環境におけるWindows 11の「24h2」はデスクトッププール展開時に不具合で失敗するようなので、今回はWindows 11の23h2を使用します。
なお、Windows 11ではvTPMが必要となるため、vTPMをGUIで設定できるPrism Centralから仮想マシンを作成することを強く推奨します。
▽OSのインストーラーISOイメージファイルとAHV環境で必要となるVirtIOドライバーのISOイメージファイルを、Prism Centralのイメージライブラリに登録済みです。

▽Prism Centralの仮想マシン画面にて「Create VM」をクリックします。

▽仮想マシン名や仮想マシン数、リソースを設定して「次へ」をクリックします。

▽CD-ROMを2つ作成し、それぞれにWindows 11のインストーラーISOとVirtIOドライバーのISOを接続します。vDISKも追加します。また、NICもインターネットに接続できる仮想ネットワーク(ポートグループ)などを追加しておきます。

▽Boot Modeは「UEFI」とし、「Secure Boot」や「vTPM」のチェックボックスにもチェックを付けておきます。これをしておかないと、Windows 11は要件を満たせずインストールできません。

▽続いて、タイムゾーンは「Asia/Tokyo」にしておきます。

▽ここまできたら「Create VM」で仮想マシンの作成を実行します。

4. ゲストOSのインストール
▽仮想マシンの作成が完了したら、アクションから「Power ON」します。

▽仮想マシンの電源が起動したら、アクションから「Launch Console」を選択して、コンソール画面を起動します。

▽コンソール画面で、下記の表示が出ている間にシフトキーなど、何かキーを押します。

▽セットアップウィザードが起動したら、セットアップを進めます。今回は、WIndows 11 Enterpriseをインストールしてみます。

▽OSのインストール先のDISKの選択画面で、「ドライバーの読み込み」をクリックします。

▽「参照」をクリックします。

▽仮想マシン作成時に接続しておいた「VirtIO」のISOを参照し、Windows 11のフォルダから「x64」を選択して「OK」をクリックします。

▽表示されたすべてのドライバーを選択して「次へ」をクリックします。

▽ドライバーが読み込まれると、OSのインストール先となるvDISKが表示されますので、インストール先となる領域を選択して「次へ」をクリックします。

これでゲストOSがインストールされ、自動的に再起動が実行されます。
5. Gold Imageのための初期セットアップと最適化ツールの実行
監査モードへ切り替え
▽OSのインストールが完了すると、以下のような初回起動画面が表示されます。不要なユーザーやプロファイルを作成せずに監査モードに切り替えたいので、この画面ですぐに「Ctrl+Shift+F3」を押します。

▽OSが再起動し、普段は見えないビルトインの「Administrator」ユーザーでログインされます。

▽監査モードで起動すると、以下のようなポップアップが表示されますので「キャンセル」で閉じます。(再起動するたびに表示されるので毎回閉じます。)

▽.Net Framework 3.5 が必要な場合はコマンドプロンプトからインストールしておきます。以下のコマンドは、マウントしているOSのインストーラーISOを指定してインストールをしています。
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

▽Windows Updateを実施します。


▽アップデートが完了したら、再起動を実施します。

アプリケーションのインストール
▽OSが起動したら、VDIで必要なアプリケーションなどをインストールしておきます。例えば、以下のようにChromeなどはここでインストールします。

OSOTは元々VMwareコミュニティでの有志のツールでしたが、途中からCustomer Connectに公式ツールとして追加され、サポート対象となりました。OSOTを使用すると、不要なストアアプリを削除したり、壁紙を変更したり、Windows Update無効化したりと、VDI用にOSを最適化してくれます。
▽Omnissa Customer Connectより、「Windows OS Optimization Tool for Omnissa Horizon」をダウンロードします。
Download OS Optimization Tool
https://customerconnect.omnissa.com/downloads/info/slug/virtual_desktop_and_apps/os_optimization_tool/2506

▽ダウンロードしたOSOTを起動します。

▽「最適化」画面にて「分析」をクリックします。

▽共通オプションをクリックします。

▽共通オプションでは、Windows Updateの有効化/無効化など、一般的に設定される内容が表示され、カスタマイズできます。今回は、特に設定は触らずに「OK」をクリックします。

▽「最適化」を実行します。

▽しばらくすると最適化が完了します。完了すると、下記のように最適化された項目が表示されます。

▽最適化が完了したら、一度OSを再起動します。

▽OSが起動したら、再度OSOTを起動して「一般化」画面を選択し、タームゾーンやローケーションが正しいことを確認して「一般化」を実行します。一般化では、Sysprepの一般化が実行されて、コンピューター固有の情報が削除されます。

▽一般化が完了してポップアップで「OK」をクリックすると、OSが自動で再起動されます。

▽OSが起動したら「PowerShell」を起動します。

▽下記のコマンドを実行して、Cpilotを削除します。
Get-AppxPackage –name Microsoft.Copilot | Remove-AppxPackage

Horizon Agentのインストール
仮想デスクトップを展開するためには、Gold ImageにHorizon Agentのインストールが必要となります。Horizon AgentはOmnissa Customer Connectからダウンロード可能です。
https://customerconnect.omnissa.com/downloads/details?downloadGroup=HZN-2506-STD&productId=1670&rPId=119087

▽Gold Imageの仮想マシンでダウンロードしたHorizon Agentのインストーラーを起動します。

▽「次へ」をクリックします。

▽IPv4でそのまま「次へ」をクリックします。

▽ゴールドイメージのチェックを入れて「次へ」をクリックします。

▽カスタムは必要に応じて実施します。今回はそのまま「次へ」をクリックします。AHV環境ではストレージのクローン機能の性質上、フルローンやインスタントクローンといった区別がないため、「Instant Clone Agent」もチェックを入れる必要はなさそうですが、ドキュメントには「Instant Clone Agent」にチェックを入れると書かれているので入れるべきです。なお、チェックを入れなくても機能しました。

▽リモートデスクトップは有効で「次へ」をクリックします。

▽登録先のConnection Server情報や資格情報を入力して「次へ」をクリックします。

▽自動再起動のチェックを入れて「インストール」を実行します。

インストールが完了すると、OSが再起動します。
OSOTでのファイナライズの実行
ファイナライズでは最終的なクリーンアップ処理が実施されます。
▽再度OSOTを起動し、「ファイナライズ」画面にて「ファイナライズ」を実行します。

▽ファイナライズ処理が完了したら、OSをシャットダウンします。

▽仮想マシンが停止したら、Prism CentralにてGold Image VMのUpdate画面を起動します。

▽ISOファイルをすべてイジェクトし、CDドライブを切断します。また、NICも切断しておきます。

▽次の画面で「vTPM」のチェックを外しておきます。

6. 仮想マシンテンプレートの作成
Horizonで必要となる仮想マシンテンプレートを作成します。Prism Centralから対象のGold Imageを選択して「Create VM Template」をクリックします。

▽テンプレートの名前を付けて画面を進めて「Save」をクリックします。

▽作成したGold Imageのテンプレートは、Prism Centralの「Template」画面にて確認できます。

これでHorizonデスクトッププール用のGold Imageおよびテンプレートは作成完了です。次回は、テンプレートをもとにデスクトッププールを展開してみます。