第11章 エラータの管理

Red Hat では、品質管理およびリリースプロセスの一部として、お客様に Red Hat RPM の公式リリースの更新を提供しています。Red Hat では、更新を説明するアドバイザリーと共に、関連パッケージのグループをエラータにコンパイルします。アドバイザリーには以下の 3 種類があります (重要度の高い順)。

セキュリティーアドバイザリー
パッケージで見つかったセキュリティー問題の修正を説明。セキュリティー問題の重大度のレベルは、低、中、重要、重大に分かれています。
バグ修正アドバイザリー
パッケージのバグ修正を説明。
製品の機能強化アドバイザリー
パッケージに追加された機能強化および新機能を説明。

Red Hat Satellite 6 は、リポジトリーを Red Hat の Content Delivery Network (CDN) と同期する際にこれらのエラータ情報をインポートします。Red Hat Satellite 6 ではエラータを検証しフィルタリングするためのツールも提供しており、更新の管理が正確にできます。このようにして、関連のある更新を選択し、コンテンツビューから選択したコンテンツホストに伝達することができます。

エラータには、それらに含まれる最も重要なアドバイザリータイプに応じてラベルが付けられます。そのため、製品の機能強化アドバイザリー というラベルが付けられたエラータには機能強化の更新のみが含まれ、バグ修正アドバイザリー エラータにはバグ修正と機能強化の両方が含まれ、セキュリティーアドバイザリー にはこれら 3 つのタイプが含まれる場合があります。

Red Hat Satellite では、エラータと利用可能なコンテンツホストとの関係を表す 2 つのキーワードがあります。

適用可能
1 つ以上のコンテンツホストに適用されるエラータ。これは、コンテンツホストに存在するパッケージを更新することを意味します。これらのエラータはコンテンツホストに適用されますが、状態が インストール可能 に変わるまでは、エラータをインストールする準備はできていません。インストール可能なエラータは自動的に適用されます。
インストール可能
1 つ以上のコンテンツホストに適用され、コンテンツホストにインストールできるエラータ。インストール可能なエラータは、ライフサイクル環境および関連するコンテンツビューからコンテンツホストで利用できますが、まだインストールされていません。

本章では、エラータの管理方法と 1 つのホストまたは複数のホストへの適用方法を説明します。

11.1. 利用可能なエラータの検出

以下の手順では、利用可能なエラータを表示し、フィルタリングする方法や、選択したアドバイザリーのメタデータを表示する方法を説明します。

  1. コンテンツ > エラータ に移動して、利用可能なエラータの一覧を表示します。
  2. ページ上部のフィルターツールを使用して、表示されるエラータの数を制限します。

    • 調べるリポジトリーをリストから選択します。デフォルトでは すべてのリポジトリー が選択されます。
    • 適用可能 チェックボックスがデフォルトで選択され、選択されたリポジトリーに適用可能なエラータだけが表示されます。インストール可能 チェックボックスを選択すると、インストール可能のマークが付いたエラータのみが表示されます。
    • エラータの表を検索するには、以下の形式で 検索 フィールドにクエリーを入力します。

      parameter operator value

      検索に使用できるパラメーターの一覧は、表11.1「エラータ検索で利用できるパラメーター」 を参照してください。適用可能な演算子の一覧は、『Red Hat Satellite の管理』の「詳細な検索に対してサポートされる演算子」を参照してください。入力時に自動サジェスト機能が利用できます。and 演算子と or 演算子を使用してクエリーを組み合わせることもできます。たとえば、kernel パッケージに関するセキュリティーアドバイザリーのみを表示するには、以下を入力します。

      type = security and package_name = kernel

      Enter を押して検索を開始します。

  3. 調べるエラータの Errata ID をクリックします。

    • 詳細 タブには、更新されたパッケージの説明や、更新によって提供される重要な修正および機能強化が記載されています。
    • コンテンツホスト タブでは、「複数ホストへのエラータの適用」で説明したように、選択したコンテンツホストにエラータを適用できます。
    • リポジトリー タブには、エラータが含まれているリポジトリーの一覧が表示されます。リポジトリーはフィルターを使用して環境やコンテンツビューで絞り込むことができ、リポジトリー名で検索できます。

CLI をご利用の場合

  • 全組織で利用可能なエラータを表示するには、以下のコマンドを実行します。

    # hammer erratum list
  • 特定のエラータの詳細を表示するには、以下のコマンドを実行します。

    # hammer erratum info --id erratum_ID
  • --search オプションを指定してクエリーを入力し、エラータを検索します。たとえば、選択した製品に適用可能なエラータで、指定したバグが含まれるものを順番に表示し、セキュリティーエラータが一番上に表示されるようにするには、以下のコマンドを入力します。

    # hammer erratum list \
    --product-id 7 \
    --search "bug = 1213000 or bug = 1207972" \
    --errata-restrict-applicable 1 \
    --order "type desc"

