コンテンツライフサイクル管理の例

このセクションには、コンテンツライフサイクル管理を使用する一般的な例がいくつか含まれています。 これらの例を使用して、独自の実装を構築してください。

1. 月次パッチサイクルのプロジェクトの作成

月次パッチサイクルのプロジェクト例は、以下で構成されます。

  • `By Date`フィルタの作成

  • プロジェクトへのフィルタの追加

  • 新しいプロジェクトビルドへのフィルタの適用

  • プロジェクトからのパッチの除外

  • プロジェクトにパッチを含める

1.1. `By Date`フィルタの作成

`By Date`フィルタは、指定された日付以降にリリースされたすべてのパッチを除外します。 このフィルタは、月次パッチサイクルに従うコンテンツライフサイクルプロジェクトに役立ちます。

プロシージャ:`By Date`フィルタの作成
  1. SUSE Multi-Linux Manager Web UIで、コンテンツライフサイクル  フィルタに移動し、フィルタの作成をクリックします。

  2. `Filter Name`フィールドに、フィルタの名前を入力します。 たとえば、`Exclude patches by date`と指定します。

  3. `Filter Type`フィールドで、`Patch (Issue date)`を選択します。

  4. `Matcher`フィールドでは、`later or equal`が自動的に選択されます。

  5. 日時を選択します。

  6. 保存をクリックします。

1.2. プロジェクトへのフィルタの追加

プロシージャ:プロジェクトへのフィルタの追加
  1. SUSE Multi-Linux Manager Web UIで、コンテンツライフサイクル  プロジェクトに移動し、リストからプロジェクトを選択します。

  2. フィルタの割り当て/取り外しリンクをクリックして、すべての使用可能なフィルタを表示します。

  3. 新しい`Exclude patches by date`フィルタを選択します。

  4. 保存をクリックします。

1.3. 新しいプロジェクトビルドへのフィルタの適用

新しいフィルタはフィルタリストに追加されますが、プロジェクトに適用する必要があります。 フィルタを適用するには、最初の環境を構築する必要があります。

プロシージャ:フィルタを使用する
  1. ビルドをクリックして、最初の環境を構築します。

  2. オプション:メッセージを追加します。 メッセージを使用して、ビルド履歴を追跡できます。

  3. テストサーバで新しいチャンネルを使用して、フィルタが正しく機能していることを確認します。

  4. プロモートをクリックして、次の環境にコンテンツを移動します。 多数のフィルタがある場合、または非常に複雑な場合は、ビルドに時間がかかります。

1.4. プロジェクトからのパッチの除外

テストによって問題を発見できる場合があります。 問題が見つかった場合は、`by date`フィルタより前にリリースされた問題のあるパッチを除外します。

プロシージャ:パッチを除外する
  1. SUSE Multi-Linux Manager Web UIで、コンテンツライフサイクル  フィルタに移動し、フィルタの作成をクリックします。

  2. `Filter Name`フィールドに、フィルタの名前を入力します。 たとえば、`Exclude openjdk patch`と指定します。

  3. `Filter Type`フィールドで、`Patch (Advisory Name)`を選択します。

  4. `Matcher`フィールドで、`equals`を選択します。

  5. `Advisory Name`フィールドに、アドバイザリの名前を入力します。 たとえば、`SUSE-15-2019-1807`と指定します。

  6. 保存をクリックします。

  7. コンテンツライフサイクル  プロジェクトに移動して、プロジェクトを選択します。

  8. フィルタの割り当て/取り外しリンクをクリックし、`Exclude openjdk patch`を選択して、保存をクリックします。

ビルドボタンを使用してプロジェクトを再構築すると、新しいフィルタが、以前に追加した`by date`フィルタとともに使用されます。

1.5. プロジェクトにパッチを含める

この例では、セキュリティアラートを受け取りました。 重要なセキュリティパッチは、現在作業している月の初日から数日後にリリースされました。 新しいパッチの名前は`SUSE-15-2019-2071`です。 この新しいパッチを環境に含める必要があります。

