App Layering

プラットフォームレイヤーの作成

プラットフォームレイヤーには、レイヤーとレイヤー化されたイメージを環境内で完璧に実行するために必要なプラットフォームソフトウェアと設定が含まれています。

プラットフォームレイヤーは、次の 2 つの目的で作成できます。

  • Layer の作成とパッケージ化: Layer を作成するハイパーバイザーとは異なるハイパーバイザーから OS をインポートした場合、このタイプのプラットフォームレイヤーを使用してアプリレイヤーを作成します。

  • レイヤー化されたイメージを公開する場合: 公開されたレイヤー化されたイメージが環境で問題なく実行されるように、イメージテンプレートでこのタイプのプラットフォームレイヤーを使用します。

レイヤーをパッケージ化またはレイヤー画像を公開するためのプラットフォームレイヤー

次の表を使用して、プラットフォームレイヤーが必要かどうかを判断します。この表には、プラットフォーム層にインストールするソフトウェアも示されています(必要な場合)。

  レイヤーをパッケージ化 レイヤー化されたイメージの公開
プラットフォーム層が必要ですか? OS イメージが別のHypervisor で作成された場合に必要です。アプリにエージェントまたは SSO ソフトウェアが必要な場合は、そのレイヤーの作成と更新専用のプラットフォームレイヤーを作成できます。 Provisioning サーバーに公開し、接続ブローカーを使用する場合に必要です。
インストールするもの Hypervisor ツール。OS が別のハイパーバイザーで発生していた場合。アプリレイヤーの作成に必要な場合、SSO またはエージェントソフトウェア。 プロビジョニングと接続ブローカーのソフトウェアと設定OS の元のハイパーバイザーとは異なるハイパーバイザーに公開する場合は、ハイパーバイザーツールを含めます。
選択する値 Hypervisor を選択します。 Hypervisor、Provisioning ソフトウェア、接続ブローカーを選択します。
必要なもの Hypervisor 用インストーラ ソフトウェアと接続ブローカーをProvisioning するためのインストーラ

プラットフォーム層に含めるその他のソフトウェアと設定

上記のプラットフォームソフトウェアのほかに、プラットフォームレイヤーに次の設定とソフトウェアを含める必要があります。

  • ドメイン参加
  • NVIDIA ドライバ (該当する場合)
  • Citrix Receiver(シングルサインオンコンポーネント)
  • Citrix Workspace Environment Management(WEM)エージェント

    注:

    Citrix WEM によって生成された RSA キーは、デプロイされたイメージで WEM を使用するときに問題を引き起こします。レイヤーのファイナライズ時に RSA キーが存在する場合、次のパスで始まる RSA キーファイルを削除する必要があることを示すメッセージが表示されます C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18\fb8cc9e38d3e60ab60c17cdfd6dd6d99_

  • ログオンスタックに影響するソフトウェア (例:Imprivata)
  • Hyper-VでのCitrix Provisioning:PXE起動にレガシーネットワークアダプタが必要
  • Microsoft System Center Configuration Manager (SCCM) ソフトウェアを使用している場合

プラットフォームレイヤーの作成プロセス

プラットフォームレイヤーを作成する手順は、次のとおりです。

  1. 管理コンソールでプラットフォームレイヤーを作成します。
  2. パッケージングマシンに接続してログインします。
  3. Provisioning および接続ブローカーソフトウェアをインストールします。
  4. アプライアンスは、レイヤーを作成してイメージを公開するハイパーバイザーとは異なるハイパーバイザーで実行されていますか。はい、Hypervisor ツールもインストールすることをお勧めします。
  5. レイヤーを確認し、パッケージングマシンをシャットダウンします。
    • 選択したコネクタ構成がオフロードコンポジットを使用するように設定されている場合、レイヤは自動的にファイナライズされます。
    • コネクタ構成が [ オフロードコンポジット ] に設定されていない場合は、この記事の詳細な手順で説明されているように、 レイヤーを手動でファイナライズします

プラットフォームレイヤーを更新するタイミングについて

プラットフォームレイヤーは、最も優先度の高いレイヤーです。イメージの展開、特にネットワークデバイスの場合は重要です。インフラストラクチャソフトウェアを更新するたびに、プラットフォームレイヤーにバージョンを追加します。