11.2. エラータ通知のサブスクライブ

Satellite ユーザー向けにメール通知を設定することができます。ユーザーには、リポジトリーの同期後に、適用可能かつインストール可能なエラータのまとめ、通知が、コンテンツビュープロモーションで送信されます。詳しい情報は、『Red Hat Satellite の管理』ガイドの「電子メール通知の設定」を参照してください。

11.3. リポジトリー依存関係の解決の制限

Satellite 6 には、リポジトリー依存関係の解決が必要な問題が複数あり、これは既知の問題です。詳細は、BZ#1508169BZ#1640420BZ#1508169BZ#1629462 を参照してください。Satellite でコンテンツビューの増分更新を使用すると、リポジトリー依存関係の問題がいくつか解決しますが、リポジトリーレベルの依存関係の解決で問題が残る場合があります。

新しい依存関係でリポジトリーの更新が利用できるようになると、Satellite は、既存のリポジトリーパッケージで利用可能な古いバージョンがある場合でも、依存関係を解決するために、パッケージの最新バージョンを取得します。これにより、パッケージのインストール時に依存関係の解決が必要な問題がさらに発生することがあります。

シナリオ例

クライアント上のリポジトリーには、依存関係 example_repository-libs-1.0 のパッケージ example_repository-1.0 があります。リポジトリーには、別のパッケージ example_tools-1.0 もあります。

セキュリティーエラータは、パッケージ example_tools-1.1 で利用できるようになります。example_tools-1.1 パッケージは、依存関係として example_repository-libs-1.1 パッケージが必要です。

コンテンツビューを増分更新すると、example_tools-1.1example_tools-1.0example_repository-libs-1.1 がリポジトリーに含まれます。リポジトリーには、example_repository-1.0example_repository-libs-1.0 のパッケージもあります。コンテンツビューの増分更新で、パッケージ example_repository-1.1 が追加されなかったことに注意してください。yum を使用してこれらのすべてのパッケージをインストールできるため、潜在的な問題は検出されません。ただし、クライアントが example_tools-1.1 パッケージをインストールすると、example_repository-libs-1.0example_repository-libs-1.1 の両方をインストールできないため、依存関係の解決が必要な問題が発生します。

現在、この問題の回避策はありません。RPM の基本セットから、適用されるエラータまでのメジャー Y リリースの期間が長いほど、依存関係の解決の問題が発生する可能性が高くなります。

11.4. エラータ用のコンテンツビューフィルターの作成

コンテンツフィルターを使用して、エラータを制限できます。以下のようなフィルターを使用します。

  • ID: 結果として表示されるリポジトリーに含めることができるように、特定のエラータを選択します。
  • 日付の範囲: 日付の範囲を定義して、その範囲内にリリースされたエラータを追加します。
  • タイプ: バグ修正、機能強化、セキュリティーなどのエラータのタイプを選択して追加します。

特定日より後のエラータを除外するコンテンツフィルターを作成します。これにより、アプリケーションライフサイクルの実稼働システムがある時点まで最新に保たれたことになります。その後にこのフィルターの開始日を変更し、テスト環境に新たなエラータを導入します。こうすることで、新パッケージにアプリケーションライフサイクルとの互換性があるかどうかをテストできます。

前提条件

  • 必要なエラータを含むリポジトリーを指定してコンテンツビューを作成しておく。詳細情報は、「コンテンツビューの作成」を参照してください。