`Allow`フィルタのルールは、`Deny`フィルタのルールの除外機能を上書きします。 詳細については、コンテンツライフサイクル管理を参照してください。

プロシージャ:プロジェクトにパッチを含める
  1. SUSE Multi-Linux Manager Web UIで、コンテンツライフサイクル  フィルタに移動し、フィルタの作成をクリックします。

  2. `Filter Name`フィールドに、フィルタの名前を入力します。 たとえば、`Include kernel security fix`と指定します。

  3. `Filter Type`フィールドで、`Patch (Advisory Name)`を選択します。

  4. `Matcher`フィールドで、`equals`を選択します。

  5. `Advisory Name`フィールドに`SUSE-15-2019-2071`と入力し、`Allow`をチェックします。

  6. 保存をクリックしてフィルタを保存します。

  7. コンテンツライフサイクル  プロジェクトに移動して、リストからプロジェクトを選択します。

  8. フィルタの割り当て/取り外しをクリックし、`Include kernel security patch`を選択します。

  9. 保存をクリックします。

  10. ビルドをクリックして、環境を再構築します。

2. 既存の月次パッチサイクルの更新

月次パッチサイクルが完了すると、次の月のパッチサイクルを更新できます。

プロシージャ:月次パッチサイクルの更新
  1. `by date`フィールドで、フィルタの日付を次の月に変更します。 または、新しいフィルタを作成して、プロジェクトへの割り当てを変更します。

  2. `SUSE-15-2019-1807`の除外フィルタをプロジェクトから取り外すことができるかどうか確認します。 この問題を解決するために使用できる新しいパッチがある場合があります。

  3. 以前に追加した`allow`フィルタを取り外します。 パッチはデフォルトで含まれています。

  4. プロジェクトを再構築して、来月のパッチを適用した新しい環境を作成します。

3. ライブパッチ処理でプロジェクトを強化

このセクションでは、ライブパッチ処理用の環境を作成するためのフィルタの設定について説明します。

ライブパッチ処理を使用する準備をしている場合には、いくつかの重要な考慮事項があります。

  • システムでカーネルバージョンを1つだけ使用してください。 ライブパッチ処理パッケージは、特定のカーネルとともにインストールされます。

  • ライブパッチ処理の更新は、1つのパッチとして出荷されます。

  • 新しいライブパッチを適用するカーネルシリーズを開始する各カーネルパッチは、`required reboot`フラグを表示します。 これらのカーネルパッチには、ライブパッチツールが付属しています。 それらをインストールした後、次の年の前に少なくとも一度はシステムを再起動する必要があります。

  • インストール済みカーネルバージョンに一致するライブパッチ更新のみをインストールします。

  • ライブパッチは、スタンドアロンパッチとして提供されます。 現在インストールされているカーネルバージョンよりも新しいカーネルバージョンの通常のカーネルパッチをすべて除外する必要があります。

3.1. より新しいカーネルバージョンのパッケージを除外する

この例では、`SUSE-15-2019-1244`パッチでシステムを更新します。 このパッチには`kernel-default-4.12.14-150.17.1-x86_64`が含まれています。

`kernel-default`および`kernel-default-base`のより新しいバージョンを含むすべてのパッチを除外する必要があります。

プロシージャ:より新しいカーネルバージョンのパッケージを除外する
  1. SUSE Multi-Linux Manager Web UIで、コンテンツライフサイクル  フィルタに移動し、フィルタの作成をクリックします。

  2. `Filter Name`フィールドに、フィルタの名前を入力します。 たとえば、`Exclude kernel greater than 4.12.14-150.17.1`と指定します。

  3. `Filter Type`フィールドで、`Patch (Contains Package)`を選択します。

  4. `Matcher`フィールドで、`version greater than`を選択します。

  5. `Package Name`フィールドに、`kernel-default`を入力します。

  6. `Epoch`フィールドを空のままにしておきます。

  7. `Version`フィールドに、`4.12.14`を入力します。

  8. `Release`フィールドに、`150.17.1`を入力します。

  9. 保存をクリックしてフィルタを保存します。

  10. コンテンツライフサイクル  プロジェクトに移動し、プロジェクトを選択します。

  11. フィルターのアタッチ/デタッチをクリックします。

  12. `Exclude kernel greater than 4.12.14-150.17.1`を選択し、保存をクリックします。