OSレイヤーを更新すると、イメージに起動の問題が発生することがあります。この問題を解決するには、新しい OS レイヤーを使用してプラットフォームレイヤーにバージョンを追加します。パッケージングマシンが起動したら、マシンをシャットダウンしてファイナライズします。プラットフォームレイヤーは、新しいOSレイヤーバージョンから重要なコンポーネントを収集し、OSバージョンと一致するようにプラットフォーム内で更新します。

要件

プラットフォームレイヤーを作成するときは、パッケージングマシンがアクセスできる場所でソフトウェアインストーラーを使用できる必要があります。たとえば、Provisioning サーバーと接続ブローカーソフトウェアにアクセスできる必要があります。アプライアンスが別のハイパーバイザーで実行されている場合は、ハイパーバイザーツールも含めます。

詳細な要件については、レイヤーを作成するか、画像を公開する環境を選択してください:

最適化に関する一言

プラットフォームレイヤーは、最も優先度の高いレイヤーです。最適化を含めるのが最適な場所だと思うかもしれません。ただし、Windows 10 では、Windows アプリを削除する最適化は OS レイヤーでのみ機能します。 WindowsアプリはWindowsストアと統合されており、OSレイヤーでのみ変更できます。

シトリックスは、Citrix Optimizerと呼ばれる優れた最適化ユーティリティを提供しています。Citrix Optimizerは通常、必要に応じて最適化を元に戻すことができるため、App Layering に付属のオプティマイザーではなく、このユーティリティを使用することをお勧めします。

ユーザーのログインを高速化するため。ネットワークユーザーアカウントを使用してログインし、デスクトップを再起動します。次に、管理者としてログインし、作成したプロファイルを削除します。最初のネットワークユーザーがログオンすると、一部のシステムファイルが更新され、通常はログインパフォーマンスが向上します。

新しいプラットフォームレイヤーの開始

プラットフォームレイヤーを作成するには、次の手順に従います:

  • プラットフォームレイヤーの作成」を使用してレイヤーを準備します
  • 環境にパッケージングマシンをデプロイします。
  • ツールをインストールし、環境の設定を構成します。
  • レイヤを確定します。

次の手順に従って、アクションバーから開始します。

  1. レイヤー > プラットフォームレイヤーを選択します。次に、[ プラットフォームレイヤーの作成] を選択します。

  2. [レイヤーの詳細] タブで、[ レイヤー名 ] と [ バージョン] の両方に必要な値を入力します。オプションで、他の値を入力することもできます。

  3. [バージョンの詳細] タブで、次の操作を行います。

    1. (必須)新しいバージョン名を入力します。たとえば、ソフトウェアのバージョンやその他の識別情報を入力します。
    2. 既存のレイヤーにバージョンを追加する場合、[ ベースバージョン ] フィールドでは、開始点として使用するバージョンを選択できます。デフォルトの選択肢は最新バージョンです。
  4. [OS レイヤー] タブで、このプラットフォームレイヤーに関連付ける OS レイヤーを選択します。

  5. [コネクタ] タブで、このレイヤを作成するプラットフォームの [ コネクタ構成 ] を選択します。

  6. [ プラットフォームタイプ ] タブで、[ このプラットフォームはレイヤードイメージの公開に使用されます] または [ このプラットフォームはパッケージングに使用されます] を選択します。次に、階層化されたイメージを公開するHypervisor、Provisioning ソフトウェア、接続ブローカーを選択します。 注:プロビジョニングまたは接続ブローカを使用していない場合は 、これらのオプションごとに [ なし ] を選択します。

  7. [パッケージングディスク] タブで、 パッケージングディスクのファイル名を入力します 。このディスクは、ツールをインストールするパッケージングマシン(仮想マシン)に使用されます。

  8. [アイコンの割り当て] タブで、レイヤに割り当てるアイコンを選択します。このアイコンは、Layers モジュール内のレイヤーを表します。

    • 既存のイメージを使用するには、イメージボックスでイメージを選択します。
    • 新しいイメージをインポートするには、[ 参照 ] をクリックし、PNG または JPG 形式の画像を選択します。
    • レイヤが提供されているアイコンの 1 つと、[ コンポジットのオフロード ] が選択されているコネクタを使用する場合、パッケージングマシンはレイヤの内容に基づいてアイコンを割り当てます。
  9. [確認と完了] タブで、アプリレイヤーの詳細を確認し、必要に応じてコメントを入力して、[ レイヤーの作成] をクリックします。入力したコメントは、 **監査履歴の情報ビューに表示されます**。

  10. タスクページを選択しパッケージングディスクタスクをクリックします 。情報アイコンをクリックすると、タスクの詳細な説明が表示されます。

    パッケージング・ディスクが作成されると、タスク・バーに、環境内のパッケージング・ディスクの場所が表示されます。