手順

  1. Satellite web UI で、コンテンツ > コンテンツビュー に移動して、エラータ適用に使用するコンテンツビューを選択します。
  2. Yum コンテンツ > フィルターに移動し、新規フィルターをクリックします。
  3. 名前 フィールドで、Errata Filter を入力します。
  4. コンテンツタイプ リストから エラータ - 日付およびタイプ を選択します。
  5. 含有タイプ リストから 除外 を選択してください。
  6. 説明 フィールドに Exclude errata items from YYYY-MM-DD を入力します。
  7. 保存をクリックします。
  8. エラータタイプ には、除外するエラータタイプのチェックボックスを選択します。たとえば、特定の日付以降の機能拡張やバグ修正エラータを除外し、セキュリティーエラータすべてを含めるには、機能拡張 および バグ修正 のチェックボックスを選択し、セキュリティー チェックボックスの選択を解除します。
  9. 日付タイプ では、2 つのチェックボックスからいずれかを選択します。

    • エラータの発行日については 発行日 を選択します。
    • エラータの最終更新日については 更新日 を選択します。
  10. 開始日 を選択して、すべてのエラータを除外するか、選択した日付以降のエラータを除外します。
  11. 終了日 フィールドは空白にしておきます。
  12. 保存をクリックします。
  13. 新規バージョンの公開 をクリックして、表示されているリポジトリーを公開します。
  14. 説明 フィールドに Adding errata filter と入力します。
  15. 保存をクリックします。

    コンテンツビューが公開されると、コンテンツ コラムのパッケージとエラータの数が公開前のリポジトリーと比べて少なくなります。これは、前年のセキュリティー以外のエラータがフィルターにより正常に除外されたためです。

  16. バージョン タブをクリックします。
  17. 公開バージョンの右側にある プロモート をクリックします。
  18. コンテンツビューのプロモート先の環境を選択します。
  19. 説明 フィールドに、プロモートの説明を入力します。
  20. バージョンのプロモート をクリックして、必要とされる環境全体に、このコンテンツビューバージョンをプロモートします。

CLI をご利用の場合

  1. エラータのフィルターを作成します。

    # hammer content-view filter create --name "Filter Name" \
    --description "Exclude errata items from the YYYY-MM-DD" \
    --content-view "CV Name" --organization "Default Organization" \
    --type "erratum"
  2. フィルタールールを作成して、指定の 開始日 以降のエラータすべてを除外します。

    # hammer content-view filter rule create --start-date "YYYY-MM-DD" \
    --content-view "CV Name" --content-view-filter="Filter Name" \
    --organization "Default Organization" --types=security,enhancement,bugfix
  3. コンテンツビューを公開します。

    # hammer content-view publish --name "CV Name" \
    --organization "Default Organization"
  4. コンテンツビューをライフサイクル環境にプロモートし、そこに含まれるエラータをそのライフサイクル環境で利用できるようにします。

    # hammer content-view version promote \
    --content-view "CV Name" \
    --organization "Default Organization" \
    --to-lifecycle-environment "Lifecycle Environment Name"

11.5. 増分コンテンツビューへのエラータの追加

エラータが利用できるがインストールできない場合には、増分のコンテンツビューバージョンを作成して、エラータをコンテンツホストに追加できます。たとえば、コンテンツビューがバージョン 1.0 の場合は、コンテンツビューバージョン 1.1 になり、公開時に、コンテンツビューバージョン 2.0 になります。

  1. Satellite Web UI で、コンテンツ > エラータ に移動します。
  2. エラータ の一覧から、適用するエラータの名前をクリックします。
  3. エラータを適用するコンテンツホストを選択し、ホストに適用 をクリックします。これにより、コンテンツビューの増分更新が作成されます。
  4. エラータをコンテンツホストに適用する場合は、公開直後にコンテンツホストにエラータを適用する チェックボックスを選択します。

    注記

    BZ#1459807 が解決されるまで、Capsule Server に登録されているホストに、インストール不可のエラータを適用する場合には、公開直後にコンテンツホストにエラータを適用する のチェックボックスは選択しないでください。

    代わりに、確認 をクリックした後に、エラータのコンテンツビューのプロモートと、Capsule の同期タスクが完了するまで待機します。次に、エラータが Installable とマークされるので、この手順を使用して、もう一度エラータを適用可能です。

  5. 確認 をクリックして、エラータを適用します。

CLI をご利用の場合

  1. エラータと対応する ID を一覧表示します。

    # hammer erratum list
  2. 異なるコンテンツビューバージョンと対応する ID を一覧表示します。

    # hammer content-view version list
  3. コンテンツビューバージョンに単一のエラータを適用します。コンマ区切りのリストとして、さらに ID を追加できます。

    # hammer content-view version incremental-update \
    --content-view-version-id 319 --errata-ids 34068b

11.6. ホストへのエラータの適用

以下の手順を使用して、エラータをレビューし、ホストに適用します。

前提条件

  • Red Hat から利用可能な最新のエラータと、Red Hat Satellite リポジトリーを同期しておく。詳細は、「Red Hat リポジトリーの同期」 を参照してください。
  • Satellite Server の環境およびコンテンツビューにホストを登録しておく。詳細は、『ホストの管理』ガイドの「ホストの登録」を参照してください。
  • RHEL 7 ホストに、katello-agent パッケージを必ずインストールしてください。詳細は、『ホストの管理』ガイドの「Katello エージェントのインストール」を参照してください。