`kernel-default-base`パッケージに対してこの手順を繰り返す必要があります。

ビルドをクリックすると新しい環境が作成されます。 新しい環境には、インストールしたバージョンまでのすべてのカーネルパッチが含まれています。

より新しいカーネルバージョンのすべてのカーネルパッチが削除されます。 ライブパッチを適用したカーネルは、シリーズの最初でない限り利用可能なままです。

この手順は、フィルターテンプレートを使用して自動化できます。 ライブパッチを適用するフィルターテンプレートの適用方法についての詳細は、administration:content-lifecycle.adoc#filter-templatesを参照してください。

4. ライブパッチ処理用の新しいカーネルバージョンに切り替える

特定のカーネルバージョンのライブパッチを適用する機能は、1年間のみ利用可能です。 1年後には、システムのカーネルを更新する必要があります。 これらの環境変更を実行してください:

プロシージャ:新しいカーネルバージョンに切り替える
  1. アップグレードするカーネルバージョンを決定します。 次に例を示します。4.12.14-150.32.1

  2. 新しいカーネルバージョンフィルタを作成します。

  3. 古いカーネルに関連付けられているすべての以前のライブパッチ処理フィルタを取り外します。

  4. 新しいカーネルバージョンフィルタを作成します。

  5. ビルドをクリックして、環境を再構築します。

    ビルドが完了したら、以下の処理を実行する2つのフィルタを直ちに再度割り当てる必要があります。

    • `reboot_suggested`キーワードを含むパッチを拒否します

    • `installhint(reboot-needed)`という名前を提供するパッケージを含むパッチを拒否します

新しい環境には、選択した新しいカーネルバージョンまでのすべてのカーネルパッチが含まれています。 アップグレードを実行した後、システムを再起動する必要があります。 新しいカーネルは1年間有効です。 1年間にインストールされたすべてのパッケージは、現在のライブパッチを適用するカーネルフィルターと一致します。

5. AppStreamフィルタ

コンテンツライフサイクル管理プロジェクトでは、AppStreamフィルターを使用してモジュールリポジトリを通常のリポジトリに変換できます。 これは、リポジトリ内のパッケージを保持し、モジュールメタデータを削除することによって行われます。 結果として得られるリポジトリは、通常のリポジトリと同様にSUSE Multi-Linux Managerで使用できます。

したがって、このプロセスはAppStreamリポジトリを操作するために必須ではありません。

AppStreamフィルターは、ターゲットリポジトリに含める単一のモジュールストリームを選択します。 複数のフィルターを追加して、複数のモジュールストリームを選択できます。

CLMプロジェクトでAppStreamフィルターを使用しない場合、モジュールソース内のモジュールメタデータはそのまま残り、ターゲットリポジトリには同じモジュールメタデータが含まれます。 CLMプロジェクトで少なくとも1つのAppStreamフィルターが有効になっている限り、すべてのターゲットリポジトリは通常のリポジトリに変換されます。

場合によっては、モジュールからパッケージを含めずに通常のリポジトリを構築したいことがあります。 そのためには、マッチャー`none (disable modularity)`を使用して AppStream フィルタを追加します。 これにより、ターゲットリポジトリ内のすべてのモジュールが無効になります。 これは特にRed Hat Enterprise Linux 9クライアントに役立ちます。ほとんどのモジュールのデフォルトバージョンは、すでにAppStreamリポジトリに通常のパッケージとして含まれています。

AppStream フィルタを使用するには、`Red Hat Enterprise Linux AppStreams`のようなモジュラリポジトリを持つCLMプロジェクトが必要です。 開始する前に、必要なモジュールをソースとして含めていることを確認してください。

