第8章 コンテンツビューの管理

Red Hat Satellite はコンテンツビューを使用して、意図的にキュレートしたコンテンツのサブセットにホストがアクセスできるようにします。これを実行するには、使用するリポジトリーを定義し、特定のフィルターをコンテンツに適用します。これらのフィルターには、パッケージフィルター、パッケージグループフィルター、エラータフィルター、モジュールストリームフィルター、およびコンテナーイメージタグフィルターが含まれます。コンテンツビューを使用して、特定の環境が使用するソフトウェアのバージョンを定義できます。たとえば、実稼働 環境では古いバージョンのパッケージを含むコンテンツビューを使用し、開発環境 では新しいバージョンのパッケージを含むコンテンツビューを使用する場合があります。

また、デフォルトの組織ビュー は、Satellite に同期されているすべてのコンテンツのアプリケーション制御のコンテンツビューです。このタイプは、コンテンツビューやライフサイクル環境を操作せずに、ホストを Satellite に登録し、サブスクリプションを使用してコンテンツにアクセスする場合に役立ちます。

コンテンツビューは、各環境にリポジトリーセットを作成し、Satellite Server が保存し、管理します。アプリケーションライフサイクルの次の環境にコンテンツビューをプロモートすると、対象の Satellite Server のリポジトリーがパッケージを更新し、公開します。

 開発テスト実稼働

コンテンツビューのバージョンとコンテンツ

Version 2 – example_software-1.1-0.noarch.rpm

Version 1 – example_software-1.0-0.noarch.rpm

Version 1 – example_software-1.0-0.noarch.rpm

テストと実稼働のリポジトリーには example_software-1.0-0.noarch.rpm パッケージが含まれています。コンテンツビューのバージョン 2 を開発環境からテストにプロモートすると、テスト用のリポジトリーを再生成し、example_software-1.1-0.noarch.rpm パッケージが含まれるようになります。

 開発テスト実稼働

コンテンツビューのバージョンとコンテンツ

Version 2 – example_software-1.1-0.noarch.rpm

Version 2 – example_software-1.1-0.noarch.rpm

Version 1 – example_software-1.0-0.noarch.rpm

これにより、システムが特定の環境に指定され、その環境が新しいバージョンのコンテンツビューを使用すると更新を受け取ることができます。

スナップショットのフィルタリングおよび作成を行うためのコンテンツビューを作成するための一般的なワークフローは以下のとおりです。

  1. コンテンツビューを作成します。
  2. コンテンツビューに必要なリポジトリーを 1 つ以上追加します。
  3. オプション: 1 つ以上のフィルターを作成して、コンテンツビューのコンテンツを絞り込みます。詳細は、「コンテンツフィルターの例」 を参照してください。
  4. オプション: コンテンツビューのパッケージの依存関係を解決します。詳細は、「パッケージの依存関係の解決」 を参照してください。
  5. コンテンツビューを公開します。
  6. オプション: コンテンツビューを別の環境にプロモートします。詳細は、「コンテンツビューのプロモート」 を参照してください。
  7. コンテンツホストをコンテンツビューにアタッチします。

リポジトリーがコンテンツビューに関連付けられていない場合、/etc/yum.repos.d/redhat.repo ファイルは空となり、登録済みのシステムで更新を受け取ることができません。

ホストを関連付けるコンテンツビューは 1 つだけです。複数のコンテンツビューにホストを関連付けるには、複合コンテンツビューを作成します。詳細は、「複合コンテンツビューの作成」 を参照してください。

8.1. コンテンツビューの作成

以下の手順を使用してシンプルなコンテンツビューを作成します。Satellite Web UI の代わりに CLI を使用する場合は、CLI 手順 を参照してください。

前提条件

コンテンツビューごとに、コンテンツビューでパッケージの依存関係を解決するかどうかを指定できますが、デフォルトの Satellite 設定を変更して、すべてのコンテンツビューでパッケージの解決を有効化または無効化できます。詳細は、「パッケージの依存関係の解決」 を参照してください。

手順

  1. Satellite Web UI で Content > Content Views に移動して、Create content view をクリックします。
  2. 名前 フィールドに、ビューの名前を入力します。Satellite では、入力した名前から ラベル フィールドに自動的に入力されます。
  3. 説明 フィールドに、ビューの説明を入力します。
  4. Type フィールドで、Content view または Composite content view ビューを選択します。
  5. オプション: このコンテンツビューを公開するたびに依存関係を自動的に解決する場合は、Solve Dependencies チェックボックスを選択します。依存関係の解決により公開時間が遅くなり、使用するコンテンツビューフィルターが無視される可能性があります。また、エラータの依存関係を解決する際に、エラーが発生する可能性があります。
  6. オプション: このコンテンツビューをアップストリームサーバーからのインポート用に指定する場合は、Import only のチェックボックスを選択します。インポート専用のコンテンツビューを直接公開することはできません。
  7. Create content view をクリックします。

コンテンツビューの手順

  1. Create content view をクリックして、コンテンツビューを作成します。
  2. Repositories タブで、Type リストからコンテンツビューに追加するリポジトリーを選択し、追加する利用可能なリポジトリーの横にあるチェックボックスを選択して、Add repositories をクリックします。
  3. Publish new version をクリックし、Description フィールドに、変更をログに記録するバージョンに関する情報を入力します。
  4. オプション: プロモーションパスを有効にするには、Promote をクリックします。利用可能なプロモーションパスからライフサイクル環境を選択して、新しいバージョンをプロモートすることができます
  5. Next をクリックします。
  6. Review ページで、公開しようとしている環境を確認できます。
  7. Finish をクリックします。

    注記

    Remove および Delete は似ていますが、Delete オプションはコンテンツビュー全体とそのライフサイクル環境に関連付けられたバージョンを削除します。Remove オプションを使用すると、ライフサイクル環境から削除するバージョンを選択できます。

コンテンツビューウィンドウで、コンテンツビューを表示できます。コンテンツビューに関する詳細情報を表示するには、コンテンツビュー名をクリックします。コンテンツビューにホストを登録するには、Managing HostsRegistering Hosts を参照してください。

CLI 手順

  1. リポジトリー ID のリストを取得します。

    # hammer repository list --organization "My_Organization"
  2. コンテンツビューを作成し、リポジトリーを追加します。

    # hammer content-view create \
    --description "My_Content_View" \
    --name "My_Content_View" \
    --organization "My_Organization" \
    --repository-ids 1,2

    --repository-ids オプションを使用すると、hammer repository list コマンドの出力で ID を確認できます。

  3. ビューを公開します。

    # hammer content-view publish \
    --description "My_Content_View" \
    --name "My_Content_View" \
    --organization "My_Organization"
  4. オプション: 既存のコンテンツビューにリポジトリーを追加するには、以下のコマンドを入力します。

    # hammer content-view add-repository \
    --name "My_Content_View" \
    --organization "My_Organization" \
    --repository-id repository_ID

Satellite Server は、新しいバージョンのビューを作成し、ライブラリー環境に公開します。