Red Hat Enterprise Linux 8 の場合

RHEL 8 ホストにエラータを適用するには、Satellite Server でリモート実行ジョブを実行するか、ホストを更新できます。リモート実行ジョブの実行の詳細は、『ホストの管理ガイドの「ホストでのジョブの実行」を参照してください。

RHEL 8 ホストにエラータを適用するには、以下の手順を行います。

  1. Satellite で、ホストのすべてのエラータを一覧表示します。

    # hammer host errata list \
    --host client.example.com
  2. エラータが含まれるモジュールのストリームを検索します。

    # hammer erratum info --id ERRATUM_ID
  3. ホストで、モジュールストリームを更新します。

    # yum update Module_Stream_Name

Red Hat Enterprise Linux 7 の場合

RHEL 7 ホストにエラータを適用するには、以下の手順を行います。

  1. Satellite Web UI で、ホスト > コンテンツホスト に移動し、エラータを適用するホストを選択します。
  2. エラータ タブに移動してエラータのリストを表示します。
  3. 適用するエラータを選択し、Apply Selected (選択した項目を適用) をクリックします。確認画面で、適用 をクリックします。
  4. 選択したエラータに関連付けられた全パッケージを更新するタスクが完了したら、詳細 タブをクリックして更新済みのパッケージを表示します。

CLI をご利用の場合

RHEL 7 ホストにエラータを適用するには、以下の手順を行います。

  1. ホストのすべてのエラータを一覧表示します。

    # hammer host errata list \
    --host client.example.com
  2. ホストに最新のエラータを適用します。エラータ ID を使用して適用するエラータを特定します。

    # hammer host errata apply --host "Host Name" \
    --errata-ids ERRATUM_ID1,ERRATUM_ID2...

11.7. 複数ホストへのエラータの適用

以下の手順を使用して、エラータをレビューし、複数の RHEL 7 ホストに適用します。

前提条件

  • Red Hat から利用可能な最新のエラータと、Red Hat Satellite リポジトリーを同期しておく。詳細は、「Red Hat リポジトリーの同期」 を参照してください。
  • Satellite Server の環境およびコンテンツビューにホストを登録します。詳細は、『ホストの管理』ガイドの「ホストの登録」を参照してください。
  • ホストに katello-agent パッケージをインストールしてください。詳細は、『ホストの管理』ガイドの「Katello エージェントのインストール」を参照してください。

手順

  1. コンテンツ > エラータ に移動します。
  2. 適用するエラータ名をクリックします。
  3. コンテンツホスト タブをクリックします。
  4. エラータの適用先のホストを選択し、ホストへの適用 をクリックします。
  5. 確認 をクリックします。

CLI をご利用の場合

CLI には Web UI と同じツールがあるわけではありませんが、同様の手順を CLI コマンドで使用することができます。

  1. インストール可能な全エラータを表示します。

    # hammer erratum list \
    --errata-restrict-installable true \
    --organization "Default Organization"
  2. 使用するエラータを選択し、このエラータを適用可能なホストを一覧表示します。

    # hammer host list \
    --search "applicable_errata = ERRATUM_ID" \
    --organization "Default Organization"
  3. エラータを 1 つのホストに適用します。

    # hammer host errata apply \
    --host client.example.com \
    --organization "Default Organization" \
    --errata-ids ERRATUM_ID1,ERRATUM_ID2...
  4. 次の Bash スクリプトを使用して、このエラータが利用可能な各ホストにエラータを適用します。

    for HOST in hammer --csv --csv-separator "|" host list --search "applicable_errata = ERRATUM_ID" --organization "Default Organization" | tail -n+2 | awk -F "|" '{ print $2 }' ;
    do
      echo "== Applying to $HOST ==" ; hammer host errata apply --host $HOST --errata-ids ERRATUM_ID1,ERRATUM_ID2 ;
    done

    このコマンドは、erratum_IDs を適用できるホストをすべて特定し、このエラータを各ホストに適用します。

  5. エラータが正しく適用されたことを確認するには、以下のコマンドの出力で適切なタスクを検索します。

    # hammer task list
  6. 選択したタスクの状態を表示します。

    # hammer task progress --id task_ID

11.8. ホストコレクションへのエラータの適用

ホストコレクションに選択したエラータを適用するには、以下のコマンドを入力します。

# hammer host-collection erratum install \
--errata "erratum_ID1,erratum_ID2,..." \
--name "host_collection_name"\
--organization "Your_Organization"