App Layering

レイヤーの更新

OS、プラットフォーム、またはアプリレイヤーのソフトウェアを更新する手順は、実質的に同じです。レイヤーにバージョンを追加し、パッケージングマシンにアップグレードまたはパッチをインストールし、検証してからレイヤーを確定します。更新後、新しいレイヤーバージョンを展開しますが、これはレイヤーの種類によって異なります。

プラットフォームレイヤーは最も優先度の高いレイヤーであり、特にネットワークなどのデバイスに関して、イメージの展開に不可欠です。インフラストラクチャソフトウェアを更新する際は常に、プラットフォームレイヤーに新しいバージョンを追加する必要があります。

新しいOSレイヤーをベースとして使用して、プラットフォームレイヤーにバージョンを追加します。パッケージングマシンが起動したら、確定のためにマシンをシャットダウンします。プラットフォームレイヤーは、新しいOSレイヤーバージョンから重要なコンポーネントを収集し、OSバージョンと一致するようにプラットフォーム内でそれらを更新します。

レイヤーへのバージョンの追加

たとえば、OSレイヤーにバージョンを追加するには、次の手順を実行します。

  1. Citrix App Layering™ Management Consoleで、[Layers] > [OS Layers] を選択
  2. OSレイヤーを選択し、[Version Information] タブで [Add Version] をクリック
  3. [Version Details]で、次の手順を実行
    1. [Base Version] には、新しいレイヤーバージョンのベースとして使用するバージョンを選択します。デフォルトは最新バージョンです
    2. [New Version] の名前を入力します。これはOSバージョンまたはその他の識別情報にすることができます
  4. レイヤーを作成するハイパーバイザーの [Connector configuration] を選択
  5. パッケージングディスクのファイル名を入力し、コネクター構成の代わりにアプライアンスのファイル共有を使用する場合は、使用するディスク形式を選択します。このディスクは、アプリケーションをインストールするパッケージングマシン(仮想マシン)に使用されます
  6. 設定を確認し、[Add Version] をクリックします。これにより、OSバージョンを作成するタスクが実行されます。タスクが完了すると、ステータスが [Action Required] と表示されます。タスクを選択して [View Details] をクリックすると、次のテキストが表示されます

「パッケージングディスクが公開されました。仮想マシン「<…>」は、データセンター「<…>」のフォルダー「<…>」にあります。この仮想マシンを起動してアプリケーションをインストールします。インストールが完了したら、アクションバーの [Finalize] をクリックする前に仮想マシンをシャットダウンしてください。」

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

ハイパーバイザーへのパッケージングマシンの展開

パッケージングマシンは、レイヤーに含める更新プログラムまたはアプリケーションをインストールする仮想マシンです。パッケージングマシンは一時的な仮想マシンであり、OSレイヤーが確定されると削除されます。

タスクの説明には、このレイヤーのパッケージングマシンが作成されたハイパーバイザー内の場所へ移動するための指示が含まれています。

  1. ハイパーバイザーにパッケージングマシンを作成するには、手順2に示されている展開されたパッケージングディスクタスクから開始
  2. ハイパーバイザークライアントにログイン
  3. 管理コンソールに戻り、展開されたパッケージングディスクタスクの指示を使用してパッケージングマシンに移動

OS更新プログラムのインストール

  1. パッケージングマシンにリモートログインします。OSの作成に使用したユーザーアカウントにログインしていることを確認
  2. Windows Updateやウイルス対策アプリケーションなど、新しいOSレイヤーバージョンに含める更新プログラムやアプリケーションをインストール
  3. アプリケーションのインストールにシステム再起動が必要な場合は、手動で再起動します。パッケージングマシンは自動的に再起動しません
  4. パッケージングマシンがユーザーにとって望ましい状態になっていることを確認
    1. インストールするアプリケーションにインストール後のセットアップやアプリケーション登録が必要な場合は、今すぐそれらの手順を完了
    2. パッケージングマシンに含めたくない設定、構成、ファイル、マップされたドライブ、またはアプリケーションを削除

次に、パッケージングマシンをシャットダウンし、レイヤーが確定する準備ができていることを確認します。

注:

Windows 10をあるメジャーバージョンから別のバージョン(たとえば、1703から1709)にアップグレードすると、以前のWindowsインストールはC:\Windows.oldフォルダーに残ります。App Layeringでは、このフォルダーを削除してはなりません。アップグレードが完全に完了すると、当社のソフトウェアはドライバーやその他のファイルをWindows.oldからWindowsにコピーする必要があります。OSレイヤーを確定する際に、Windows.oldをクリーンアップします。

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

