アプリレイヤーの作成またはクローン

アプリレイヤーは、1つ以上のアプリケーションを含む仮想ディスクです。通常、アプリレイヤーには1つのアプリケーションが含まれます。1つのレイヤーに複数のアプリケーションを含める場合は、通常同時に更新する項目に限定してください。

アプリレイヤーの新規作成

このセクションでは、アプリレイヤーの作成について、以下を含めて説明します。

  • 要件と考慮事項
  • 新しいアプリレイヤーの開始
  • パッケージングマシンの展開
  • アプリケーションのインストール
  • 表示される可能性のあるレイヤー整合性メッセージ
  • レイヤーの検証とマシンのシャットダウン
  • 必要に応じて、Microsoft Ngen.exe 操作の迅速化
  • レイヤーの最終処理

要件と考慮事項

アプリレイヤーには、1つ以上のアプリケーションと関連設定が含まれます。MS Officeは常にアプリレイヤーにインストールし、OSレイヤーにはインストールしないでください。

  • アンチウイルスアプリケーション: アンチウイルスアプリケーションは、必ずこちらの手順に従ってアプリレイヤーに配置してください。ウイルス定義ファイルの更新は戦略的に行ってください。また、SymantecのVirtual Image Exception Toolなどのファイルマーキング機能にも注意してください。ホストベースのスキャンエンジンを検討し、ユーザーログオン時の遅延に留意してください。公開されたレイヤーイメージをスキャンし、レイヤー自体をスキャンしないようにしてください。スキャンは、Citrix Virtual AppsおよびCitrix Virtual Desktopsでのユーザーアクセス時にのみ行われます。
  • MS Office: Officeのインストールには、このレシピを使用してください。Office 2010以降のVDI展開では、KMSを必須と見なしてください。Office 2007以前では、ボリュームライセンスを必須と見なしてください。他のライセンス構造を使用すると、各デスクトップで各ライセンスをアクティブ化する必要があるため、あまり便利ではありません。ユーザー設定とデータを永続化するには、Office 365ユーザーレイヤーで.OSTおよびストリーミングファイルを保存できるようにします。検索インデックスは保存されません。
  • 特定のアプリケーションをレイヤー化するためのレシピ: ほぼすべてのアプリケーションをレイヤー化できますが、App Layering Recipesフォーラムにまとめたヒントから始めると、より簡単にレイヤー化できるものもあります。開始する前に、レイヤー化する特定のアプリケーションに関するヒントと手順についてフォーラムを参照してください。
  • ローカルユーザーまたは管理者を追加する必要があるアプリケーション: アプリレイヤーにアプリケーションをインストールする際に追加または変更したローカルユーザーまたは管理者は永続化されません。OSレイヤーは追加したローカルユーザーまたはグループを保持しますが、アプリレイヤーは保持しません。アプリケーションをインストールする前にローカルユーザーまたは管理者をOSレイヤーに追加するか、OSレイヤーにアプリケーションをインストールすることを検討してください。

新しいアプリレイヤーの開始

アプリケーションをインストールできるパッケージングマシンを作成するには:

  1. 管理コンソールにログインし、[レイヤー] > [アプリレイヤー] を選択します。
  2. [アクション] バーで [レイヤーの作成] をクリックします。
  3. 必須値である [レイヤー名][バージョン] を入力します。その他の値を入力することもできます。
  4. [OSレイヤー] タブで、このアプリレイヤーに関連付けるOSレイヤーを選択します。
  5. (オプション) [前提条件レイヤー] タブでは、このレイヤーにアプリをインストールする際に存在する必要がある他のアプリレイヤーを指定するオプションがあります。これは、必要なアプリを同じレイヤーに含めることができない場合にのみ使用してください。この高度な機能の詳細については、以下のセクションの「前提条件レイヤー」を参照してください。 注: 既存のアプリレイヤーに新しいバージョンを追加する場合、必要な前提条件レイヤーを指定する必要があります。これらはバージョン間で引き継がれることはありません
  6. [コネクタ] タブで、レイヤーを構築するプラットフォームの資格情報とストレージの場所を含むコネクタ構成を選択します。必要な構成がリストにない場合は、[新規] をクリックして追加します。
  7. [パッケージングディスク] タブで、パッケージングディスクのファイル名を入力し、ディスク形式を選択します。このディスクは、アプリケーションをインストールする仮想マシンであるパッケージングマシンに使用されます。
  8. [アイコンの割り当て] タブで、レイヤーに割り当てるアイコンを選択します。このアイコンは、[レイヤー] モジュールでレイヤーを表します。
    • 既存のイメージを使用するには、イメージダイアログボックスでイメージを選択します。
    • 新しいイメージをインポートするには、[参照] をクリックし、PNGまたはJPG形式のイメージを選択します。
    • オフロードコンポジティングが選択されているコネクタを使用しており、App Layeringに付属のアイコンのいずれかを選択した場合、レイヤーが最終処理される際に、パッケージングマシンはレイヤーの内容に基づいてアイコンを割り当てようとします。
  9. [確認と完了] タブで、アプリレイヤーの詳細を確認し、[レイヤーの作成] をクリックします。レイヤーを作成する前に、オプションのコメントを入力できます。コメントは、[情報] ビューの [監査履歴] に表示されます。パッケージングディスクの作成後、[タスク] バーに、パッケージングマシンを展開できるハイパーバイザー内のパッケージングディスクへのリンクが表示されます。
  10. [タスク] ページを選択し、[パッケージングディスク] タスクをクリックします。情報アイコンをクリックして、このレイヤーのパッケージングマシンが公開されている場所へのリンクを含む、タスクの完全な説明を表示します。

