App Layering

画層を更新

OS、プラットフォーム、またはアプリレイヤーでソフトウェアを更新する手順は、ほぼ同じです。レイヤーにバージョンを追加し、パッケージングマシンにアップグレードまたはパッチをインストールし、レイヤーを確認してからファイナライズします。更新したら、新しい Layer バージョンをデプロイします。これは Layer のタイプによって異なります。

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

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

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

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

  1. Citrix App Layering 管理コンソールで、「 レイヤー」>「OS レイヤー」を選択します
  2. OS レイヤーを選択し、[ **バージョン情報] タブの [バージョンの追加** ] をクリックします。
  3. バージョンの詳細:
    1. [ ベースバージョン] で、新しいレイヤバージョンのベースとして使用するバージョンを選択します。デフォルトは最新バージョンです。
    2. 新しいバージョンの名前を入力します。これは、OS のバージョンまたはその他の識別情報です。
  4. Layer を作成するハイパーバイザーのコネクタ構成を選択します
  5. パッケージングディスクのファイル名を入力し、コネクタ構成の代わりにアプライアンスのファイル共有を使用している場合に使用するディスク形式を選択します。このディスクは、アプリケーションをインストールするパッケージングマシン(仮想マシン)に使用されます。
  6. 設定を確認して、[ バージョンを追加] をクリックします。これにより、OS バージョンを作成するタスクが実行されます。タスクが完了すると、[ アクションが必要] のステータスが表示されます。タスクを選択して [詳細の表示( View Details)] をクリックすると、次のテキストが表示されます。

「パッケージングディスクが公開されました。仮想マシン ‘<… >’ は、データセンター ‘<… >’ のフォルダ ‘<… >’ にあります。この仮想マシンをパワーオンして、アプリケーションをインストールします。インストールが完了したら、アクションバーの [ ファイナライズ ] をクリックする前に、仮想マシンをパワーオフします。

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

パッケージングマシンをHypervisor にデプロイする

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

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

  1. Hypervisor でパッケージングマシンを作成するには、手順 2 に示す拡張パッケージングディスクタスクから開始します。
  2. Hypervisor ークライアントにログインします。
  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プロセスなど、必要なインストール後の処理をすべて完了する必要があります。

未処理のプロセスが完了していることを確認するには、パッケージングマシンのデスクトップに表示される「ファイナライズのシャットダウン」ツール(下のアイコン)を実行します。

[ファイナライズのシャットダウン] ツールを使用するには、次の手順に従います。

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

レイヤはファイナライズする準備ができました。

選択したコネクタ構成が [ オフロードコンポジット] に設定されている場合、レイヤは自動的にファイナライズされます。それ以外の場合は、次の手順で説明するように、次の手順でレイヤーを手動でファイナライズします。

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

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

  • 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.
  • `ソフトウェアセンタークライアントは実行するように設定されていますが、SMSCFG.INI はまだ存在しています。仮想環境へのSCCMの展開について詳しくは、Microsoft TechNetの記事「XenDesktop VDI環境へのSCCMの実装」を参照してください。`

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

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

ngen Microsoftの運用が進行中の場合は、次のセクションで説明するように、迅速に処理できる場合があります。

必要に応じて、 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. .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. すべての操作が完了したら、デスクトップにある [ ファイナライズのためにシャットダウン ] ショートカットを使用して仮想マシンをシャットダウンします。

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

パッケージングマシンが作成され、アプリまたはアップデートがインストールされたら、Layer を完成させることができます。

注:OSレイヤーの新しいバージョンを確定すると、パッケージングマシンが削除され、コストが増えないようにします。

レイヤをファイナライズする準備ができたら、次のようになります。

  1. 管理コンソールに戻ります。
  2. レイヤーモジュールで、レイヤーを選択します。
  3. アクションバーで [ ファイナライズ ] を選択します。
  4. タスクバーを監視して、アクションが正常に完了し、レイヤーがデプロイ可能であることを確認します。