アプリレイヤーを作成または複製する
アプリ レイヤーは、1 つ以上のアプリケーションを含む仮想ディスクです。 通常、アプリ レイヤーには 1 つのアプリケーションが含まれます。 レイヤーに複数のアプリケーションを含める場合は、通常同時に更新するものだけに制限します。
アプリレイヤーをゼロから作成する
このセクションでは、次の内容を含むアプリ レイヤーの作成手順について説明します。
- 要件と考慮事項
- 新しいアプリレイヤーを開始する
- 包装機の導入
- アプリケーションをインストールする
- 表示される可能性のあるレイヤー整合性メッセージ
- レイヤーを確認し、マシンをシャットダウンします
- 必要に応じて、Microsoft
Ngen.exe
の操作を迅速化します - レイヤーを完成させる
要件と考慮事項
アプリ レイヤーには、1 つ以上のアプリケーションと関連設定が含まれます。 MS Office は常にアプリ レイヤーにインストールし、OS レイヤーにはインストールしないでください。
- ウイルス対策アプリケーション: ここ に記載されている手順に従って、常にウイルス対策アプリケーションをアプリ レイヤーに配置します。 ウイルス定義ファイルの更新は戦略的に行ってください。 また、Symantec の仮想イメージ例外ツールなどのファイル マーキング機能にも注意してください。 ホストベースのスキャン エンジンを検討し、ユーザー ログオン時の遅延に留意してください。 レイヤーではなく、公開されたレイヤー化された画像を必ずスキャンしてください。 スキャンは、Citrix Virtual Apps および Citrix Virtual Desktops 上のユーザー アクセスに対してのみ実行されます。
- MS Office: この レシピ を使用して Office をインストールします。 Office 2010 以降の VDI 展開では、KMS を必須とみなしてください。 Office 2007 以前の場合、ボリューム ライセンスが必須であると考えてください。 他のライセンス構造を使用すると、各デスクトップで各ライセンスをアクティブ化する必要があるため、それほど便利ではありません。 ユーザー設定とデータを保持するには、Office 365 ユーザー レイヤー ストアの OST とストリーミング ファイルを有効にします。 検索インデックスは保存されません。
- 特定のアプリケーションをレイヤー化するためのレシピ: 実質的にはどのアプリケーションでもレイヤー化できますが、 アプリのレイヤー化レシピ フォーラムでまとめたヒントを参考にすると、より簡単にレイヤー化できるアプリケーションもあります。 開始する前に、レイヤー化する特定のアプリケーションに関するヒントと手順についてフォーラムを参照してください。
- ローカル ユーザーまたは管理者の追加が必要なアプリケーション。 アプリ レイヤーにアプリケーションをインストールするときに追加または変更したローカル ユーザーまたは管理者は保持されません。 OS レイヤーでは追加したローカル ユーザーまたはグループが保持されますが、アプリ レイヤーでは保持されません。 アプリケーションをインストールする前に、ローカル ユーザーまたは管理者を OS レイヤーに追加するか、OS レイヤーにアプリケーションをインストールすることを検討してください。
新しいアプリレイヤーを開始する
アプリケーションをインストールできるパッケージング マシンを作成するには:
- 管理コンソールにログインし、 レイヤー > アプリ レイヤーを選択します。
- アクション バーの レイヤーの作成 をクリックします。
- レイヤー名 と バージョンを入力します。どちらも必須の値です。 他の値を入力することもできます。
- OS レイヤー タブで、このアプリ レイヤーに関連付ける OS レイヤーを選択します。
- (オプション) [前提条件レイヤー] タブでは、このレイヤーにアプリをインストールするときに存在する必要がある他のアプリ レイヤーを指定するオプションが提供されます。 必要なアプリを同じレイヤーに含めることができない場合にのみこれを使用します。 この高度な機能の詳細については、次のセクションの「前提条件レイヤー」を参照してください。 注: 既存のアプリ レイヤーに新しいバージョンを追加する場合は、必要な前提条件レイヤーを指定する必要があります。 これらはバージョン間で引き継がれる であり、 ではありません。
- [コネクタ] タブで、レイヤーを構築する予定のプラットフォームとストレージの場所の資格情報を含むコネクタ構成を選択します。 必要な構成がリストされていない場合は、[ 新規 ] をクリックして、 追加 します。
- [パッケージ ディスク] タブで、パッケージ ディスクの ファイル名 を入力し、ディスク形式を選択します。 このディスクは、アプリケーションをインストールする仮想マシンであるパッケージング マシンに使用されます。
- [アイコンの割り当て] タブで、レイヤーに割り当てるアイコンを選択します。 このアイコンは、レイヤー モジュール内のレイヤーを表します。
- 既存の画像を使用するには、画像ダイアログ ボックスで画像を選択します。
- 新しい画像をインポートするには、[ 参照 ] をクリックし、PNG または JPG 形式の画像を選択します。
- Offload Compositing が選択されたコネクタを使用していて、App Layering に付属のアイコンの 1 つを選択した場合、パッケージング マシンは、レイヤーが完成したときに、レイヤーの内容に基づいてアイコンを割り当てようとします。
- [確認と完了] タブで、アプリ レイヤーの詳細を確認し、[ レイヤーの作成] をクリックします。 レイヤーを作成する前に、オプションのコメントを入力できます。 コメントは情報ビューの監査履歴に表示されます。 パッケージ ディスクを作成すると、タスク バーにハイパーバイザー内のパッケージ ディスクへのリンクが表示され、パッケージ マシンを展開できるようになります。
- タスク ページを選択し、 パッケージング ディスク タスクをクリックします。 情報アイコンをクリックすると、このレイヤーのパッケージング マシンが公開されている場所へのリンクを含む、タスクの完全な説明が表示されます。
次に、レイヤーのパッケージング マシンをデプロイできます。
包装機の導入
ハイパーバイザーを選択してください:
- XenServer、Hyper-V、Nutanix、または vSphere
- アズール
- その他のハイパーバイザー(ネットワークファイル共有)
- Google クラウド プラットフォーム (GCP)
XenServer、Hyper-V、Nutanix、vSphere
- ハイパーバイザー クライアント (XenServer、Hyper-V Manager、Nutanix Prism、または vSphere) にログインします。
- App Layering 管理コンソールにログインし、 タスク ページを選択して、現在のタスクを確認します。
- アプリレイヤーの作成 タスクを選択し、情報アイコンをクリックしてタスクの詳細な説明を表示します。
- タスクの説明に記載されている URL を使用して、ハイパーバイザー クライアントのパッケージング マシンに移動します。
- 包装機の電源が入っています。
これで、このレイヤーのアプリケーションをパッケージング マシンにインストールできるようになりました。
アズール
アプライアンスにより、Azure カスタム デプロイ テンプレートが開き、パッケージング マシンを作成できます。
- Azure ポータル (https://portal.azure.com) にログインします。 注意: 次のステップに進む前に、 ログインする必要があります 。
- App Layering 管理コンソールに移動し、 タスク ページを選択します。 アプリレイヤーの作成 タスクを選択し、情報アイコンをクリックして詳細を表示します。
- タスクの詳細にあるリンクを使用して、Azure のパッケージング マシンに移動します。 カスタム デプロイメント パネルが開きます。
- Azure パラメータを設定します。
- パッケージング マシン名 - Azure 仮想マシン名の要件に準拠する必要があります。
- サイズ – 仮想マシンのサイズ。
- 仮想ネットワークとサブネット - パッケージング マシンを展開するためのもの。 重要: リソース グループの場所 の値が、コネクタ構成で構成した ストレージ アカウントの場所 と一致していることを確認してください。 これらの場所が同じでない場合、パッケージング マシンは展開に失敗します。 デプロイメントが失敗した場合は、リンクをもう一度ブラウザに貼り付けてやり直すことができます。
- パッケージング マシンの電源がオンになったら、レイヤーに含めるアプリケーションをインストールできます。
その他のハイパーバイザー(アプライアンスのネットワークファイル共有経由)
-
ネットワーク ファイル共有の次のディレクトリでパッケージ ディスクを見つけます。 \Unidesk\パッケージディスク
-
パッケージ ディスクをハイパーバイザー上の別の場所にコピーします。 これにより、ディスクを使用して新しい仮想マシンを作成するときに、ハイパーバイザーによって生成されるファイル用のスペースが確保されます。
重要: ファイナライズの準備ができるまで、ディスクを Finalize フォルダーにコピーしないでください。 ** Finalize フォルダー内のディスクは、次に作成する新しい仮想マシンに接続できません。
-
パッケージ ディスクをブート ディスクとして使用して仮想マシンを作成します。
-
包装機の電源を入れます。
パッケージング マシンの電源がオンになったら、レイヤーに含めるアプリケーションをインストールできます。
アプリケーションをインストールする
アプリケーションをパッケージング マシンにインストールするときは、ユーザーがログインしたときに表示するアプリケーションの状態を維持します。 アプリケーションの状態は、ユーザーがアプリにアクセスするたびに体験するものです。
- オペレーティング システムの作成に使用した ユーザー アカウント を使用して、パッケージング マシンにリモートでログインします。
- アプリケーションとともに、アプリに必要なドライバー、ブートレベルのアプリケーション、ファイルもインストールします。
- システムの再起動が必要な場合は、手動で再起動してください。 包装機は自動的に再起動しません。 インストールするアプリケーションがブートレベルのコンポーネントに影響を与える場合は、レイヤーの最終処理の一環としてパッケージ化マシンを再起動します。
- 包装機がユーザーにとって望ましい状態になっていることを確認します。
- アプリケーションでインストール後のセットアップや登録が必要な場合は、ここでそれらの手順を完了してください。
- パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションをすべて削除してください。
レイヤーを確認し、マシンをシャットダウンします
アプリケーションがパッケージング マシンにインストールされたら、レイヤーを最終処理する準備ができていることを確認します。 インストール後の処理がすべて完了すると、レイヤーを最終決定する準備が整います。
未処理のプロセスがすべて完了したことを確認するには、パッケージング マシンのデスクトップで Shutdown For Finalize ツールを実行できます。
シャットダウン フォー ファイナライズ ツールを使用するには:
- パッケージング マシンにログインしていない場合は、マシンを作成したユーザーとしてリモート ログインします。
- Shutdown For Finalize アイコンをダブルクリックします。 コマンドライン ウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます。
- レイヤーを確定させる前に完了する必要がある未処理の操作がある場合は、プロセスを完了するように求められます。
Microsoft Ngen.exe
操作を完了する必要がある場合は、この記事の後半で説明するように、Ngen.exe
操作を迅速に実行できる可能性があります。 - 保留中の操作が完了したら、 Shutdown For Finalize アイコンをもう一度ダブルクリックします。 これにより、パッケージング マシンがシャットダウンされ、レイヤーを最終処理する準備が整います。
ファイナライズプロセス中に表示される可能性のあるレイヤー整合性メッセージ
次のレイヤー整合性メッセージは、レイヤーをファイナライズする準備ができる前に、キューに入れられたどの操作を完了する必要があるかを示します。
- RunOnce スクリプトが未完了です - パッケージング マシンを確認して再起動してください。
- インストール後の再起動が保留中です - パッケージング マシンを確認して再起動してください。
- Microsoft Ngen.exe 操作がバックグラウンドで進行中です。
- MSI インストール操作が進行中です - パッケージング マシンを確認してください。
- ブート ディスク上のドライバーを更新するために再起動が保留中です - パッケージング マシンを確認して再起動してください。
- Microsoft Ngen.exe 操作が必要です。
- ソフトウェア センター クライアントは実行するように構成されていますが、SMSCFG.INI はまだ存在しています。 SCCM をレイヤーに展開する方法の詳細については、記事「 App Layering レシピ: Microsoft SCCM をレイヤーに展開する方法」を参照してください。
レイヤーの整合性メッセージの意味とデバッグ方法の詳細については、Citrix App Layering でのレイヤー整合性問題のデバッグ を参照してください。
すべてのプロセスが完了するまで、App Layering ソフトウェアは停止し、パッケージング マシンに戻るため、マシンをシャットダウンしてもレイヤー整合性メッセージをバイパスすることはできません。
Microsoft Ngen.exe 操作が進行中の場合は、次のセクションで説明するように、それを迅速に実行できる可能性があります。
必要に応じて、Microsoft Ngen.exe
の操作を迅速化します
すべてのソフトウェア更新プログラムがインストールされたら、 Ngen.exe
が基本的に .NET
バイト コードをネイティブ イメージに再コンパイルし、それらを管理するためのレジストリ エントリを構築できるようにする必要があります。
Ngen.exe
は、 .NET
システムの一部である Microsoft ネイティブ イメージ ジェネレーターです。 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 3
Ngen.exe
タスクはコマンド プロンプトのフォアグラウンドに移動し、コンパイル中のアセンブリを一覧表示します。 コンパイルメッセージが表示されればOKです。タスク マネージャー を使用して、
MSCORSVW.EXE
のインスタンスが実行されているかどうかを確認できます。 そうであれば、完了するまで待つか、ngen eqi 3
を実行します。注意:
タスクを停止するために再起動しないでください。 タスクを完了させてください。
- すべての
Ngen.exe
プロセスが完了していることを確認します。 - 完了したら、デスクトップにある Shutdown For Finalize ショートカットを使用して仮想マシンをシャットダウンします。
レイヤーを完成させる
ソフトウェアがインストールされ、パッケージング マシンが検証されてシャットダウンされると、レイヤーを最終的に完成させる準備が整います。
ハイパーV:
コネクタ構成で Offload Compositing が選択されている場合、合成プロセスの一部としてファイナライズが自動的に行われます。
XenServer、Azure、Hyper-V、Nutanix AHV、VMware vSphere
レイヤーが検証され、シャットダウンされたので、最終処理の準備が整いました。
ハイパーV:
Offload Compositing が選択されたコネクタを使用している場合、この最終処理プロセスは自動化されており、これらの手動の手順を実行する必要はありません。
- 管理コンソールに戻ります。
- レイヤー > アプリ レイヤーと、準備したレイヤーを選択します。
- バージョン情報 タブでレイヤー バージョンを選択し、アクション バーの 確定 をクリックします。
- Finalize をクリックしてレイヤーの作成を終了します。
- タスクバーを監視して、アクションが正常に完了したことを確認します。
層が検証されると、使用される保管スペースを最小限に抑えるために包装機が取り外されます。
その他のハイパーバイザー(ネットワークファイル共有)
レイヤーが検証され、シャットダウンされたので、最終処理の準備が整いました。
-
パッケージング マシン ファイルを含むフォルダーから、ネットワーク ファイル共有の Finalize フォルダーにパッケージング ディスクをコピーします。 \Unidesk\ファイナライズ
-
管理コンソールに戻ります。
-
レイヤー > アプリ レイヤーを選択します。
-
バージョン情報 タブでレイヤー バージョンを選択し、アクション バーの 確定 をクリックします。
-
タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認します。
アプリレイヤーの複製
特定のバージョンのレイヤーを複製することで、既存のレイヤーと同じアプリ レイヤーを作成できます。 クローン作成プロセス中に、レイヤー固有の情報の入力を求められます。 バージョンを追加することで、アプリ レイヤーを更新できます。 レイヤーの複製は 1 つのバージョンのみ作成されるため、複製元のレイヤーに複数のバージョンがあったとしても、新しいレイヤーは最初は 1 つのバージョンだけになります。
レイヤーを複製するには:
- コピーするアプリ レイヤーを選択し、アクション バーの レイヤーの複製 をクリックします。
- 複製するソース レイヤー バージョンを選択します。 ドロップダウン メニューから必要なバージョンを選択できます。
- レイヤーの名前と、追加情報が役立つ場合は説明を入力します。 説明はオプションです。
- 追加情報が役立つ場合は、バージョンとバージョンの説明を入力します。
- [アイコンの割り当て] タブで、新しいレイヤーのアイコンを選択します。
- [確認と複製]タブで設定を確認し、[ レイヤーの複製 ]ボタンをクリックします。
アイコンを除いて、ソースと同じレイヤー プロパティを持つ新しいレイヤーが作成されます。 すべての新しいアプリ レイヤーの優先度は、最後に作成されたアプリ レイヤーの優先度よりも高いため、レイヤー の優先度 はソース レイヤーの優先度よりも高くなります。 新しいレイヤーのサイズは元のレイヤーのサイズよりも小さくなる可能性がありますが、これはクローン作成中に空きスペースが削除されたことを示しているだけです。 レイヤーはソースと同じように機能します。
新しいレイヤーは他のレイヤーと同様に使用でき、元のレイヤーとは一切関連付けられていません。
高度なアプリレイヤーオプション
アプリ レイヤーを作成および更新するときは、次の高度な機能に留意してください。
- カスタムレイヤースクリプト
- レイヤーキャッシュ
- 前提条件レイヤー
カスタムレイヤースクリプト
システムの起動時に 1 回実行されるスクリプトをアプリ レイヤーに含めることができます。 スクリプトを構成するには、アプリケーション層のプロパティを編集します。
注記:
リビジョンの作成中、またはリビジョンが確定した後でも、レイヤー リビジョンのプロパティを編集できます。
このスクリプトは、アプリ レイヤーを含むレイヤー化されたイメージが初めて起動されたときに実行されます。 アプリ レイヤーが弾性的に階層化されている場合、アプリ レイヤー ディスクをマウントするときにカスタム レイヤー スクリプトが実行されます。 カスタム レイヤー スクリプトは通常、初回起動時にライセンスのアクティベーションが必要な MS Office などのアプリに使用されます。
レイヤーキャッシュによりアプリレイヤーの作成が高速化
レイヤー キャッシュを使用すると、レイヤーの作成時間を短縮できます。
キャッシュの仕組み
アプリ レイヤーを初めて作成するときに、キャッシュ サイズが十分に大きい値に設定されている場合、ブート ディスクと空のパッケージ ディスクで構成されるテンプレートがキャッシュに保存されます。 ブート ディスクには、アプリ レイヤー設定で指定された 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 つ以上の前提条件レイヤーを選択する必要があります。