次に、レイヤーのパッケージングマシンを展開できます。

パッケージングマシンの展開

ハイパーバイザーを選択してください。

  • XenServer®、Hyper-V、Nutanix、またはvSphere
  • Azure
  • その他のハイパーバイザー(ネットワークファイル共有)
  • Google Cloud Platform (GCP)

XenServer、Hyper-V、Nutanix、vSphere

  1. ハイパーバイザークライアント(XenServer、Hyper-V Manager、Nutanix Prism、またはvSphere)にログインします。
  2. App Layering管理コンソールにログインし、現在のタスクを確認できるように [タスク] ページを選択します。
  3. [アプリレイヤーの作成] タスクを選択し、情報アイコンをクリックしてタスクの完全な説明を表示します。
  4. タスクの説明に記載されているURLを使用して、ハイパーバイザークライアント内のパッケージングマシンに移動します。
  5. パッケージングマシンが起動します。

これで、このレイヤーのアプリケーションをパッケージングマシンにインストールできます。

Azure

アプライアンスは、パッケージングマシンを作成できるAzureの カスタム展開 テンプレートを開きます。

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

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

  1. ネットワークファイル共有上の次のディレクトリでパッケージングディスクを見つけます。 \Unidesk\Packaging Disks

  2. パッケージングディスクをハイパーバイザー上の別の場所にコピーします。これにより、ディスクを使用して新しい仮想マシンを作成する際に、ハイパーバイザーによって生成されるファイルのスペースが確保されます。

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

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

  4. パッケージングマシンを起動します。

パッケージングマシンが起動したら、レイヤーに含めるアプリケーションをインストールできます。

アプリケーションのインストール

パッケージングマシンにアプリケーションをインストールする際は、ユーザーがログインしたときに表示される状態のままにしておきます。アプリケーションの状態は、ユーザーがアプリにアクセスするたびに体験するものです。

  1. オペレーティングシステムの作成に使用した ユーザーアカウント で、パッケージングマシンにリモートログインします。
  2. アプリケーション、およびアプリに必要なドライバー、ブートレベルのアプリケーション、またはファイルをインストールします。
  3. システム再起動が必要な場合は、手動で再起動します。パッケージングマシンは自動的に再起動しません。インストールするアプリケーションがブートレベルのコンポーネントに影響を与える場合は、レイヤーの最終処理の一部としてパッケージングマシンを再起動してください。
  4. パッケージングマシンがユーザーにとって望ましい状態になっていることを確認します。
    • アプリケーションにインストール後のセットアップや登録が必要な場合は、今すぐそれらの手順を完了します。
    • パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションをすべて削除します。

レイヤーの検証とマシンのシャットダウン

アプリケーションがパッケージングマシンにインストールされたら、レイヤーが最終処理の準備ができていることを確認します。レイヤーは、すべてのインストール後処理が完了したときに最終処理の準備が整います。

すべての未処理のプロセスが完了していることを確認するには、パッケージングマシンのデスクトップで [Shutdown For Finalize] ツールを実行します。

Shutdown For Finalizeツールを使用するには:

  1. パッケージングマシンにログインしていない場合は、マシンを作成したユーザーとしてリモートログインします。
  2. [Shutdown For Finalize] アイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
  3. レイヤーを最終処理する前に完了する必要がある未処理の操作がある場合、プロセスを完了するように求められます。Microsoft Ngen.exe 操作を完了する必要がある場合は、この記事の後半で詳しく説明するように、Ngen.exe 操作を迅速化できる可能性があります。
  4. 保留中の操作がすべて完了したら、[Shutdown For Finalize] アイコンをもう一度ダブルクリックします。これにより、パッケージングマシンがシャットダウンされ、レイヤーは最終処理の準備が整います。