プロシージャ:AppStreamフィルタの使用
  1. SUSE Multi-Linux Manager Web UIで、あなたのRed Hat Enterprise Linux 8または9のCLMプロジェクトに移動します。 プロジェクトにAppStreamチャンネルが含まれていることを確認します。

  2. Create Filterをクリックし、次のパラメータを使用します:

    • `Filter Name`フィールドに、新しいフィルタの名前を入力します。

    • `Filter Type`フィールドで、`Module (Stream)`を選択します。

    • `Matcher`フィールドで、`equals`を選択します。

    • `Module Name`フィールドに、モジュール名を入力します。 たとえば、`postgresql`と指定します。

    • `Stream`フィールドに、目的のストリームの名前を入力します。 たとえば、`10`と指定します。 このフィールドを空のままにすると、モジュールのデフォルトのストリームが選択されます。

  3. 保存をクリックして、新しいフィルタを作成します。

  4. コンテンツライフサイクル  プロジェクトに移動して、プロジェクトを選択します。

  5. フィルタの割り当て/取り外しをクリックし、新しいAppStreamフィルタを選択して、保存をクリックします。

`Create/Edit Filter`フォームのブラウズ機能を使用して、モジュラーチャンネルで使用可能なモジュールストリームのリストからモジュールを選択できます。

プロシージャ:使用可能なモジュールストリームのブラウズ
  1. SUSE Multi-Linux Manager Web UIで、Red Hat Enterprise Linux 8または9のCLMプロジェクトに移動します。 プロジェクトにAppStreamチャンネルが含まれていることを確認します。

  2. Create Filterをクリックし、次のパラメータを使用します:

    • `Filter Name`フィールドに、新しいフィルタの名前を入力します。

    • `Filter Type`フィールドで、`Module (Stream)`を選択します。

    • `Matcher`フィールドで、`equals`を選択します。

  3. `Browse available modules`をクリックして、すべてのモジュラーチャンネルを表示します。

  4. モジュールとストリームをブラウズするチャンネルを選択します。

    • `Module Name`フィールドで、検索するモジュール名の入力を開始するか、リストから選択します。

    • `Stream`フィールドで、検索するストリーム名の入力を開始するか、リストから選択します。

チャネルの選択は、モジュールをブラウジングするためのものだけです。 選択したチャネルはフィルターと共に保存されず、CLMプロセスには一切影響しません。

ターゲットリポジトリに含めるために、他のモジュールストリーム用の追加のAppStreamフィルターを作成できます。 選択したストリームが依存するモジュールストリームは自動的に含まれます。

矛盾する、互換性のない、または欠落しているモジュールストリームを指定しないように注意してください。 例えば、同じモジュールから2つのストリームを選択することは無効です。

プロシージャ:モジュール化の無効化
  1. SUSE Multi-Linux Manager Web UIで、Red Hat Enterprise Linux 8または9のCLMプロジェクトに移動します。 プロジェクトにAppStreamチャンネルが含まれていることを確認します。

  2. Create Filterをクリックし、次のパラメータを使用します:

    • `Filter Name`フィールドに、新しいフィルタの名前を入力します。

    • `Filter Type`フィールドで、`Module (Stream)`を選択します。

    • `Matcher`フィールドで、`none (disable modularity)`を選択します。

  3. 保存をクリックして、新しいフィルタを作成します。

  4. コンテンツライフサイクル  プロジェクトに移動して、プロジェクトを選択します。

  5. フィルタの割り当て/取り外しをクリックし、新しいAppStreamフィルタを選択して、保存をクリックします。

これにより、モジュールに属するパッケージを除いて、モジュールのメタデータがターゲットリポジトリから効率的に削除されます。

ビルドボタンを使用してWeb UIでCLMプロジェクトを構築する場合、ターゲットリポジトリは、選択したモジュールストリームからのパッケージを含む、モジュールを含まない通常のリポジトリです。

Red Hat Enterprise Linux 8のプロジェクトでモジュール化を完全に無効にすると、一部のモジュールがRed Hat Enterprise Linux 8での正常な動作に不可欠であるため、環境に不具合が生じる可能性があります。