次に、Layer のパッケージングマシンをデプロイできます。

パッケージングマシンのデプロイ

App Layeringシステムは、コネクタ構成で定義された場所にパッケージングマシンを作成します。パッケージングマシンは、Layer 用のソフトウェアをインストールする一時的な VM です。レイヤーを確定すると、パッキングマシンが削除されます。

Citrix Hypervisor、Hyper-V、Nutanix AHV、VMware vSphere

アプライアンスは、コネクタ構成で定義された場所にパッケージングマシンを作成します。

  1. App Layering 管理コンソールに移動し、[ タスク ] ページを選択します。
  2. 「プラットフォームの作成」レイヤータスクを開き、パッケージングマシンの名前を取得します。
  3. ハイパーバイザー管理コンソール (Citrix Hypervisor、Azure、Hyper-V、Nutanix、VMware など) にログインします。
  4. Hypervisor マネージャーコンソールから、パッケージングマシンに移動します。パッケージングマシンの電源がまだオンになっていない場合は、ここでオンにします。

Hyper-V用Citrix Provisioning:2枚のネットワークカードの構成

デュアルネットワークカードを使用し、Citrix Provisioning for Hyper-Vを実行している場合は、 プラットフォームレイヤーの新しいバージョンごとに次のようにカードを構成する必要があります

プロビジョニングソフトウェアをインストールし、必要な再起動が完了したら:

  1. パッケージングマシンで管理コマンドプロンプトを開きます。
  2. 次のコマンドを実行します:ipconfig /all
  3. ストリーミング NIC (Hyper-V のレガシーネットワークアダプタ) の IP アドレスを、正しいアダプタ名と一致させます。
  4. ストリーミング NIC の DHCP リースを更新します。
  5. 管理コマンドプロンプトでipconfig /release *adapter-name*、続けてipconfig /renew *adapter-name*を再度実行します。このコマンドは、App Layering ドライバーがこのアダプターを「プライマリ NIC」として選択するように強制します。
  6. [ ファイナライズ] で Shutdown を実行し、通常どおりレイヤーをファイナライズします。

重要:

[ファイナライズ] で [シャットダウン] を選択し、何らかの理由でマシンの電源を再びオンにする必要がある場合は、 **リリースコマンドと更新コマンドを再実行する必要があります** 。