最終処理中に表示される可能性のあるレイヤー整合性メッセージ

以下のレイヤー整合性メッセージは、レイヤーが最終処理の準備が整う前に完了する必要があるキューに入れられた操作を示します。

  • RunOnceスクリプトが未処理です - パッケージングマシンを確認して再起動してください。
  • インストール後の再起動が保留中です - パッケージングマシンを確認して再起動してください。
  • Microsoft Ngen.exe操作がバックグラウンドで進行中です。
  • MSIインストール操作が進行中です - パッケージングマシンを確認してください。
  • ブートディスクのドライバーを更新するための再起動が保留中です - パッケージングマシンを確認して再起動してください。
  • Microsoft Ngen.exe操作が必要です。
  • Software Center Clientが実行するように構成されていますが、SMSCFG.INIがまだ存在します。レイヤーにSCCMを展開する方法の詳細については、記事「App Layeringレシピ: レイヤーにMicrosoft SCCMを展開する方法」を参照してください。

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

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

Microsoft Ngen.exe操作が進行中の場合、次のセクションで説明するように、それを迅速化できる可能性があります。

必要に応じて、Microsoft Ngen.exe 操作の迅速化

すべてのソフトウェアアップデートがインストールされたら、Ngen.exe が実質的に.NETバイトコードをネイティブイメージに再コンパイルし、それらを管理するためのレジストリエントリを構築することを許可する必要があります。

Ngen.exe はMicrosoft Native Image Generatorであり、.NETシステムの一部です。Windowsは、インストールされているソフトウェアと構成で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. 完了したら、デスクトップにある [Shutdown For Finalize] ショートカットを使用して仮想マシンをシャットダウンします。

レイヤーの最終処理

ソフトウェアがインストールされ、パッケージングマシンが検証されてシャットダウンされたら、レイヤーを最終処理する準備が整います。

Hyper-V:

コネクタ構成で [オフロードコンポジティング] が選択されている場合、最終処理はコンポジティングプロセスの一部として自動的に行われます。

XenServer、Azure、Hyper-V、Nutanix AHV、VMware vSphere

レイヤーが検証されシャットダウンされたので、最終処理の準備が整いました。

Hyper-V:

[オフロードコンポジティング] が選択されているコネクタを使用している場合、この最終処理プロセスは自動化されており、これらの手動手順を実行する必要はありません。

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

レイヤーが検証されると、使用されるストレージスペースを最小限に抑えるためにパッケージングマシンが削除されます。

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

レイヤーが検証されシャットダウンされたので、最終処理の準備が整いました。

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

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

  3. [レイヤー] > [アプリレイヤー] を選択します。

  4. [バージョン情報] タブでレイヤーバージョンを選択し、[アクション] バーで [最終処理] をクリックします。

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

アプリレイヤーのクローン

既存のレイヤーと同じアプリレイヤーは、レイヤーの特定のバージョンをクローンすることで作成できます。クローン作成プロセス中に、レイヤー固有の情報の入力を求められます。バージョンを追加することで、アプリレイヤーを更新できます。レイヤーの1つのバージョンのみがクローンされるため、クローン元のレイヤーに多くのバージョンがあったとしても、新しいレイヤーは開始時に1つのバージョンしか持ちません。

レイヤーをクローンするには:

  1. コピーするアプリレイヤーを選択し、[アクション] バーで [レイヤーのクローン] をクリックします。
  2. クローンするソースレイヤーバージョンを選択します。ドロップダウンメニューから目的のバージョンを選択できます。
  3. レイヤーの名前と、追加情報が役立つ場合は説明を入力します。説明はオプションです。
  4. バージョンと、追加情報が役立つ場合はバージョンの説明を入力します。
  5. [アイコンの割り当て] タブで、新しいレイヤーのアイコンを選択します。
  6. [確認とクローン] タブで設定を確認し、[レイヤーのクローン] ボタンをクリックします。

アイコンを除き、ソースと同じレイヤープロパティを持つ新しいレイヤーが作成されます。新しいアプリレイヤーはすべて最後に作成されたアプリレイヤーよりも優先度が高いため、レイヤーの優先度はソースレイヤーよりも高くなります。新しいレイヤーのサイズは元のレイヤーよりも小さくなる可能性がありますが、これはクローン作成中に空きスペースが削除されたことを示しているだけです。レイヤーはソースと同じように機能します。

新しいレイヤーは他のレイヤーと同様に使用でき、元のレイヤーとはいかなる形でも関連付けられていません

