アプリレイヤーを作成またはクローンする
アプリレイヤーは、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レイヤーにアプリケーションをインストールすることを検討してください。
新しいアプリレイヤーを開始する
アプリケーションをインストールできるパッケージングマシンを作成するには、次の手順を実行します。
-
-
既存の画像を使用するには、画像ダイアログボックスで画像を選択します。
-
Offload Compositingが選択されているコネクタを使用しており、App Layeringに付属のアイコンのいずれかを選択した場合、レイヤーが確定されると、パッケージングマシンはレイヤーのコンテンツに基づいてアイコンを割り当てようとします。
-
-
「確認と完了」タブで、アプリレイヤーの詳細を確認し、「レイヤーの作成」をクリックします。レイヤーを作成する前に、オプションのコメントを入力できます。コメントは、情報ビューの監査履歴に表示されます。パッケージングディスクの作成後、タスクバーには、ハイパーバイザー内のパッケージングディスクへのリンクが表示され、そこでパッケージングマシンを展開できます。
-
「タスク」ページを選択し、「パッケージングディスク」タスクをクリックします。情報アイコンをクリックして、このレイヤーのパッケージングマシンが公開されている場所へのリンクを含む、完全なタスクの説明を表示します。
次に、レイヤー用のパッケージングマシンを展開できます。
パッケージングマシンの展開
ハイパーバイザーを選択してください:
-
XenServer®、ハイパーブイ、ニュータニックス、またはヴイスフィア
-
アジュール
-
その他のハイパーバイザー(ネットワークファイル共有)
-
グーグル クラウド プラットフォーム (GCP)
ゼノサーバー、ハイパーブイ、ニュータニックス、ヴイスフィア
-
ハイパーバイザークライアント(XenServer、Hyper-V Manager、Nutanix Prism、またはvSphere)にログインします。
-
App Layering管理コンソールにログインし、「タスク」ページを選択して現在のタスクを確認します。
-
「アプリレイヤーの作成」タスクを選択し、情報アイコンをクリックして完全なタスクの説明を表示します。
-
タスクの説明に記載されているURLを使用して、ハイパーバイザークライアント内のパッケージングマシンに移動します。
-
パッケージングマシンが起動しています。
これで、このレイヤーのアプリケーションをパッケージングマシンにインストールできます。
アジュール
アプライアンスはAzureのカスタムデプロイテンプレートを開き、そこでパッケージングマシンを作成できます。
-
Azureポータルにログインします (https://portal.azure.com)。 注: 次のステップを試す前に、ログインする必要があります。
-
App Layering管理コンソールに移動し、タスクページを選択します。Appレイヤーの作成タスクを選択し、情報アイコンをクリックして詳細を表示します。
-
タスクの詳細にあるリンクを使用して、Azureのパッケージングマシンに移動します。カスタムデプロイパネルが開きます。
-
Azureパラメーターを設定します。
-
パッケージングマシン名 - Azure仮想マシン名の要件に準拠している必要があります。
-
サイズ – 仮想マシンのサイズ。
-
仮想ネットワークとサブネット - パッケージングマシンをデプロイするため。 重要: リソースグループの場所の値が、コネクタ構成で設定したストレージアカウントの場所と一致していることを確認してください。これらの場所が同じでない場合、パッケージングマシンはデプロイに失敗します。デプロイが失敗した場合は、リンクをブラウザに再度貼り付けてやり直すことができます。
-
-
パッケージングマシンが起動したら、レイヤーに含めるアプリケーションをインストールできます。
その他のハイパーバイザー (アプライアンスのネットワークファイル共有経由)
-
ネットワークファイル共有上の次のディレクトリでパッケージングディスクを見つけます。 \Unidesk\Packaging Disks
-
パッケージングディスクをハイパーバイザー上の別の場所にコピーします。これにより、ディスクを使用して新しい仮想マシンを作成する際にハイパーバイザーによって生成されるファイルのスペースが確保されます。重要: 最終処理の準備が整うまで、ディスクをFinalizeフォルダーにコピーしないでください。Finalizeフォルダー内のディスクは、次に作成する新しい仮想マシンにアタッチできません。
-
パッケージングディスクをブートディスクとして使用して仮想マシンを作成します。
-
パッケージングマシンを起動します。
パッケージングマシンが起動したら、レイヤーに含めるアプリケーションをインストールできます。
アプリケーションをインストールする
パッケージングマシンにアプリケーションをインストールする際は、ユーザーがログインしたときに表示される状態のままにしておきます。アプリケーションの状態は、ユーザーがアプリにアクセスするたびに体験するものです。
-
オペレーティングシステムの作成に使用したユーザーアカウントで、パッケージングマシンにリモートでログインします。
-
アプリケーションをインストールします。アプリに必要なドライバー、ブートレベルのアプリケーション、またはファイルもすべて含めてください。
-
システムの再起動が必要な場合は、手動で再起動してください。パッケージングマシンは自動的に再起動しません。インストールするアプリケーションがブートレベルのコンポーネントに影響を与える場合は、レイヤーの最終処理の一部としてパッケージングマシンを再起動してください。
-
パッケージングマシンがユーザーにとって望ましい状態になっていることを確認してください。
-
アプリケーションにインストール後のセットアップや登録が必要な場合は、今すぐそれらの手順を完了してください。
-
パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションを削除します。
-
レイヤーを確認してマシンをシャットダウンする
アプリケーションがパッケージングマシンにインストールされたら、レイヤーが最終処理の準備ができていることを確認します。すべてのインストール後処理が完了すると、レイヤーは最終処理の準備が整います。
未処理のプロセスがすべて完了していることを確認するには、パッケージングマシンのデスクトップでShutdown For Finalizeツールを実行できます。
「Shutdown For Finalize」ツールを使用するには:
-
パッケージングマシンにログインしていない場合は、マシンを作成したユーザーとしてリモートログインします。
-
Shutdown For Finalizeアイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
-
レイヤーを確定する前に完了する必要がある未処理の操作がある場合、そのプロセスを完了するように求められます。
Microsoft Ngen.exe操作を完了する必要がある場合は、この記事の後半で詳しく説明するように、Ngen.exe操作を迅速化できる場合があります。 -
保留中の操作がすべて完了したら、もう一度Shutdown For Finalizeアイコンをダブルクリックします。これにより、パッケージングマシンがシャットダウンされ、レイヤーを確定する準備が整います。
確定処理中に表示される可能性のあるレイヤー整合性メッセージ
以下のレイヤー整合性メッセージは、レイヤーを確定する準備が整う前に完了する必要があるキューに入れられた操作を示しています。
-
RunOnceスクリプトが未処理です - パッケージングマシンを確認して再起動してください。
-
インストール後の再起動が保留中です - パッケージングマシンを確認して再起動してください。
-
Microsoft Ngen.exe操作がバックグラウンドで進行中です。
-
MSIインストール操作が進行中です - パッケージングマシンを確認してください。
-
ブートディスクのドライバーを更新するための再起動が保留中です - パッケージングマシンを確認して再起動してください。
-
Microsoft Ngen.exe操作が必要です。
-
Software Center Clientは実行するように構成されていますが、SMSCFG.INIがまだ存在します。レイヤーでのSCCMの展開の詳細については、記事「App Layering Recipe: How to deploy Microsoft SCCM in a layer」を参照してください。
レイヤー整合性メッセージの意味とデバッグ方法の詳細については、「Debugging Layer Integrity Problems in 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 操作を迅速化したい場合は、タスクをフォアグラウンドに移動して、できるだけ早く完了させることができます。
タスクをフォアグラウンドに移動するには:
-
コマンドプロンプトを管理者として開きます。
-
現在使用中のバージョンの
Microsoft.NET\Frameworkディレクトリに移動します。cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX -
キューに入っているすべての項目を実行するには、次の
Ngen.exeコマンドを入力します。このコマンドは、アセンブリをビルドする前に、キューに入っているコンポーネントのインストールを処理します。ngen eqi 3Ngen.exeタスクはコマンドプロンプトでフォアグラウンドに移動し、コンパイルされているアセンブリを一覧表示します。コンパイルメッセージが表示されても問題ありません。タスクマネージャーを使用して、MSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。実行されている場合は、完了させるか、ngen eqi 3を実行してください。注意:タスクを停止するために再起動しないでください。タスクが完了するまで待ってください! -
すべての
Ngen.exeプロセスが完了していることを確認してください。 -
完了したら、デスクトップにある Shutdown For Finalize ショートカットを使用して仮想マシンをシャットダウンします。
レイヤーを確定する
ソフトウェアのインストールが完了し、パッケージングマシンが検証され、シャットダウンされたら、レイヤーを確定する準備が整います。
ハイパーV:
コネクタ構成で Offload Compositing が選択されている場合、確定はコンポジット処理の一部として自動的に行われます。
ゼノサーバー、アジュール、ハイパーV、ニュータニックス AHV、ヴイエムウェア vSphere
レイヤーが検証され、シャットダウンされたので、確定する準備が整いました。
ハイパーV:
Offload Compositing が選択されたコネクタを使用している場合、この確定プロセスは自動化されており、これらの手動手順を実行する必要はありません。
-
管理コンソールに戻ります。
-
Layers > App layers を選択し、準備したレイヤーを選択します。
-
「バージョン情報」タブでレイヤーバージョンを選択し、アクションバーの「完了」をクリックします。
-
「完了」をクリックして、レイヤーの作成を完了します。
-
タスクバーを監視して、アクションが正常に完了したことを確認します。
レイヤーが検証されると、使用されるストレージスペースを最小限に抑えるためにパッケージングマシンは削除されます。
その他のハイパーバイザー (ネットワークファイル共有)
レイヤーが検証され、シャットダウンされたので、完了する準備ができました。
-
パッケージングマシンファイルを含むフォルダーから、ネットワークファイル共有上のFinalizeフォルダーにパッケージングディスクをコピーします。 \Unidesk\Finalize
-
管理コンソールに戻ります。
-
「レイヤー > アプリレイヤー」を選択します。
-
「バージョン情報」タブでレイヤーバージョンを選択し、アクションバーの「完了」をクリックします。
-
タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認します。
アプリレイヤーをクローンする
既存のレイヤーと同じアプリレイヤーを、特定のレイヤーバージョンをクローンすることで作成できます。クローン作成プロセス中に、レイヤーに固有の情報の入力を求められます。バージョンを追加することで、アプリレイヤーを更新できます。レイヤーの1つのバージョンのみがクローンされるため、クローン元のレイヤーに多数のバージョンがあったとしても、新しいレイヤーは開始時に1つのバージョンしか持ちません。
レイヤーをクローンするには:
アイコンを除き、ソースと同じレイヤープロパティを持つ新しいレイヤーが作成されます。新しいAppレイヤーはすべて、最後に作成されたAppレイヤーよりも優先度が高いため、レイヤーの優先度はソースレイヤーよりも高くなります。新しいレイヤーのサイズは元のレイヤーよりも小さくなる可能性がありますが、これはクローン作成中に空きスペースが削除されたことを示しているだけです。レイヤーはソースと同じように機能します。
新しいレイヤーは他のレイヤーと同様に使用でき、元のレイヤーとはいかなる形でも関連付けられていません。
高度なAppレイヤーオプション
Appレイヤーを作成および更新する際は、以下の高度な機能を考慮してください。
-
カスタムレイヤースクリプト
-
レイヤーキャッシュ
-
前提条件レイヤー
カスタムレイヤースクリプト
システム起動時に一度だけ実行されるスクリプトをAppレイヤーに含めることができます。スクリプトを設定するには、アプリケーションレイヤーのプロパティを編集します。
注:
レイヤーリビジョンのプロパティは、リビジョン作成中、または確定後でも編集できます。
スクリプトは、アプリレイヤーを含むレイヤー化されたイメージが最初に起動したときに実行されます。アプリレイヤーがエラスティックにレイヤー化されている場合、カスタムレイヤースクリプトはアプリレイヤーディスクのマウント時に実行されます。カスタムレイヤースクリプトは通常、MS Officeなどの、初回起動時にライセンス認証が必要なアプリに使用されます。
カスタムレイヤースクリプト(/en-us/citrix-app-layering/4/media/custom-layer-script.png)
アプリレイヤー作成を高速化するためのレイヤーキャッシュ
レイヤーキャッシュを使用して、レイヤー作成時間を短縮できます。
キャッシュの仕組み
アプリレイヤーを初めて作成するときに、キャッシュサイズが十分に大きな値に設定されている場合、ブートディスクと空のパッケージングディスクで構成されるテンプレートがキャッシュに保存されます。ブートディスクには、アプリレイヤー設定で指定されたOSレイヤー、プラットフォームレイヤー、および前提条件レイヤー(存在する場合)が含まれます。
同じOSレイヤー、前提条件レイヤー、およびプラットフォームレイヤーの組み合わせを使用するアプリレイヤーを作成するたびに、App Layeringソフトウェアはテンプレートを再利用し、作成時間を大幅に短縮します。
異なるOSレイヤー、前提条件レイヤー、およびプラットフォームレイヤーの組み合わせを使用するアプリレイヤーを作成すると、App Layeringソフトウェアはテンプレートを作成し、それをキャッシュに追加します。
推奨されるキャッシュサイズ
推奨されるキャッシュサイズは、アプリレイヤーに必要なOS、プラットフォーム、および前提条件レイヤーの組み合わせの数によって異なります。組み合わせの数によって、キャッシュに保存されるテンプレートの数が決まります。
各テンプレートに必要なスペースを見積もるには:
-
各OS、プラットフォーム、および前提条件レイヤーのiアイコンを選択し、最大レイヤーサイズを確認します。
-
最大ディスクサイズを追加します。合計が、そのテンプレートに必要なキャッシュサイズです。
キャッシュに必要なスペースを見積もるには、各テンプレートについて決定したサイズを合計します。
前提条件レイヤー
めったに推奨されませんが、前提条件レイヤーを使用すると、レイヤーを作成したりバージョンを追加したりする際に、パッケージングディスクに既存のアプリレイヤーを1つ以上含めることができます。
前提条件レイヤーは、現在のアプリケーションを展開するために必要のないものをレイヤーに追加する可能性があるため、必要な場合にのみ使用してください。この動作は将来的に競合を引き起こす可能性があります。
前提条件レイヤーを使用するタイミング
前提条件レイヤーは、いくつかの理由で必要になる場合があります。
-
現在のレイヤーにアプリケーションをインストールする際に、別のアプリケーションの存在が必要な場合。たとえば、Javaを必要とするアプリケーションをインストールし、Javaが別のレイヤーにある場合などです。
-
ソフトウェアのインストールによって既存のアプリケーションに設定が追加される場合。たとえば、Officeアドインをインストールする際には、まずMicrosoft Officeをインストールする必要があります。
-
2つのアプリケーションが同じレジストリキーを変更し、2番目のアプリケーションがキーを置き換えるのではなく追加する必要がある場合。たとえば、Citrix AgentとImprivataのように、両方ともWindowsのログインキーを変更する2つのアプリケーションの場合です。
注
これらの問題の一部は、前提条件レイヤーを使用するのではなく、2つのアプリケーションを同じレイヤーに配置することでも対処できます。
前提条件レイヤーの特性
前提条件レイヤーには、次の特性があります。
-
前提条件レイヤーは、作成に使用されるアプリレイヤーには含まれません。
-
作成するアプリレイヤーと、その各前提条件レイヤーは、同じOSレイヤーを使用する必要があります。
-
アプリレイヤーにバージョンを追加する場合、前提条件レイヤーはデフォルトでは含まれません。レイヤーにバージョンを追加するたびに、1つ以上の前提条件レイヤーを選択する必要があります。