次のステップは、レイヤーが確定する準備ができていることを確認することです。確定の準備が整うには、再起動やMicrosoft ngenプロセスなど、必要なインストール後の処理がすべて完了している必要があります。

未処理のプロセスがすべて完了していることを確認するには、パッケージングマシンのデスクトップに表示されるShutdown For Finalizeツール(以下のアイコン)を実行できます。

Shutdown For Finalizeツールを使用するには、次の手順を実行します。

  1. パッケージングマシンにログインしていない場合は、マシンを作成したユーザーとしてリモートログイン
  2. Shutdown For Finalizeアイコンをダブルクリックします。コマンドラインウィンドウに、レイヤー検証プロセスの詳細を示すメッセージが表示されます
  3. レイヤーを確定する前に完了する必要がある未処理の操作がある場合は、それを完了するように求められます。たとえば、Microsoft ngen操作を完了する必要がある場合は、以下に詳述するようにngen操作を迅速化することができます
  4. 保留中の操作がすべて完了したら、Shutdown For Finalizeアイコンをもう一度ダブルクリックします。これにより、パッケージングマシンがシャットダウンされます

レイヤーは確定する準備ができています。

選択したコネクター構成が [Offload Compositing] に設定されている場合、レイヤーは自動的に確定されます。それ以外の場合は、次の手順で説明するように、レイヤーを手動で確定します。

レイヤー整合性メッセージ

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

  • A RunOnce script is outstanding - please check and reboot the Packaging Machine.
  • A post-installation reboot is pending - please check and reboot the packaging machine.
  • A Microsoft ngen operation is in progress in the background. - An MSI install operation is in progress - please check the packaging machine.
  • A reboot is pending to update drivers on the boot disk - please 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. To learn more about deploying SCCM in a virtual environment, see the Microsoft TechNet article, [Implementing SCCM in a XenDesktop VDI environment](https://social.technet.microsoft.com/wiki/contents/articles/23923.implementing-sccm-in-a-xendesktop-vdi-environment.aspx)。

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

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

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

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

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

Ngen.exeは、.NETシステムの一部であるMicrosoft Native Image Generatorです。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. .NET Framework 3以降を使用している場合は、次のNgen.exeコマンドを入力して、キューに入れられたすべての項目を実行します。このコマンドは、アセンブリをビルドする前に、キューに入れられたコンポーネントのインストールを処理します

    ngen eqi 3 <!--NeedCopy-->

    Ngen.exeタスクはコマンドプロンプトでフォアグラウンドに移動し、コンパイルされているアセンブリを一覧表示します。コンパイルメッセージが表示されても問題ありません。

    すべてのNgen.exeプロセスが完了していることを確認してください。タスクマネージャーを使用して、MSCORSVW.EXEのインスタンスが実行されているかどうかを確認できます。実行されている場合は、完了させるか、ngen eqi 3を実行してください。

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

  4. .NET Framework 2以前を使用している場合は、次のNgen.exeコマンドを入力して、キューに入れられた項目を実行します。

    ``` ngen update /force

    
    これにより、ngenタスクがコマンドプロンプトでフォアグラウンドに移動し、コンパイルされているアセンブリを一覧表示します。
    
    >**注:**
    > **コンパイル失敗**メッセージが表示されても問題ありません。
    > タスクマネージャーでMSWORD.EXEのインスタンスが実行されているかどうかを確認してください。実行されている場合は、完了させるか、`ngen update /force`を再実行する必要があります。タスクを停止するために再起動しないでください。完了するまで待ってください。
    
    管理者としてコマンドプロンプトを開き、次のコマンドを実行して、`Ngen.exe`操作のステータスを確認します。 ```ngen queue status<!--NeedCopy-->
    

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

  5. すべての操作が完了したら、デスクトップにある [Shutdown For Finalize] ショートカットを使用して仮想マシンをシャットダウン

レイヤーの手動確定

パッケージングマシンが作成され、アプリや更新プログラムがインストールされたら、レイヤーを確定できます。

注: OSレイヤーの新しいバージョンを確定すると、システムは追加コストを発生させないようにパッケージングマシンを削除します。

レイヤーが確定する準備が整ったら、次の手順を実行します。

  1. 管理コンソールに戻る
  2. [Layers]モジュールで、レイヤーを選択
  3. アクションバーで [Finalize] を選択
  4. タスクバーを監視して、アクションが正常に完了し、レイヤーが展開可能であることを確認
レイヤーの更新