高度なアプリレイヤーオプション

アプリレイヤーを作成および更新する際には、以下の高度な機能に留意してください。

  • カスタムレイヤースクリプト
  • レイヤーキャッシュ
  • 前提条件レイヤー

カスタムレイヤースクリプト

システム起動時に一度実行されるスクリプトをアプリレイヤーに含めることができます。スクリプトを構成するには、アプリケーションレイヤーのプロパティを編集します。

注:

レイヤーリビジョンのプロパティは、リビジョン作成中、または最終処理後でも編集できます。

スクリプトは、アプリレイヤーを含むレイヤー化されたイメージが最初に起動したときに実行されます。アプリレイヤーがエラスティックレイヤー化されている場合、カスタムレイヤースクリプトはアプリレイヤーディスクのマウント時に実行されます。カスタムレイヤースクリプトは、MS Officeなどの、初回起動時にライセンス認証が必要なアプリで一般的に使用されます。

カスタムレイヤースクリプト

アプリレイヤー作成を高速化するためのレイヤーキャッシュ

レイヤーキャッシュを使用して、レイヤー作成時間を短縮できます。

キャッシュの仕組み

アプリレイヤーを初めて作成する際に、キャッシュサイズが十分に大きな値に設定されている場合、ブートディスクと空のパッケージングディスクで構成されるテンプレートがキャッシュに保存されます。ブートディスクには、アプリレイヤー設定で指定されたOSレイヤー、プラットフォームレイヤー、および前提条件レイヤー(存在する場合)が含まれます。

同じOSレイヤー、前提条件レイヤー、およびプラットフォームレイヤーの組み合わせを使用するアプリレイヤーを作成するたびに、App Layeringソフトウェアはテンプレートを再利用し、作成時間を大幅に短縮します。

その後、異なるOSレイヤー、前提条件レイヤー、およびプラットフォームレイヤーの組み合わせを使用するアプリレイヤーを作成すると、App Layeringソフトウェアはテンプレートを作成し、それをキャッシュに追加します。

推奨キャッシュサイズ

推奨されるキャッシュサイズは、アプリレイヤーに必要なOS、プラットフォーム、および前提条件レイヤーの組み合わせの数によって異なります。組み合わせの数によって、キャッシュに保存されるテンプレートの数が決まります。

各テンプレートに必要なスペースを見積もるには:

  1. 各OS、プラットフォーム、および前提条件レイヤーの i アイコンを選択し、[最大レイヤーサイズ] を調べます。
  2. 最大ディスクサイズを追加します。合計が、そのテンプレートに必要なキャッシュサイズです。

キャッシュに必要なスペースを見積もるには、各テンプレートについて決定したサイズを追加します。

前提条件レイヤー

めったに推奨されませんが、前提条件レイヤーを使用すると、レイヤーを作成したりバージョンを追加したりする際に、1つ以上の既存のアプリレイヤーをパッケージングディスクに含めることができます。

前提条件レイヤーは、現在のアプリケーションを展開するために必要とされないものをレイヤーに追加する可能性があるため、必要な場合にのみ使用してください。この動作は将来的に競合を引き起こす可能性があります。

前提条件レイヤーを使用するタイミング

前提条件レイヤーは、いくつかの理由で必要になる場合があります。

  • 現在のレイヤーにアプリケーションをインストールする際に、別のアプリケーションの存在が必要な場合。たとえば、Javaを必要とするアプリケーションをインストールし、Javaが別のレイヤーにある場合。
  • ソフトウェアのインストールが既存のアプリケーションに設定を追加する場合。たとえば、Officeアドインをインストールする際に、まずMicrosoft Officeをインストールする必要がある場合。
  • 2つのアプリケーションが同じレジストリキーを変更し、2番目のアプリケーションがキーを追加する必要があり、置き換えてはならない場合。たとえば、Citrix AgentやImprivataなど、Windowsのログインキーを両方とも変更する2つのアプリケーション。

これらの問題の一部は、前提条件レイヤーを使用するのではなく、2つのアプリケーションを同じレイヤーに配置することでも処理できます。

前提条件レイヤーの特性

前提条件レイヤーには、次の特性があります。

  • 前提条件レイヤーは、作成に使用されるアプリレイヤーには含まれません
  • 作成するアプリレイヤーと、その各前提条件レイヤーは、同じOSレイヤーを使用する必要があります。
  • アプリレイヤーに バージョン を追加する場合、前提条件レイヤーはデフォルトでは含まれません。レイヤーにバージョンを追加するたびに、1つ以上の前提条件レイヤーを選択する必要があります。
アプリレイヤーの作成またはクローン