Azure

  1. App Layering 管理コンソールに移動し、[ タスク ] ページを選択します。 アプリ作成レイヤータスクを開き 、情報アイコンをクリックして詳細を表示します。
  2. タスクの詳細のリンクを使用して、Azure のパッケージングマシンに移動します。[カスタム配置] パネルが開きます。
  3. Azure ポータル (https://portal.azure.com) にログインします。
  4. Azure パラメーターを設定します。
    • マシン名のパッケージ化-Azure 仮想マシン名の要件に準拠している必要があります。
    • Size — 仮想マシンのサイズ。
    • 仮想ネットワークとサブネット-パッケージングマシンを展開するためのものです。 重要: リソースグループの場所の値がコネクタ構成で構成したストレージアカウントの場所と一致していることを確認してください 。これらの場所が同じでない場合、パッケージングマシンは展開に失敗します。展開が失敗した場合は、リンクをブラウザに再度貼り付けて最初からやり直すことができます。
  5. パッケージングマシンの電源が入ったら、レイヤーに含めるアプリケーションをインストールできます。

その他のハイパーバイザー(ネットワークファイル共有経由)

  1. パッケージングディスクは、ネットワークファイル共有の次のディレクトリにあります。 \Unidesk\Packaging Disks

  2. パッケージ化ディスクをHypervisor 上の別の場所にコピーします。ディスクを別の場所に配置すると、新しい仮想マシンの作成時にHypervisor によって生成されるファイル用のスペースが確保されます。

    重要:ファイナライズする準備ができるまで、ディスクを Finalize フォルダにコピーしないでください 。ファイナライズフォルダ内のディスクは、次に作成する新しい仮想マシンにアタッチできません。

  3. パッケージングディスクをブートディスクとして使用して仮想マシンを作成します。

  4. パッケージマシンの電源を入れます。

パッケージングマシンの電源が入ったら、プラットフォームツールをレイヤーにインストールできます。

パッケージングマシンにプラットフォームツールを取り付ける

次に、レイヤードイメージを公開するプラットフォーム用のソフトウェアをインストールします。プラットフォームツールには、ターゲット環境で階層化されたイメージに必要なProvisioning および接続ブローカーソフトウェアが含まれます。レイヤをファイナライズするときのソフトウェアの状態は、イメージが使用する状態であることに注意してください。

  1. パッケージングマシンにリモートでログインします。必ず、OS の作成に使用したユーザーアカウントを使用してログインしてください。
  2. レイヤー化されたイメージが実行されるように構成されたツールをインストールします。たとえば、Provisioning、接続ブローカー、およびHypervisor のツールを含めます。ドライバ、ブートレベルのアプリケーション、および必要なファイルを忘れないでください。
  3. インストールでシステムの再起動が必要な場合は、手動で再起動します。パッケージ化マシンは自動的には再起動しません 。
  4. パッケージングマシンが、イメージの起動時に希望する状態になっていることを確認してください:
    • インストールするツールで、インストール後のセットアップまたは登録が必要な場合は、ここでこれらの手順を完了してください。
    • パッケージ化マシンに含めない設定 、構成、ファイル、マップされたドライブ、またはアプリケーションを削除します。
  5. (オプション)MCS に展開する前に ELM から展開されたイメージをカスタマイズするには、次の手順に従います:
    1. OS リビジョン 2308 以降のマスターツールをアップグレードしてください。
    2. 次に、ファイルを作成します。 c:\windows\setup\scripts\kmsdir\Admin_Controlled_Shutdown.txt

      注:

      ファイルの内容は重要ではありません。

    3. ELM からイメージがデプロイされても、ブートされたイメージは実行されたままなので、カスタマイズを行うことができます。再起動してもマシンの状態には影響しません。
    4. カスタマイズが完了したら、次のコマンドを実行します。 c:\windows\setup\scripts\kmsdir\CompleteDeployment.cmd. この時点で、マシンはシャットダウンし、デプロイメントタスクは終了します。これで、マシンを MCS にデプロイできます。

レイヤーを確認し、パッケージングマシンをシャットダウンします

パッケージングマシンにツールをインストールしたら、レイヤーがファイナライズする準備ができていることを確認できます。必要なインストール後の処理はすべて完了する必要があります。たとえば、再起動や Microsoft ngen プロセスを完了する必要がある場合があります。

未処理のプロセスが完了したことを確認するには、[ Shutdown For Finalize ] ツールを実行します。パッケージングマシンのデスクトップにある [ ファイナライズのためにシャットダウン ] アイコンを探します。

パッケージングマシンをシャットダウンして、レイヤーを確定できるようにします

  1. パッケージングマシンにログインしていない場合は、OS レイヤーの作成時に設定したアカウントを使用してリモートログインします。
  2. [ ファイナライズのためにシャットダウン ] アイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
  3. 未処理の操作がある場合は、プロセスを完了するように求められます。たとえば、Microsoftのngen操作を完了する必要がある場合、「 ファイナライズ処理中のレイヤー整合性メッセージ」のセクションで説明されているように、 ngen操作を迅速に行うことができます
  4. 保留中の操作が完了したら、[ ファイナライズのためにシャットダウン ] アイコンをもう一度ダブルクリックします。

これで、レイヤをファイナライズする準備が整いました。

  • 選択したコネクタ構成が [ オフロードコンポジット] に設定されている場合、レイヤは自動的にファイナライズされます。
  • オフロードコンポジットを使用していない場合はレイヤを手動でファイナライズします

ファイナライズプロセス中のレイヤー整合性メッセージ

次のレイヤー整合性メッセージは、レイヤーがファイナライズする準備が整う前にキューに格納された操作を完了する必要があることを伝えます。

  • A RunOnce script is outstanding - check and reboot the packaging machine.
  • A post-installation reboot is pending - check and reboot the packaging machine.
  • A Microsoft ngen operation is in progress in the background. - An MSI install operation is in progress - check the packaging machine.
  • A reboot is pending to update drivers on the boot disk - check and reboot the packaging machine.
  • A Microsoft ngen operation is needed.
  • Software Center Client is configured to run, but the SMSCFG.INI is still present. 仮想環境にSCCMを展開する方法について詳しくは、Microsoft TechNetの記事「 XenDesktop VDI環境でのSCCMの実装」を参照してください。

レイヤー整合性メッセージの意味とデバッグ方法の詳細については、「 Citrix App Layering 4.x以降のレイヤー整合性の問題のデバッグ」を参照してください。

マシンをシャットダウンしてレイヤー整合性メッセージをバイパスすることはできません。App Layering ソフトウェアは、プロセスが完了するまでパッケージングマシンに戻ります。

Microsoft ngen の操作が進行中の場合は、次のセクションで説明するように、その処理を迅速化できます。

必要に応じて、 Microsoft Ngen.exe の運用を迅速化

すべてのソフトウェア更新プログラムをインストールしたら、Ngen.exeが基本的に.NETバイトコードをネイティブイメージに再コンパイルできるようにし、それらを管理するためのレジストリエントリを構築する必要があります。

Ngen.exe 実行可能ファイルは、 .NET システムの一部であるMicrosoftネイティブイメージジェネレータです。Windows は、インストールされるソフトウェアと、構成内で検出されるソフトウェアに基づいて、いつNgen.exeを実行するかを決定します。

重要: Ngen.exe が実行されているときは、それを完了させる必要があります。中断されたNgen.exe操作では、 .NETアセンブリが機能しないか、 .NET システム内のその他の問題が発生する可能性があります。

通常、 Ngen.exe はフォアグラウンドアクティビティがあると一時停止するバックグラウンド操作です。Ngen.exe 操作を迅速化するには、タスクを前面に表示して完了します。

タスクをフォアグラウンドにする手順は、次のとおりです。

  1. 管理者としてコマンドプロンプトを開きます。
  2. 現在使用中のバージョンのMicrosoft.NET\Frameworkディレクトリに移動します。

    cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX <!--NeedCopy-->

  3. 次のNgen.exeコマンドを入力して、キューに入っているすべてのアイテムを実行します。このコマンドは、アセンブリを構築する前に、キューに入れられたコンポーネントのインストールを処理します。

    ngen eqi 3 <!--NeedCopy-->

    Ngen.exe タスクはコマンドプロンプトの最前面に移動し、コンパイル中のアセンブリを一覧表示します。コンパイルメッセージが表示されていれば問題ありません。

    タスクマネージャを使用してMSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。そうであれば、それを完了するか、 ngen eqi 3を実行することを許可します。

    注意: タスクを停止するために再起動しないでください。タスクの完了を許可します。

  4. すべてのNgen.exeプロセスが完了するまで実行されていることを確認します。
  5. 完了したら、デスクトップの [ 終了時のシャットダウン] ショートカットを使用して仮想マシンをシャットダウンします

レイヤーを手動でファイナライズする

テスト済みのハイパーバイザーの 1 つでコネクタを使用すると、レイヤーのファイナライズが最速になります。詳しくは、次のセクションを参照してください。

ネットワークファイル共有を使用して、他のハイパーバイザー上のレイヤーをファイナライズすることもできます。この記事の最後のセクションを参照してください。

Citrix Hypervisor、Azure、Hyper-V、Nutanix AHV、VMware vSphere

レイヤが検証され、シャットダウンされたので、ファイナライズする準備が整いました。

Hyper-V:

[ 合成をオフロード ] を選択した状態でコネクタを使用している場合、このファイナライズプロセスは自動化されるため、これらの手動手順を実行する必要はありません。

  1. 管理コンソールに戻ります。
  2. [ レイヤー] > [プラットフォームレイヤー] を選択し、準備した [ バージョン情報 ] タブでレイヤーバージョンを選択します。
  3. [ ファイナライズ ] をクリックして、レイヤーの作成を終了します。
  4. タスクバーを監視して、アクションが正常に完了したことを確認します。

レイヤーが確認されると、パッケージングマシンは取り外され、使用するストレージスペースが最小限に抑えられます。

その他のHypervisor(ネットワークファイル共有経由)

レイヤが検証され、シャットダウンされたので、ファイナライズする準備が整いました。

  1. パッケージングマシンファイルを含むフォルダーからネットワークファイル共有の Finalize フォルダーにパッケージングディスクをコピーします: \ Unidesk\ Finalize

  2. 管理コンソールに戻ります。

  3. レイヤー > プラットフォームレイヤーを選択します

  4. アクションバーで [ ファイナライズ ] を選択します。

  5. タスクバーを監視して、アクションが正常に完了し、レイヤーがデプロイ可能であることを確認します。