Red Hat Training

A Red Hat training course is available for Red Hat Satellite

コンテンツ管理ガイド

Red Hat Satellite 6.4

Red Hat およびカスタムソースからのコンテンツの管理に関するエンドツーエンドガイド

Red Hat Satellite Documentation Team

概要

本書では、Red Hat Satellite 6 でのコンテンツの管理に関するエンドツーエンドシナリオを提供します。これらのコンテンツには、RPM ファイル、ISO イメージ、Puppet モジュール、コンテナーイメージなどがあります。Red Hat Satellite 6 は、アプリケーションライフサイクル全体でプロモートされた一連のコンテンツビューを使用してコンテンツを管理します。本書では、それぞれの組織に合わせたアプリケーションライフサイクルとライフサイクル環境内でホストの状態に合致するコンテンツビューの作成方法を説明します。これらのコンテンツビューは、Red Hat Satellite 6 環境でホストをプロビジョニングおよび更新する基礎となります。

第1章 はじめに

システム管理のコンテキストでは、コンテンツは、システム上にインストールされたソフトウェアとして定義されます。これには、ベースオペレーティングシステム、ミドルウェアサービス、エンドユーザーアプリケーションが含まれます (ただし、これらに限定されません)。Red Hat Satellite 6 は、Red Hat Enterprise Linux システム向けのさまざまな種類のコンテンツを管理するツールを提供します。このため、システム管理者は、簡単に広範なコンテンツを収集したり、コンテンツを最新の状態に保ったり、コンテンツを使用して新しいシステムをプロビジョニングして既存のシステムを更新したりできます。

本書では、コンテンツの管理方法を示すエンドツーエンドシナリオを提供します。Satellite Server を新規にインストールしたシステムの管理者を対象をしています。

1.1. Red Hat Satellite 6 コンテンツ管理の概要

Red Hat Satellite 6 のコンテキストでは、コンテンツ管理は複数のコンテンツタイプ向けの持続可能なリポジトリーを提供するワークフローを意味します。Red Hat コンテンツについては、Red Hat Satellite 6 ではサブスクリプション情報を使用して、ユーザーに利用可能なコンテンツを認識します。つまり、Red Hat Satellite 6 は以下のものを管理するコンポーネントを使用します。

  • サブスクリプション管理。これには Red Hat ソフトウェアサブスクリプションと関連コンテンツを安全な接続を介して管理するツールが含まれます。これにより、組織が Red Hat サブスクリプション情報を管理する手段が提供されます。
  • コンテンツ管理。これにはコンテンツをダウンロードし、カスタムリポジトリーに格納するアプリケーションが含まれます。これにより、組織は Red Hat コンテンツを格納し、さまざまな方法で整理することができるようになります。

1.2. アプリケーションライフサイクルの定義

アプリケーションライフサイクルは、Red Hat Satellite 6 のコンテンツ管理機能の中心となる概念です。アプリケーションライフサイクルは、特定の段階で特定のシステムとソフトウェアがどのように見えるかを定義します。たとえば、アプリケーションライフサイクルが単純な場合には、開発段階と実稼働段階のみになります。このような場合、アプリケーションライフサイクルは以下のようになります。

  • 開発
  • 実稼働

ただし、テストやベータリリースなど、より多くの段階が含まれ、アプリケーションライフサイクルが複雑になる場合があります。

  • 開発
  • テスト
  • Beta リリース
  • 実稼働

結局のところ、アプリケーションライフサイクルに含まれる段階は、それぞれの組織とソフトウェア開発方法によって異なります。Red Hat Satellite 6 はそれぞれの仕様を満たすために、アプリケーションライフサイクルの各段階をカスタマイズする方法を提供します。

Red Hat Satellite 6 では、アプリケーションライフサイクルの各段階は環境と呼ばれます。各環境はコンテンツの特定のコレクションを使用します。Red Hat Satellite 6 では、これらのコンテンツコレクションはコンテンツビューとして定義されます。各コンテンツビューは、特定の環境に含めるリポジトリー、パッケージ、および Puppet モジュールを定義できるフィルターとなります。これにより、ユーザーは各環境に指定する特定のコンテンツセットを定義できるようになります。

アプリケーションライフサイクルの概念は、進捗状況によって異なります。たとえば、アプリケーションライフサイクルの初期段階の環境では、新しい機能の開発とテストを行うために、新しいリリース前のパッケージを使用することがあります。同様に、それ以降の段階の環境では、実稼働用ソフトウェアに適した安定したパッケージのみを使用することがあります。開発中のパッケージのテストが完了したら、アプリケーションライフサイクルで、開発コンテンツビューを、実稼働環境用のコンテンツビューにプロモートすることができます。この結果、アプリケーションの開発でアプリケーションライフサイクルが進むことになります。

図1.1 Red Hat Satellite 6 アプリケーションライフサイクル

The Red Hat Satellite 6 Application Life Cycle

1.3. コンテンツ管理タイプの定義

Red Hat Satellite 6 では、以下のものを含むさまざまなコンテンツタイプを管理できます。

RPM パッケージ
Red Hat Satellite 6 では、Red Hat サブスクリプションに関連するリポジトリーから RPM ファイルをインポートする方法が提供されます。これにより、Satellite Server は Red Hat のコンテンツ配信ネットワークから RPM ファイルをダウンロードし、ローカルに保存します。これらのリポジトリーと RPM ファイルはコンテンツビューで使用できます。
キックスタートツリー
Red Hat Satellite 6 は、新しいシステムを作成するためにキックスタートツリーを取得します。新しいシステムは、ネットワークを介してこれらのキックスタートツリーにアクセスしてインストールのベースコンテンツとして使用します。また、Red Hat Satellite 6 には、事前に定義されたいくつかのキックスタートテンプレートが含まれます (独自のキックスタートテンプレートを作成することもできます)。これらのテンプレートは、新しいシステムをプロビジョニングし、インストールをカスタマイズするために使用されます。
ISO および KVM イメージ
Red Hat Satellite 6 は、インストールおよびプロビジョニング向けのメディアをダウンロードおよび管理します。たとえば、Satellite は、特定の Red Hat Enterprise Linux バージョン向けの ISO イメージおよび KVM ゲストイメージをダウンロード、保存、および管理します。
Puppet モジュール
Red Hat Satellite 6 では、RPM コンテンツとともに Puppet モジュールをアップロードできるため、プロビジョニング後にシステムの状態を設定できます。また、ユーザーはプロビジョニングプロセスの一部として Puppet クラスとパラメーターを管理することもできます。
コンテナーイメージ
Red Hat Satellite 6 は、コンテナーイメージのレジストリーとして機能することができます。これにより、Red Hat Enterprise Linux Atomic Host を使用してコンテナーを作成する方法が提供されます。
OSTree
Red Hat Satellite 6 は OSTree ブランチをインポートし、このコンテンツを HTTP の場所に公開できます。

1.4. シナリオの定義

本書では、シナリオ例を使用して Red Hat Satellite 6 の機能を説明します。このシナリオでは、ACME という名前のソフトウェア開発会社が最近 Red Hat Satellite 6 をインストールし、その会社のシステム管理者が Red Hat コンテンツをインポートおよび管理するとします。ACME の最終的な目標は以下のとおりです。

  • 組織のためにコンテンツソースセットをインポートします。これには Red Hat サブスクリプションのコンテンツと独自のカスタムコンテンツが含まれます。
  • ソフトウェア開発プロセスに基づいてアプリケーションライフサイクルを定義します。
  • 新しい Red Hat Enterprise Linux ホストをプロビジョニングし、既存の Red Hat Enterprise Linux ホストを登録できるよう Satellite Server を準備します。

本書ではコンテンツ管理のみを取り上げます。ホストプロビジョニング、環境アーキテクチャー、Satellite Server 管理などの他の機能については、Red Hat Satellite 6 シリーズの他のガイドを参照してください。

本書では、Red Hat Satellite 6 Web UI または Hammer CLI ツール のいずれかを使用する手順を説明します。いずれかの方法を選択してください。CLI を使用し、hammer コマンドを実行するたびに認証詳細情報を入力しない場合は、~/.hammer/cli.modules.d/foreman.yml ファイルを編集し、ローカルユーザーの認証情報を追加します。

:foreman:
    :host: 'https://satellite.example.com/'
    :username: 'your_username'
    :password: 'your_password'
重要

本書での hammer コマンドのすべての使用箇所では、設定ファイルが使用され、認証の詳細情報を入力することはありません。

一部の CLI コマンドでは、特定のタスクを非同期的に実行する --async オプションを使用できます。たとえば、コンテンツを同期して監視するのではなく、コンテンツビューを非同期タスクとして公開できます。本書では、ユーザーが完了するタスクの進行状況を監視できるよう --async が省略されます。特定のタスクで--async オプションを使用する場合は、次のタスクに進む前にそのタスクを完了してください。

1.5. コンテンツ管理ストレージ

Red Hat Satellite 6 では、Red Hat のコンテンツ配信ネットワークと同期されるコンテンツを含む RPM および Puppet コンテンツ用リポジトリーと、独自のカスタムリポジトリーがホストされます。このようなリポジトリーのサイズは時間の経過とともに大きくなります。したがって、それぞれの環境に合わせて適切なサイズ要件を推定し、将来の要件を適切にスケールする必要があります。

Red Hat Satellite 6 は、一時的にコンテンツを /var/cache/pulp に追加してから、保存と管理目的で /var/lib/pulp ディレクトリーに移動します。/var/cache/pulp および /var/lib/pulp の両方に適切な容量のストレージを割り当てるようにしてください。スケーリング可能な大容量のローカルパーティションに /var/lib/pulp ディレクトリーをマウントしてください。たとえば、論理ボリュームマネジャー (LVM) を使用して、このパーティションを作成します。

重要

/var/lib/pulp は NFS 共有にマウントしないでください。Red Hat Satellite 6 の一部は、NFS に問題がある一時的な SQLite データベースを使用します。NFS 共有を使用する場合は、主要なソースコンテンツユニットを含む /var/lib/pulp/content ディレクトリーのみをマウントします。/var/lib/pulp ファイルシステムには、高帯域幅で低レイテンシーのストレージを使用してください。Red Hat Satellite には、I/O を大量に使用する多くの操作があるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。

Red Hat Satellite 6 は、Red Hat のコンテンツ配信ネットワークのパッケージを同期し、保存します。これには、Red Hat Enterprise Linux などの Red Hat ソフトウェア向けのリポジトリーが含まれます。Red Hat コンテンツの推奨ストレージ要件は以下のとおりです。

主要な Red Hat Enterprise Linux バージョンの実稼働フェーズ 1 の間:

  • 各バイナリーパッケージリポジトリーに対して最低 40GB
  • 各デバッグ情報リポジトリーに対して最低 80GB

主要な Red Hat Enterprise Linux バージョンの実稼働フェーズ 1 の後:

  • このようなリポジトリーの推定された年間増加率は、バイナリーパッケージリポジトリーごとに 10GB、デバッグ情報リポジトリーごとに 20GB です。

Red Hat 実稼働フェーズの詳細は「Red Hat Enterprise Linux のライフサイクル」 を参照してください。

注記

すべてのリポジトリーのサイズは異なります。これらの仕様は推奨にすぎず、同期を選択したリポジトリーに応じて調整する必要があります。

Red Hat Satellite 6 では、ユーザーはコンテンツビューを作成できます。コンテンツビューは、特定の時点でのユーザー定義コンテンツコレクションのスナップショットとなります。これにより、既存のリポジトリーからカスタマイズしたコンテンツコレクションを作成できるようになります。

コンテンツビューのコンテンツの各ユニットは、/var/lib/pulp/content ディレクトリーにある Definitive Media Library へのシンボリックリンクを使用します。また、コンテンツビュー内の各リポジトリーには、コンテンツビューに属するコンテンツに関するメタデータが含まれます。したがって、使用しているパッケージが最小数しかないと、コンテンツビューが使用するストレージのサイズは少なくなりますが、コンテンツビューを複数使用し、ビューごとに使用するパッケージが大量になると、ストレージサイズが増加します。

たとえば、Red Hat Enterprise Linux 7 RPM リポジトリーを使用しているコンテンツビューには 7000 を超えるパッケージが含まれることがあります。この場合のディスク領域は、100MB 未満のシンボリックリンクになります。ただし、以下のことを考慮してください。

  • このリポジトリーを含むコンテンツビューの数
  • コンテンツビューごとのバージョンの数
  • プロモートされたビューを使用しているライフサイクル環境の数
  • キックスタートツリーやライブ CD コンテンツなどの追加コンテンツ

コンテンツビューが使用するストレージの量を削減するには、以下のことを行うことをお勧めします。

  • コンテンツビューの未使用バージョンを削除します。ライフサイクル環境でコンテンツビューを使用せず、再使用しない場合は、削除して使用済みストレージを確保します。
  • コンテンツビューでフィルターを使用します。フィルターは、コンテンツビューに表示されるコンテンツを制限します。これにより、ビューに必要なコンテンツのみを定義し、冗長なコンテンツを除外できるようになります。各コンテンツビューのサイズは大幅に削減されます。
  • /var/lib/pulp/nodes ディレクトリーを監視します。Red Hat Satellite 6 は、このディレクトリーを使用してコンテンツビューを構築します。
  • /var/lib/pulp/published ディレクトリーを監視します。Red Hat Satellite 6 は、このディレクトリーを使用してコンテンツビューを公開します。

また、Red Hat Satellite 6 はコンテンツ管理コンポーネント向けに以下のデータベースを使用します。

  • 主要データベース: /var/lib/pgsql に格納された PostgreSQL データベース。ストレージの要件は、組織、環境、登録されたシステム、コンテンツビューなどの複数の要因によって異なります。
  • コンテンツデータベース: /var/lib/mongodb に格納された MongoDB データベース。ストレージの要件は、Red Hat Satellite 6 環境向けのパッケージとコンテンツビューの数によって異なります。通常は、大規模なストレージが使用されます。コンテンツデータベース向けに少なくても 10GB を予約し、リポジトリーごとに 5GB を計画します。このディレクトリーは、スケール可能な大規模ローカルパーティションにマウントすることをお勧めします。たとえば、このパーティションを作成するには論理ボリュームマネージャー (LVM) を使用します。
重要

/var/lib/mongodb は NFS 共有にマウントしないでください。Red Hat は、/var/lib/mongodb ファイルシステムに高帯域幅で低レイテンシーのストレージを使用することをお勧めします。Red Hat Satellite には、I/O を大量に使用する多くの操作があるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。

第2章 組織の管理

組織は、所有者、目的、コンテンツ、セキュリティーレベルなどに基づいて Red Hat Satellite 6 リソースを論理グループに分割します。Red Hat Satellite 6 では複数の組織を作成および管理し、Red Hat サブスクリプションを分割して、各個別組織に割り当てることができます。これにより、1 つの管理システムで複数の個別組織のコンテンツを管理できるようになります。以下に、組織管理の例をいくつか示します。

1 つの組織
単純なシステム管理チェーンを持つ小規模な会社。この場合は、会社に対して組織を 1 つ作成し、コンテンツをその組織に割り当てます。
複数の組織
複数の小規模な事業単位を所有する大規模な会社 (たとえば、独立したシステム管理およびソフトウェア開発グループがある会社)。この場合は、会社と会社が所有する各事業単位に対して組織を作成します。これにより、それぞれのシステムインフラストラクチャーを分けることができます。各組織に、それぞれのニーズに基づいてコンテンツを割り当てます。
外部組織
他の組織の外部システムを管理する会社 (たとえば、クラウドコンピューティングと Web ホスティングを顧客に提供する会社)。この場合は、会社の独自のシステムインフラストラクチャーの組織に加え、外部の各会社に対して組織を作ることが考えられます。必要に応じて、各組織にコンテンツを割り当てます。

Red Hat Satellite 6 のデフォルトのインストールでは、Default_Organization と呼ばれるデフォルトの組織が提供されます。

重要

新しいユーザーにデフォルトの組織が割り当てられていないと、そのユーザーのアクセスは制限されます。ユーザーにシステムの権限を付与するには、ユーザーをデフォルトの組織に割り当てた後にログアウトし、再度ログインします。

2.1. 組織の作成

Web UI をご利用の場合

  1. 管理 > 組織 に移動します。
  2. 新規組織 をクリックします。
  3. 組織の基本的な詳細情報を指定します。

    • 名前: プレーンテキスト形式の組織名。
    • ラベル - 組織の一意な ID。これは、コンテンツストレージ用ディレクトリーなどの特定のアセットを作成およびマップする場合に使用されます。文字、数字、アンダースコア、およびダッシュを使用し、スペースは使用しないでください。
    • 説明: プレーンテキスト形式の組織の説明 (オプション)。
  4. 送信 をクリックします。

    • 組織が割り当てられていないホストがある場合には、ホストの選択 タブにリダイレクトされます。組織に割り当てるホスト 3 種類から選択します。

      • Assign All (すべてを割り当て) を選択して、組織が割り当てられていないホストすべてを割り当てます。
      • 手動割り当て をクリックして、組織に割り当てるホストを選択します。
      • Proceed to Edit (編集に進む) を選択して、組織を割り当てずに Edit Properties (プロパティーの編集) ページに移動します。
    • ホストに組織が割り当てられていない場合は、編集 ページに移動しますので、ここでインフラストラクチャーリソースを組織に割り当てることができます。このインフラストラクチャーリソースには、ネットワークリソース、インストールメディア、キックスタートテンプレートなどのパラメーターが含まれます。このページには、管理 > 組織 に移動し、編集する組織を選択するといつでも戻ることができます。
  5. 組織の作成後に、送信 をクリックします。

CLI をご利用の場合

以下のコマンドを入力して組織を作成します。

# hammer organization create \
--name "your_organization_name" \
--label "your_organization_label \
--description "your_organization_description"

2.2. 組織コンテキストの設定

ホストに使用する組織や関連するリソースを定義する組織のコンテキスト

Web UI をご利用の場合

組織メニューは、Satellite Web UI の左上にあるメニューバーの最初のメニュー項目です。現在の組織を選択していない場合には、メニューには 任意の組織 と表示されます。任意の組織 ボタンをクリックして、使用する組織を選択します。

CLI をご利用の場合

CLI を使用する場合は、オプションとして --organization "your_organization_name" または --organization-label "your_organization_label" を追加できます。以下に例を示します。

# hammer subscription list --organization "Default_Organization"

このコマンドは、Default_Organization に割り当てられたサブスクリプションを出力します。

2.3. 組織のデバッグ証明書の作成

組織のデバッグ証明書の新規作成:

  1. 管理 > 組織 に移動します。
  2. デバッグ証明書を生成する組織を選択します。
  3. 生成してダウンロード をクリックします。これにより、デバッグ証明書が生成されます。
  4. 証明書ファイルを安全な場所に保存します。
注記

デバッグ証明書が組織内にダウンロードされていない場合は、プロビジョニングテンプレートのダウンロード時に自動的に生成されます。

2.4. 組織のデバッグ証明書の使用

組織のリポジトリーコンテンツは、その組織のデバッグ証明書を持っている場合に、ブラウザーまたは API を使用して表示できます。前のセクションで、X.509 形式の証明書の作成およびダウンロードを説明しました。ブラウザーを使用する場合は、最初に X.509 証明書を、ブラウザーがサポートする形式に変換し、次にその証明書をインポートする必要があります。curl ユーティリティーでは、別のファイルへの証明書およびキーの抽出のみを行います。

Firefox での組織のデバッグ証明書の使用:

  1. 「組織のデバッグ証明書の作成」に記載されている手順で、組織の証明書を作成およびダウンロードします。
  2. たとえば、デフォルトの組織の X.509 証明書を開きます。

    $ vi 'Default Organization-key-cert.pem'
  3. このファイルの -----BEGIN RSA PRIVATE KEY----- から -----END RSA PRIVATE KEY----- までを、key.pem ファイルにコピーします。
  4. このファイルの -----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- までを、cert.pem ファイルにコピーします。
  5. 以下のようにコマンドを入力して PKCS12 形式の証明書を作成し、パスワードまたはフレーズが要求された場合はそれを入力します。

    $ openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in cert.pem -inkey key.pem -out organization_label.pfx -name organization_name
    Enter Export Password:
    Verifying - Enter Export Password:
  6. 設定タブを使用して、作成した pfx ファイルをブラウザーにインポートします。編集 > 設定 > 詳細タブ に移動します。証明書 ビューの 証明書の表示 を選択して、証明書マネージャー を開きます。ユーザーの証明書 タブで、インポート をクリックし、ロードする pfx ファイルを選択します。証明書の作成時に、パスワードまたはフレーズを入力するように求められます。
  7. ブラウザーのアドレスバーに以下の形式の URL を入力し、リポジトリーの参照を開始します。

    http://satellite.example.com/pulp/repos/organization_label

    Pulp は組織ラベルを使用するため、URL でも組織ラベルを使用する必要があります。

curl での組織のデバッグ証明書の使用:

  1. 「組織のデバッグ証明書の作成」に記載されている手順で、組織の証明書を作成およびダウンロードします。
  2. たとえば、デフォルトの組織の X.509 証明書を開きます。

    $ vi 'Default Organization-key-cert.pem'
  3. このファイルの -----BEGIN RSA PRIVATE KEY----- から -----END RSA PRIVATE KEY----- までを、key.pem ファイルにコピーします。
  4. このファイルの -----BEGIN CERTIFICATE----- から -----END CERTIFICATE----- までを、cert.pem ファイルにコピーします。
  5. リポジトリーの有効な URL を確認します。前の手順で説明した参照方法を使用するか、Web UI を使用します。たとえば、Web UI を使用して コンテンツ > 製品 に移動し、製品名を選択します。リポジトリー タブでリポジトリー名を選択し、公開 エントリーを探します。
  6. curl を使用してリポジトリーにアクセスするには、以下のようなコマンドを入力します。

    $ curl -k --cert cert.pem --key key.pem http://satellite.example.com/pulp/repos/Default_Organization/Library/content/dist/rhel/server/7/7Server/x86_64/sat-tools/6.4/os/

    cert.pemkey.pem へのパスが適切な絶対パスであることを確認します。間違っているとコマンドが失敗し、メッセージも表示されません。

2.5. 組織の削除

組織は、ライフサイクル環境またはホストグループに関連づけられていない場合に削除できます。削除する組織にライフサイクル環境またはホストグループが関連付けられている場合は、管理 > 組織> に移動して関連の組織をクリックします。インストール中に作成されたデフォルトの組織は、Satellite 環境で関連付けられていないホストへのプレースホルダーであるため、削除することは推奨されません。環境には常に 1 つ以上の組織が必要です。

Web UI をご利用の場合

  1. 管理 > 組織 に移動します。
  2. 削除する組織の名前の右側にあるリストから 削除 を選択します。
  3. OK をクリックして、組織を削除します。

CLI をご利用の場合

以下のコマンドを入力して組織を削除します。

# hammer organization delete --organization "your_organization_name"

第3章 ロケーションの管理

ロケーションは、各種リソースを分類し、ホストを割り当てる方法を提供する点で組織に似ています。組織とロケーションの相違点は以下のとおりです。

  • ロケーションは、物理または地理的設定をベースにしています。
  • ロケーションの構造は階層的です。

3.1. ロケーションの作成

Web UI をご利用の場合

  1. 管理 > ロケーション に移動します。
  2. 新規組ロケーション をクリックします。

    • ロケーションの基本的な詳細情報を指定します。
    • : このロケーションの親ロケーションを定義します (オプション)。これにより、ロケーションの階層が作成されます。
    • 名前: プレーンテキスト形式のロケーション名。
    • 説明: プレーンテキスト形式のロケーションの説明 (オプション)。
  3. 送信 をクリックします。

    • ロケーションが割り当てられていないホストがある場合には、ホストの選択 タブにリダイレクトされます。ロケーションに割り当てるホスト 3 種類から選択します。

      • Assign All (すべてを割り当て) を選択して、ロケーションが割り当てられていないホストすべてを割り当てます。
      • 手動割り当て をクリックして、ロケーションに割り当てるホストを選択します。
      • Proceed to Edit (編集に進む) を選択して、ロケーションを割り当てずに Edit Properties (プロパティーの編集) ページに移動します。
    • ホストにロケーションが割り当てられていない場合は、編集 ページに移動しますので、ここでインフラストラクチャーリソースをロケーションに割り当てることができます。このインフラストラクチャーリソースには、ネットワークリソース、インストールメディア、キックスタートテンプレートなどのパラメーターが含まれます。このページには、管理 > ロケーション に移動し、編集するロケーションを選択するといつでも戻ることができます。
  4. ロケーションの作成後に、送信 をクリックします。

CLI をご利用の場合

以下のコマンドを実行してロケーションを作成します。

# hammer location create \
--parent-id "parent_location_id" \
--name "your_location_name" \
--description "your_location_description"

3.2. ロケーションコンテキストの設定

ホストに使用するロケーションや関連するリソースを定義するロケーションのコンテキスト

Web UI をご利用の場合

ロケーションメニューは、Satellite Web UI の左上にあるメニューバーの 2 番目のメニュー項目です。現在のロケーションを選択していない場合には、メニューには 任意のロケーション と表示されます。任意のロケーション ボタンをクリックして、使用するロケーションを選択します。

CLI をご利用の場合

CLI を使用する場合は、オプションとして、--location "your_location_name" または --location-id "your_location_id" を追加します。以下に例を示します。

# hammer subscription list --location "Default_Location"

このコマンドは、Default_Location に割り当てられたサブスクリプションを出力します。

3.3. ロケーションの削除

ロケーションは、ライフサイクル環境またはホストグループに関連づけられていない場合に削除できます。削除するロケーションにライフサイクル環境またはホストグループが関連付けられている場合は、管理 > ロケーション> に移動して関連のロケーションをクリックします。インストール中に作成されたデフォルトのロケーションは、Satellite 環境で関連付けられていないホストへのプレースホルダーであるため、削除することは推奨されません。環境には常に 1 つ以上のロケーションが必要です。

Web UI をご利用の場合

  1. 管理 > ロケーション に移動します。
  2. 削除するロケーションの名前の右側にあるリストから 削除 を選択します。
  3. OK をクリックして、ロケーションを削除します。

CLI をご利用の場合

以下のコマンドを入力してロケーションを削除します。

# hammer location delete --location "your_location_name"

第4章 サブスクリプションの管理

Red Hat Satellite 6 では、Red Hat のコンテンツ配信ネットワーク (CDN) からコンテンツをインポートします。サブスクリプションマニフェストは、対応のリポジトリーからコンテンツを検索、アクセス、ダウンロードするために使用します。サブスクリプションマニフェストには、Satellite Server の組織毎のサブスクリプション割り当てが含まれている必要があります。サブスクリプション情報はすべて、Red Hat カスタマーポータルのアカウントで確認できます。

サブスクリプションの割り当ておよびマニフェストの作成、変更、更新については、本章を使用してください。

4.1. サブスクリプション割り当ての管理

4.1.1. カスタマーポータルでのサブスクリプションの割り当ての作成

Red Hat カスタマーポータルでサブスクリプション情報にアクセスし、サブスクリプション割り当てを作成します。次に、Red Hat Satellite などオンプレミスの管理アプリケーションで、使用するサブスクリプションマニフェストとして、この割り当てをエクスポートします。

手順

  1. ブラウザーで Red Hat カスタマーポータルを開き、Red Hat のアカウントにログインします。
  2. カスタマーポータルページの左上にある サブスクリプション に移動します。
  3. サブスクリプション割り当て タブをクリックします。
  4. 新規サブスクリプションの割り当て をクリックします。
  5. 名前 フィールドには、サブスクリプション割り当てを特定できるように、分かりやすい名前を入力します。
  6. タイプ の一覧から、お使いの Satellite Server に一致するタイプとバージョンを選択します。
  7. 作成 をクリックします。
  8. 数分後に、Web UI により、割り当てが正しく作成されたことが報告されます。

4.1.2. サブスクリプション割り当てへのサブスクリプションの追加

Red Hat 製品または、既存の製品で未来の日付のサブスクリプションを追加する場合は、サブスクリプション割り当てに、適切なサブスクリプションを追加する必要があります。以下の手順では、サブスクリプションを割り当てに追加する方法を説明します。

手順

  1. ブラウザーで Red Hat カスタマーポータルを開き、Red Hat のアカウントにログインします。
  2. カスタマーポータルページの左上にある サブスクリプション に移動します。
  3. サブスクリプション割り当て タブをクリックします。
  4. 名前 のコラムから、変更するサブスクリプション割り当ての名前を選択します。
  5. サブスクリプション タブをクリックしてから、サブスクリプションの追加 をクリックします。
  6. 追加するサブスクリプションの列ごとに、エンタイトルメント コラムで数量を入力します。
  7. 送信 をクリックします。
  8. 変更したサブスクリプション割り当てに該当するサブスクリプションマニフェストが Satellite Server にある場合は、サブスクリプションマニフェストを更新します。詳細は、「サブスクリプションマニフェストのアップデートおよび更新」を参照してください。

4.1.3. サブスクリプション割り当てからのサブスクリプションの削除

以下の手順では、期限の切れたサブスクリプションを削除する場合など、サブスクリプション割り当てからサブスクリプションを削除する方法を説明しています。

手順

  1. ブラウザーで Red Hat カスタマーポータルを開き、Red Hat のアカウントにログインします。
  2. カスタマーポータルページの左上にある サブスクリプション に移動します。
  3. サブスクリプション割り当て タブをクリックします。
  4. 名前 のコラムから、変更するサブスクリプション割り当ての名前を選択します。
  5. サブスクリプション タブをクリックします。
  6. 削除するサブスクリプションの各行で、該当のチェックボックスを選択します。
  7. 削除 をクリックしてから削除を確定します。
  8. 変更したサブスクリプション割り当てに該当するサブスクリプションマニフェストが Satellite Server にある場合は、サブスクリプションマニフェストを更新します。詳細は、「サブスクリプションマニフェストのアップデートおよび更新」を参照してください。

4.1.4. サブスクリプション割り当て間のサブスクリプションの移動

以下の手順では、サブスクリプション割り当てを別のサブスクリプション割り当てに移動する方法を説明します。

手順

  1. ブラウザーで Red Hat カスタマーポータルを開き、Red Hat のアカウントにログインします。
  2. カスタマーポータルページの左上にある サブスクリプション に移動します。
  3. サブスクリプション割り当て タブをクリックします。
  4. 名前 のコラムから、変更するサブスクリプション割り当ての名前を選択します。
  5. サブスクリプション タブをクリックします。
  6. 移動するサブスクリプションの各行で、該当のチェックボックスを選択します。
  7. 別の割り当てに移動 をクリックします。
  8. 「Move entitlements from this subscription allocation to another (このサブスクリプションの割り当てから別の割り当てにエンタイトルメントを移動する)」ウィンドウで、適切な方法を使用して移動するサブスクリプションを選択します。

    • すべてのサブスクリプションを選択する場合は、Move All Entitlements (すべてのエンタイトルメントの移動) を選択してください。
    • 数量を指定する場合は、Quantity to Move (移動する数量) コラムのサブスクリプションの各行に、適切な数量を入力してください。
    • 選択項目からサブスクリプションを削除する場合は、サブスクリプションの各行にある削除アイコンをクリックして、OK をクリックして確定してください。
  9. Next: Select Destination Allocation (次へ: 割り当て先の選択) をクリックしてください。
  10. 表から、サブスクリプションの移動先のサブスクリプション割り当てを選択し、送信 をクリックしてくd
  11. 変更したサブスクリプション割り当てに該当するサブスクリプションマニフェストが Satellite Server にある場合は、サブスクリプションマニフェストを更新します。詳細は、「サブスクリプションマニフェストのアップデートおよび更新」を参照してください。

4.1.5. 未来の日付のサブスクリプションの使用

サブスクリプション割り当てでは、未来の日付のサブスクリプションを使用できます。既存のサブスクリプションの有効期限前に、未来の日付のサブスクリプションをコンテンツホストに追加する場合は、リポジトリーへのアクセスが中断されず、そのまま利用できます。

Red Hat は、自動アタッチ機能を使用せずに、現在のサブスクリプションの有効期限前に、コンテンツホストに未来の日付のサブスクリプションを手動でアタッチすることを推奨します。詳細は、「コンテンツホストへのサブスクリプションのアタッチ」を参照してください。

4.1.6. サブスクリプション割り当てを使用した複数の組織の管理

複数のサブスクリプション割り当てがある場合は、複数の組織を管理できます。Satellite 6 では、Satellite Server で設定した組織ごとに 1 つの割り当てが必要です。この利点は、各組織が完全に独立したサブスクリプションを保持するため、各組織をそれぞれ独自の Red Hat アカウントでサポートできることです。

4.1.7. カスタマーポータルからのサブスクリプションマニフェストのエクスポート

最低でも 1 つ以上のサブスクリプションがあるサブスクリプション割り当てを表示すると、割り当てをサブスクリプションマニフェストとしてエクスポートできます。

サブスクリプションマニフェストは、エンコードされたサブスクリプションが含まれる、サブスクリプション割り当ての ZIP アーカイブで、これを Satellite Server にインポートできます。

手順

  1. ブラウザーで https://access.redhat.com/ を開き、Red Hat アカウントでログインします。
  2. カスタマーポータルページの左上にある サブスクリプション に移動します。
  3. サブスクリプション割り当て タブをクリックします。
  4. 名前 のコラムから、エクスポートするサブスクリプション割り当ての名前を選択します。
  5. 詳細 ペインで、マニフェストのエクスポート をクリックして、サブスクリプションマニフェストファイルをダウンロードします。

4.1.8. Satellite Server へのサブスクリプションマニフェストのインポート

以下の手順では、サブスクリプションマニフェストを Satellite Server いインポートする方法を説明します。

前提条件

カスタマーポータルから以前にエクスポートしたサブスクリプションマニフェストファイルが必要です。詳しい情報は、「カスタマーポータルからのサブスクリプションマニフェストのエクスポート」を参照してください。

Web UI をご利用の場合

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. コンテンツ > サブスクリプション に移動します。
  3. Red Hat サブスクリプションでは、マニフェストの管理 をクリックします。
  4. マニフェストの管理ウィンドウで、参照 をクリックします。
  5. サブスクリプションマニフェストファイルが含まれる場所に移動して、開く をクリックします。
  6. マニフェスト管理ウィンドウが自動的に閉じない場合には、閉じる をクリックして、Red Hat サブスクリプションページに戻ります。

CLI をご利用の場合

Red Hat Satellite 6 CLI を使用するには、Satellite Server にマニフェストがひつようです。

  1. ローカルのクライアントシステムにログインして、サブスクリプションマニフェストファイルを Satellite Server にコピーします。

    [user@client ~]$ scp ~/manifest_file.zip root@satellite.example.com:~/.
  2. 端末で、Satellite Server に root ユーザーとして接続し、サブスクリプションマニフェストファイルをインポートします。

    [root@satellite ~]# hammer subscription upload \
    --file ~/manifest_file.zip \
    --organization "organization_name"

数分後、CLI により、マニフェストのインポートに成功したことが報告されます。

リポジトリーを有効化して、Red Hat コンテンツをインポートできるようになります。詳細は、5章Red Hat コンテンツのインポートを参照してください。

4.2. Satellite Web UI でのサブスクリプション割り当ての管理

Red Hat Satellite 6.4 では、Satellite web UI で直接サブスクリプション割り当てを管理できます。

4.2.1. Satellite Web UI でのサブスクリプションの検索

サブスクリプションマニフェストを Satellite Server にインポートすると、マニフェストからのサブスクリプションが Red Hat サブスクリプションページに表示されます。サブスクリプションが大量にある場合には、結果をフィルタリングして、特定のサブスクリプションを検索できます。

前提条件

サブスクリプションマニフェストファイルを Satellite Server に事前にインポートしておく必要があります。詳細は、「Satellite Server へのサブスクリプションマニフェストのインポート」を参照してください。

手順

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. コンテンツ > サブスクリプション に移動します。
  3. Red Hat サブスクリプションページで、検索 フィールドをクリックして、検索クエリーを構築する検索条件の一覧を表示します。
  4. 検索条件を選択して、他のオプションを表示します。
  5. 検索クエリーを構築したら、検索アイコンをクリックします。

たとえば、検索 フィールドにカーソルを置き、expires (期限切れ) を選択して、スペースキーを押すと、別のリストが表示され、>< または = 文字を選択できます。> を選択してスペースキーを押すと、自動オプションの別のリストが表示されます。独自の条件を入力することも可能です。

4.2.2. コンテンツホストへのサブスクリプションのアタッチ

プロビジョニング時に、コンテンツホストにサブスクリプションをアタッチするには、アクティベーションキーの使用が推奨されます。ただし、アクティベーションキーは既存のホストを更新することができません。新規または追加のサブスクリプション (たとえば将来の日付が指定されたサブスクリプション) を 1 台のホストにアタッチする必要がある場合は、以下の方法で行ってください。

複数ホストの更新に関する詳細情報は、「コンテンツホストのサブスクリプションの一括アップデート」を参照してください。

アクティベーションキーに関する詳細情報は、「9章アクティベーションキーの管理」を参照してください。

前提条件

サブスクリプションマニフェストファイルを Satellite Server に事前にインポートしておく必要があります。詳細は、「Satellite Server へのサブスクリプションマニフェストのインポート」を参照してください。

Smart Management サブスクリプション

Satellite 6 では、Red Hat Enterprise Linux Smart Management サブスクリプション数と、Satellite で管理できるシステム数は同じになります。Satellite で管理する Red Hat Enterprise Linux サブスクリプションすべてに対して、Smart Management サブスクリプションを確保する必要があります。

ただし、コンテンツホスト毎に Smart Management サブスクリプションをアタッチする必要はありません。Smart Management サブスクリプションは、製品の証明書に関連付けられていないため、自動的に Satellite のコンテンツホストにアタッチできません。コンテンツホストに Smart Management サブスクリプションを追加しても、コンテンツやリポジトリーへのアクセスができるようになりません。ご希望であれば、独自の記録用または追跡の目的で Smart Management サブルーチンをマニフェストに追加することができます。

Web UI をご利用の場合

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. ホスト > コンテンツホスト に移動します。
  3. 変更するサブスクリプションのコンテンツホストの行ごとに、該当するチェックボックスを選択してください。
  4. アクションの選択 一覧から サブスクリプションの管理 を選択します。
  5. 任意で、検索 フィールドにキーと値を入力し、表示するサブスクリプションを絞り込みます。
  6. 追加または削除するサブスクリプションの左側にあるチェックボックスを選択し、選択した項目を追加 または 選択した項目を削除 をクリックします。
  7. 完了 をクリックして変更を保存します。

CLI をご利用の場合

  1. 以下のように、端末で root として Satellite Server に接続してから、利用可能なサブスクリプションを表示します。

    # hammer subscription list \
    --organization-id 1
  2. サブスクリプションをホストにアタッチします。

    # hammer host subscription attach \
    --host host_name \
    --subscription-id subscription_id

4.2.3. Satellite Web UI でのサブスクリプション割り当てへのサブスクリプションの追加

以下の手順では、Satellite web UI でサブスクリプション割り当てにサブスクリプションを追加する方法を説明します。

前提条件

サブスクリプションマニフェストファイルを Satellite Server にインポートしておく必要があります。詳細は、「Satellite Server へのサブスクリプションマニフェストのインポート」を参照してください。

手順

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. コンテンツ > サブスクリプション に移動します。
  3. Red Hat サブスクリプションページで サブスクリプションの追加 をクリックします。
  4. 追加するサブスクリプションの列ごとに、Quantity to Allocate (割り当てる数量) コラムで数量を入力します。
  5. 送信 をクリックします。

数分後に、Web UI により、アクションが正しく実行されたことが報告されます。

4.2.4. Satellite Web UI でのサブスクリプション割り当てからのサブスクリプションの削除

以下の手順では、Satellite web UI でサブスクリプション割り当てからサブスクリプションを削除する方法を説明します。

注記

マニフェストは削除しないでください。Red Hat カスタマーポータルまたは Satellite Web UI でマニフェストを削除すると、コンテンツホストのエンタイトルメントがすべて解除されます。

前提条件

サブスクリプションマニフェストファイルを Satellite Server にインポートしておく必要があります。詳細は、「Satellite Server へのサブスクリプションマニフェストのインポート」を参照してください。

手順

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. コンテンツ > サブスクリプション に移動します。
  3. 削除するサブスクリプションの各行で、該当のチェックボックスを選択します。
  4. 削除 をクリックして、削除を確定します。

数分後に、Web UI により、アクションが正しく実行されたことが報告されます。

4.2.5. サブスクリプションマニフェストのアップデートおよび更新

サブスクリプションの割り当てを変更した場合は、マニフェストを更新してその変更を更新する必要があります。たとえば、以下のいずれかを行った場合はマニフェストを更新してください。

  • サブスクリプションの更新
  • サブスクリプション数量の調整
  • 追加のサブスクリプションの購入

Satellite web UI で直接マニフェストの更新を利用できます。あるいは、変更が含まれる、更新済みのマニフェストをインポートすることも可能です。マニフェストのインポートに関する詳細情報は、「Satellite Server へのサブスクリプションマニフェストのインポート」を参照してください。

手順

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. コンテンツ > サブスクリプション に移動します。
  3. Red Hat サブスクリプションでは、マニフェストの管理 をクリックします。
  4. マニフェストの管理ウィンドウで、更新 をクリックします。

数分後に、Web UI により、アクションが正しく実行されたことが報告されます。

4.2.6. コンテンツホストのサブスクリプションの一括アップデート

ここで説明する方法は、インストール後に複数のコンテンツホストを同時に変更することを目的としています。Web UI およびフィルター機能を使用して変更するコンテンツホストを選択するか、Hammer コマンドラインツールの CSV ファイルエクスポート機能を使用し、CSV ファイルで設定を変更し、変更内容をアップロードします。

Web UI をご利用の場合

  1. Satellite Web UI で、コンテキストが、使用する組織に設定されていることを確認します。
  2. ホスト > コンテンツホスト に移動します。
  3. 変更するサブスクリプションのコンテンツホストの行ごとに、該当するチェックボックスを選択してください。
  4. アクションの選択 一覧から サブスクリプションの管理 を選択します。
  5. 任意で、検索 フィールドにキーと値を入力し、表示するサブスクリプションを絞り込みます。
  6. 追加または削除するサブスクリプションの左側にあるチェックボックスを選択し、選択した項目を追加 または 選択した項目を削除 をクリックします。
  7. 完了 をクリックして変更を保存します。

CLI をご利用の場合

  1. コンテンツホストの現在の状態を CSV ファイルにエクスポートします。

    # hammer --server https://satellite.example.com csv content-hosts --export --file content_hosts.csv
  2. CSV ファイルで必要な値を変更します。CSV ファイルの文字列を変更するには、エディター、CSV プラグイン、または sed を使用できます。

    1. ファイルのバックアップを作成します。

      # cp content_hosts.csv content_hosts.csv.backup
    2. 以下のように、文字列を変更します。

      # sed -i "s/1|RH1234|Red Hat Enterprise Linux Server/1|RH5678|Red Hat Enterprise Linux Server/g" content_hosts.csv
    3. 変更箇所を確認します。以下は例となります。

      # diff content_hosts.csv content_hosts.csv.backup
  3. 変更したファイルを Satellite Server にアップロードします。

    # hammer --server https://satellite.example.com csv content-hosts --file content_hosts.csv

第5章 Red Hat コンテンツのインポート

この時点で Satellite Server には必要なサブスクリプション情報がインポートされています。コンテンツはシステムに追加できる状態です。本章では、Definitive Media Library (DML) の概念とコンテンツを同期して DML を作成する方法を説明します。

5.1. Definitive Media Library の作成

DML は、ソフトウェアおよび設定の承認された最終的なバージョンを保存および保護するリポジトリーです。つまり、DML は Satellite にインポートされたコンテンツのマスターバージョンとして機能します。これには、RPM ファイル、キックスタートツリー、ISO イメージなどの Red Hat コンテンツが含まれます。「Red Hat Satellite 6 コンテンツ管理の概要」 で説明したように、Red Hat Satellite 6 では、コンテンツは DML で保存および管理されます。

5.2. Satellite での製品およびリポジトリーの使用

Satellite では、製品の概念を組織単位として使用して複数のリポジトリーをグループ化します。このようなリポジトリーコレクションは実際の製品の概念と似ています。たとえば、Satellite で Red Hat Enterprise Linux Server を製品として見ると、その製品のリポジトリーは異なるバージョン (6.0、6.1、7.0)、異なるアーキテクチャー (i386、x86_64、s390x、arm)、および異なるアドオン (オプションリポジトリー、補助リポジトリー、Virt V2V ツール) から構成されることになります。これにより、関連するすべてのリポジトリーが DML 内で統合されます。製品を使用すると、お互いに依存するリポジトリーが一緒に同期されます。Red Hat リポジトリーの場合、製品はリポジトリーの有効後に自動的に作成されます。

本章では、Red Hat コンテンツを使用して DML を作成します。これを行うには、DML と Red Hat の製品およびリポジトリーを同期します。

5.3. コンテンツの同期

DML からリポジトリーを選択すると、Satellite Server により独自のリポジトリーと Red Hat CDN 上のリポジトリーが同期されます。これにより、Satellite Server では Red Hat のリポジトリーの同一コピーが DML の一部として保持されます。Satellite Server はこのリポジトリー情報を取得し、Satellite Server のファイルシステムに保存します。最初の同期後に、DML 内のリポジトリーが CDN のリポジトリーと同期された状態になるような同期計画を作成できます。

最初の更新は ISO イメージを使用して実行できます。コンテンツ ISO の使用の詳細は「付録C 接続済み Satellite Server へのコンテンツ ISO のインポート」を参照してください。帯域幅制限がある場所では、以下で説明するように、オンデマンド または 背景 ダウンロードポリシーを使用すると、コンテンツ ISO をダウンロードおよびインポートよりも時間が短縮されることがあります。

5.4. ダウンロードポリシーの使用

Red Hat Satellite では、RPM コンテンツの同期に関する複数のダウンロードポリシーが提供されます。たとえば、コンテンツメタデータのみをダウンロードし、実際のコンテンツのダウンロードは後で行うことで時間を短縮する場合があります。

Satellite Server では以下のポリシーが提供されます。

  • 即時: Satellite Server は、同期時にメタデータとパッケージをすべてダウンロードします。
  • オンデマンド: Satellite Server は同期時にメタデータのみをダウンロードします。Satellite Server は、Capsule、または直接接続したクライアントが要求した場合に限り、ファイルシステムでパッケージを取得および保存します。Satellite Server が強制的にすべてのパッケージをダウンロードするため、Capsule で対応するリポジトリーを 即時 に設定した場合は有効ではありません。
  • 背景: Satellite Server は、最初の同期後にすべてのパッケージをダウンロードする背景タスクを作成します。

最後の 2 つのポリシーは、コンテンツの同期時間を短縮するため、レイジー同期 機能として動作します。レイジー同期機能は yum リポジトリーにのみ使用してください。通常のコンテンツビューと同じように、ライフサイクル環境にプロモートすることができます。

Capsule Server に、以下のポリシーを提供します。

  • 即時: Capsule Server は、同期時にメタデータとパッケージをすべてダウンロードします。Satellite Server で対応するリポジトリーを オンデマンド に設定した場合は、Satellite Server が強制的にすべてのパッケージをダウンロードするため、この設定を使用しないでください。
  • オンデマンド: Capsule Server は、同期時にメタデータだけをダウンロードします。Capsule は、直接接続したクライアントが要求した場合に限り、ファイルシステムでパッケージを取得して保存します。

    注記

    オンデマンド ダウンロードポリシーを使用すると、Capsule Server で使用できない場合に、Satellite Server からコンテンツをダウンロードします。

  • 背景: Capsule Server は、最初の同期後に、すべてのパッケージをダウンロードする背景タスクを作成します。
  • 継承: Capsule Server は、Satellite Server で対応するリポジトリーから、リポジトリーのダウンロードポリシーを継承します。

このポリシーは、--enable-foreman-proxy-plugin-pulp を false に設定して Capsule をインストールまたはアップデートした場合は利用できません。

5.5. 同期する Red Hat リポジトリーの選択

同期するリポジトリーを選択するには、対象のリポジトリーが含まれる製品を先に特定して、適切なリリースバージョンとベースのアーキテクチャーをもとにリポジトリーを有効化する必要があります。

重要

非接続の Satellite を使用している場合は、コンテンツを同期する前に Red Hat Satellite 用のコンテンツ ISO をインポートし、Satellite Server 上で CDN URL を変更する必要があります。詳細は「付録B 非接続の Satellite Server へのコンテンツ ISO のインポート」を参照してください。

Web UI をご利用の場合

  1. コンテンツ > Red Hat リポジトリー に移動します。

    Red Hat リポジトリーページには、利用可能なリポジトリーと有効化されたリポジトリーペインの 2 つが表示されます。利用可能なリポジトリーペインには、RPM コンテンツを提供するサブスクライブ済みの全製品一覧が、有効化されたリポジトリーペインには、有効化されたリポジトリーの一覧が含まれます。

    製品と固有のリポジトリー間の関係は、カスケード階層で連携されます。このカスケード階層で、利用可能なリポジトリーに表示されます。

  2. Red Hat Enterprise Linux 7 Server (RPMs) リポジトリーを検索するには、以下の方法のいずれかを使用します。

    • Search フィールドに、rhel-7-server-rpms のリポジトリー名を入力します。
    • Recommended Repositories (推奨のリポジトリー) ボタンを On の位置に切り替え、一般的な設定で使用されるリポジトリーの一覧を表示します。
  3. 利用可能なリポジトリーペインで、Red Hat Enterprise Linux 7 Server (RPMs) をクリックして、リポジトリーセットを展開します。
  4. x86_64 7Server エントリーの場合は、有効化 アイコンをクリックしてリポジトリーを有効にします。これにより、Red Hat Enterprise Linux 7 の最新の RPM ファイルが有効になります。
注記

Red Hat Enterprise Linux オペレーティングシステムに 7 Server リポジトリーを関連付けることと、7.X リポジトリーを関連付けることの違いは、7 Server には最新アップデートがすべて含まれ、Red Hat Enterprise Linux 7.X リポジトリーでは次のマイナーバージョンリリース以降のアップデートを取得しなくなることです。キックスタートリポジトリーにはマイナーバージョンのみが含まれることに注意してください。

CLI をご利用の場合

製品とリポジトリーの関係は同じです。製品を検索するには、以下のコマンドを使用します。

# hammer product list --organization "ACME"

製品のリポジトリーのセットを一覧表示します。

# hammer repository-set list \
--product "Red Hat Enterprise Linux Server" \
--organization "ACME"

これにより、製品のリポジトリーセット内のリポジトリーが表示されます (名前と ID 番号を含む)。名前または ID 番号を使用してリポジトリーを有効にします。また、リリースバージョン (7Server) とベースアーキテクチャー (x86_64) を含めます。以下は例となります。

# hammer repository-set enable \
--name "Red Hat Enterprise Linux 7 Server (RPMs)" \
--releasever "7Server" \
--basearch "x86_64" \
--product "Red Hat Enterprise Linux Server" \
--organization "ACME"

このシナリオでは、Web UI または CLI を使用して ACME 向けの以下のリポジトリーを有効にします。

リポジトリーType説明

Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server

RPM

Red Hat Enterprise Linux 7 の最新バージョン向けのリポジトリー。継続的なパッケージアップデートを受け取るために、7.2 リポジトリーの代わりに 7 Server リポジトリーを使用します。

Red Hat Satellite Tools 6.4 for RHEL 7 Server RPMs x86_64

RPM

クライアントシステム用システム管理エージェントおよびツールを含む Satellite Tools リポジトリー。新しいシステムのプロビジョニング後に、Satellite により katello-agent や Puppet などのツールがクライアントにインストールされます。継続的なパッケージアップデートを受け取るために、7.2 リポジトリーの代わりに 7 Server リポジトリーを使用します。

Red Hat Enterprise Linux 7.2 Kickstart x86_64 7Server

キックスタート

Red Hat Enterprise Linux 7.2 向けキックスタートツリー。PXE を介して新しいシステムをプロビジョニングする場合にインストールメディアとして使用します。

これらのリポジトリーは、このシナリオの DML 向けの初期コンテンツを提供します。それぞれのニーズに合わせて複数のリポジトリーを選択できます。

注記

このシナリオでは、すべてのリポジトリーで x86_64 をベースアーキテクチャーとして使用します。

5.6. Red Hat リポジトリーの同期

ここまでに、初期 DML を形成する特定のリポジトリーが有効になっています。ここからは、これらのリポジトリーを Red Hat CDN のリポジトリーと同期します。

Web UI をご利用の場合

コンテンツ > 製品 に移動し、Red Hat Enterprise Linux Server を選択します。これにより、製品内で有効なリポジトリーがすべて表示されます。すべてのリポジトリーを選択して 同期開始 をクリックします。また、Web UI で同期の進行状況を確認することもできます。コンテンツ > 同期の状態 に移動し、製品/リポジトリーツリーを展開します (または すべて展開 をクリックします)。

CLI をご利用の場合

Red Hat Enterprise Linux Server 製品内の有効済みリポジトリーを同期します。

# hammer product synchronize \
--name "Red Hat Enterprise Linux Server" \
--organization "ACME"

また、各リポジトリーを個別に同期することもできます。製品内のすべてのリポジトリーを一覧表示し、対応するリポジトリーの ID 番号を使用して同期します。以下は例となります。

# hammer repository list \
--product "Red Hat Enterprise Linux Server" \
--organization "ACME"
# hammer repository synchronize \
--name "Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server" \
--product "Red Hat Enterprise Linux Server" \
--organization "ACME"

同期にかかる時間は、各リポジトリーのサイズとネットワーク接続の速度によって異なります。以下の表は、利用可能なインターネット帯域幅に応じてコンテンツの同期にかかる推定時間を示しています。

 単一パッケージ (10Mb)マイナーリリース (750Mb)メジャーリリース (6Gb)

256 Kbps

5 分 27 秒

6 時間 49 分 36 秒

2 日と 7 時間 55 分

512 Kbps

2 分 43.84 秒

3 時間 24 分 48 秒

1 日と 3 時間 57 分

T1 (1.5 Mbps)

54.33 秒

1 時間 7 分 54.78 秒

9 時間 16 分 20.57 秒

10 Mbps

8.39 秒

10 分 29.15 秒

1 時間 25 分 53.96 秒

100 Mbps

0.84 秒

1 分 2.91 秒

8 分 35.4 秒

1000 Mbps

0.08 秒

6.29 秒

51.54 秒

DML に初期コンテンツをインポートする場合は、手動による同期が必要になることがよくあります。ただし、DML が定期的に更新されるように同期計画を作成することが推奨されます。

注記

Red Hat リポジトリーのダウンロードポリシーは変更できます。Red Hat Enterprise Linux Server 製品内のリポジトリーを選択し、ダウンロードポリシー フィールドまでスクロールします。CLI を使用している場合は、 hammer repository update コマンドに --download-policy オプションを追加して実行します。

5.6.1. リポジトリーの復旧

リポジトリーが破損した場合は、高度な同期を使用してそれを復旧できます。3 つのオプションの中から選択できます。

  • 最適同期: リポジトリーの同期時に、アップストリームの RPM との違いが検出されない RPM は回避します。
  • 完全同期: 検出した変更にかかわらずすべての RPM を同期します。特定の RPM が、アップストリームリポジトリーに存在しても、ローカルリポジトリーにダウンロードできない場合はこのオプションを使用します。
  • コンテンツの同期を検証: すべての RPM を同期し、すべての RPM のチェックサムをローカルで検証します。RPM のチェックサムがアップストリームと異なっている場合は、RPM を再ダウンロードします。このオプションは yum リポジトリーにのみ関連します。以下のいずれかのエラーが発生した場合に限りこのオプションを使用します。

    • yum との同期中に、特定の RPM で 404 エラーが発生した場合。
    • 特定のエラーが破損していることを示す Package does not match intended download エラーが発生した場合。

高度なオプションを使用して特定のリポジトリーへの同期:

Web UI ユーザーの場合

  1. コンテンツ > 製品 に移動します。
  2. 破損したリポジトリーを含む製品を選択します。
  3. 同期するリポジトリーの名前をクリックします。
  4. アクションの選択 メニューを展開し、高度な同期 を選択します。
  5. オプションを選択し、同期 をクリックします。

CLI ユーザーの場合

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

    # hammer repository list --organization "Default Organization"
  2. 必要なオプションを使用して破損したリポジトリーの同期:

    • 最適な同期の場合:

      # hammer repository synchronize --incremental true --id 1
    • 完全な同期の場合:

      # hammer repository synchronize --skip-metadata-check true --id 1
    • コンテンツを同期する場合:

      # hammer repository synchronize --validate-contents true --id 1

5.6.2. 同期速度の制限

同期の速度を制限して、利用可能な帯域幅が枯渇するのを回避したり、パフォーマンス問題を回避したりすることはできません。これは、PULP_CONCURRENCY パラメーターおよび max_speed パラメーターを設定することで行います。この設定はアップグレード時に上書きされます。設定を復元できるようにするために、アップグレード前に変更したファイルのバックアップすることが推奨されます。

  1. 並行して実行する同期ジョブの数を制御するには、/etc/default/pulp_workers ファイルの PULP_CONCURRENCY パラメーターを設定します。たとえば、平行して実行するジョブの数を 1 に設定するには、PULP_CONCURRENCY を 1 に設定します。

    PULP_CONCURRENCY=1

    デフォルトでは、CPU が 8 個より少なくなるシステムでは、PULP_CONCURRENCY が CPU の数に設定されます。8 個以上の場合は、8 に設定されます。

  2. 同期するネットワークの最大速度 (バイト毎秒) を設定するには、max_speed パラメーターを設定します。このパラメーターは、/etc/pulp/server/plugins.conf.d/ ディレクトリーで各インポーターに対して個別に設定する必要があります。

    1. たとえば、RPM コンテンツを同期する最大速度を毎秒 10 バイトに設定するには、/etc/pulp/server/plugins.conf.d/yum_importer.json ファイルの "max_speed" パラメーターを 10 に設定します。

      # cat /etc/pulp/server/plugins.conf.d/yum_importer.json
      {
          "proxy_host": null,
          "proxy_port": null,
          "proxy_username": null,
          "proxy_password": null,
          "max_speed": 10
      }
    2. 編集後にファイルの構文を検証します。

      # json_verify < /etc/pulp/server/plugins.conf.d/yum_importer.json
      JSON is valid
  3. Satellite サービスを再起動して、変更を適用します。

    # foreman-maintain service restart

5.7. 同期プランの作成

同期計画では、スケジュールされた日時に DML 内のコンテンツをチェックし、更新します。Red Hat Satellite 6 では、ユーザーは同期計画を作成し、同期計画に製品を割り当てることができます。

Web UI をご利用の場合

コンテンツ > 同期プラン に移動し、新規同期プラン をクリックします。この UI では、同期計画に関する詳細を入力できるフィールドセットが提供されます。

  • 名前: 計画の簡単な名前。Example Plan と入力します。
  • 説明: 計画の簡単な説明。Example Plan for ACME’s repositories と入力します。
  • 間隔: 同期をいつ実行するかを定義します。毎日 を選択します。
  • 開始日開始時刻: 同期をいつ実行するかを定義します。今日の同期はすでに完了しているので、明日 1:00 (1AM) の同期を設定します。

保存 をクリックして計画を作成します。計画詳細ページが 詳細製品 の 2 つのタブとともに表示されます。

この時点で製品を追加します。製品 タブをクリックし、次に 追加 をクリックします。Red Hat Enterprise Linux Server 製品を選択し、選択を追加 をクリックします。

CLI をご利用の場合

同期プランを作成するには、以下のコマンドを実行します。

# hammer sync-plan create \
--name "Red Hat Products 2" \
--description "Example Plan for ACME's Red Hat Products" \
--interval daily \
--sync-date "2016-02-01 01:00:00" \
--enabled true \
--organization "ACME"

次に、その同期計画に Red Hat Enterprise Linux Server 製品を割り当てます。

# hammer product set-sync-plan \
--name "Red Hat Enterprise Linux Server" \
--sync-plan "Red Hat Products" \
--organization "ACME"

この結果、Satellite Server は、毎日、Red Hat CDN に対して DML コンテンツをチェックし、Red Hat リポジトリーを最新の状態にします。

第6章 カスタムコンテンツのインポート

前章では、Definitive Media Library (DML) への Red Hat コンテンツのインポート方法を説明しました。本章では、Red Hat コンテンツと少し異なるカスタムコンテンツを説明します。事前に独自の製品を作成し、カスタマイズして、独自のリポジトリーを追加します。さらに、カスタムリポジトリーに Puppet モジュールを追加できます。

6.1. Satellite でのカスタム製品の使用

「Satellite での製品およびリポジトリーの使用」 では、Red Hat Satellite 6 の製品の概念と、その概念を使用してリポジトリーをグループ化する方法を説明しました。Red Hat Satellite 6 では、カスタム製品を作成して複数の関連リポジトリーを追加することもできます。Red Hat Satellite 6 における Red Hat コンテンツとカスタムコンテンツにはいくつかの類似点があります。

  • 製品とそのリポジトリー間の関係は同じであり、リポジトリーは引き続き同期する必要があります。
  • カスタム製品にはクライアントがアクセスするサブスクリプション (Red Hat 製品に対するサブスクリプションに類似) が必要です。Red Hat Satellite 6 では、作成する各カスタム製品に対して新しいサブスクリプションが作成されます。

本章では、2 つの関連リポジトリー (RPM コンテンツを含む RPM リポジトリーと RPM コンテンツを設定するためのモジュール向け Puppet リポジトリー) を含む製品を作成します。

RPM の作成およびパッケージングの詳細は、Red Hat Enterprise Linux ドキュメンテーションの『RPM パッケージングガイド』を参照してください。

6.2. カスタム製品の作成

このシナリオでは、ACME は、PostgreSQL データベースを必要とする Web ベースアプリケーションである Exampleware という名前の製品を開発することを目的としています。また、ACME は、Red Hat Enterprise Linux リポジトリーから PostgreSQL を使用して実稼働レベルの Exampleware を現場で使用し、新しいバージョンの PostgreSQL で Exampleware をテストすることもあります。このような場合は、新しいバージョンを同期できる PostgreSQL 向けのカスタム製品を作成します。

Web UI をご利用の場合

コンテンツ > 製品 に移動し、新製品 をクリックして、以下の詳細情報を入力します。

  • 名前: 製品の簡単な名前。PostgreSQL と入力します。
  • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • GPG キー: 製品全体の GPG キー。特定のバージョンの PostgreSQL に対して GPG をインストールし、製品の代わりにリポジトリーにアタッチするため、これは空にします。
  • 同期プラン: 製品の同期計画。これは、前の章で作成した Example Plan にアタッチすることができます。
  • 説明: 製品の簡単な説明。Content from PostgreSQL repositories と入力します。

この情報を入力したら、保存 をクリックします。

CLI をご利用の場合

製品を作成するには、以下のコマンドを実行します。

# hammer product create \
--name "PostgreSQL" \
--sync-plan "Example Plan" \
--description "Content from PostgreSQL repositories" \
--organization "ACME"

これにより、独自のカスタムリポジトリーを作成し、そのコンテンツを同期できる新しい製品が作成されます。

6.3. カスタム GPG キーのインポート

カスタム製品を作成する前に、カスタム GPG キーを作成する必要がある場合があります。これは、PostgreSQL リポジトリーとの RPM トランザクションに対してある程度のセキュリティーを提供するために使用されます。

最初に、バージョン固有のリポジトリーパッケージのコピーをクライアントシステムにダウンロードします。この場合は、pgdg-redhat95 をダウンロードします。

[user@client ~]$ wget http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm

RPM ファイルをインストールせずに抽出します。

[user@client ~]$ rpm2cpio pgdg-redhat95-9.5-2.noarch.rpm | cpio -idmv

GPG キーは、その抽出ファイルに相対的な場所である etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-95 に存在します。

Web UI をご利用の場合

GPG キーをインポートするには、以下の手順を実行してください。

  1. Satellite web UI で コンテンツ > コンテンツの認証情報 に移動して、ウィンドウの右上の コンテンツの認証情報の作成 をクリックします。
  2. 名前として PostgreSQL 9.5 を入力して、Type (種類) のリストから GPG キー を選択します。
  3. GPG キーを Content Credential Contents フィールドに貼り付けるか、参照 をクリックし、インポートする GPG キーファイルを選択します。
  4. 保存 をクリックします。

CLI をご利用の場合

GPG キーを Satellite Server にコピーします。

[user@client ~]$ scp ~/etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-95 root@satellite.example.com:~/.

GPG キーを Satellite にアップロードします。

[root@satellite ~]# hammer gpg create \
--key ~/RPM-GPG-KEY-PGDG-95 \
--name "PostgreSQL 9.5" \
--organization "ACME"

これで、リポジトリーに関連付ける GPG キーが用意できました。

6.4. カスタム RPM リポジトリーの作成

通常は、実稼働レベルのサーバーでは、安定のために Red Hat Enterprise Linux に含まれる PostgreSQL のバージョンを使用します。ただし、ACME の開発者がより新しいバージョンの PostgreSQL で Exampleware をテストするとします。このとき、新しいバージョンの PostgreSQL 向けのカスタムリポジトリーを作成できます。

Web UI をご利用の場合

カスタム PostgreSQL 製品を作成します。カスタム製品の作成後は、リポジトリー画面が表示されます。リポジトリーの作成 をクリックし、新しいリポジトリー向けのフォームを表示します。以下の詳細情報を入力します。

  • 名前: リポジトリーの簡単な名前。PostgreSQL 9.5 と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。RPM ファイル (yum)、Puppet モジュール (puppet)、または Docker イメージ (docker) のいずれかのリポジトリーを選択できます。本書のシナリオでは yum を選択します。新しいフィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL 。http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ と入力します。
  • ダウンロードポリシー: Satellite Server が実行する同期タイプを決定します。即時 を選択します。詳細は 「ダウンロードポリシーの使用」 を参照してください。
  • 同期時のミラーリング: アップストリームのリポジトリーにないコンテンツが同期中に削除されるようにします。デフォルトでチェックが入っているので、そのままにします。
  • チェックサム: リポジトリーのチェックサム。この例ではデフォルトで SHA256 となる Default にします。これが Red Hat Enterprise Linux 7 で必要となるチェックサムです。Red Hat Enterprise Linux 5 以前のバージョンでは、チェックサムに SHA1 を選択します。
  • HTTP での公開: リポジトリーを HTTP で公開可能にします。このオプションは自動的に選択されます。
  • GPG キー: このリポジトリーの GPG キー。これまでに作成した PostgreSQL 9.5 GPG キーを選択します。

保存 をクリックして、このリポジトリーエントリーを保存します。

リポジトリーは同期プランを使用して定期的に更新されますが、ここで初期同期を実行します。PostgreSQL 9.5 リポジトリーを選択して 同期開始 をクリックします。これでリポジトリーと外部 PostgreSQL リポジトリーとの同期が開始します。

注記

この同期の進捗状況では、コンテンツ > 同期の状態 ページで確認できます。

CLI をご利用の場合

以下のコマンドを実行してリポジトリーを作成します。

# hammer repository create \
--name "PostgreSQL 9.5" \
--content-type "yum" \
--publish-via-http true \
--url http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ \
--gpg-key "PostgreSQL 9.5" \
--product "PostgreSQL" \
--organization "ACME"

次にリポジトリーを同期します。

# hammer repository synchronize \
--name "PostgreSQL 9.5" \
--product "PostgreSQL" \
--organization "ACME"

これで PostgreSQL 9.5 の同期コピーが用意できました。さらに Puppet モジュールを含めて PostgreSQL サーバーを設定することができます。

注記

Web UI の製品ページには、URL ですべてのリポジトリーを見つけ、自分のカスタム製品に追加するよう選択できる リポジトリーの検出 機能があります。リポジトリーの検出 を使用して http://yum.postgresql.org/9.5/redhat/ を検索し、Red Hat Enterprise Linux の各バージョンおよびアーキテクチャー用の PostgreSQL 9.5 リポジトリーを一覧表示することができます。こうすることで、1 つのソースから複数のリポジトリーをインポートする時間を節約できます。

重要

Red Hat では、PostgreSQL から直接のアップストリーム RPM をサポートしていません。これらの RPM は同期プロセスのデモに使用されます。これらの RPM について問題がある場合は、PostgreSQL の開発者に連絡してください。

6.5. カスタム Puppet リポジトリーの作成

カスタム製品にも Puppet モジュールのリポジトリーを含めることができます。これを含めると、ホストの状態構成を組み込む方法が提供されます。

まず、PostgreSQL 製品のリポジトリーを作成します。

Web UI をご利用の場合

製品ページ (コンテンツ > 製品) を開いていることを確認します。PostgreSQL 製品をクリックするとリポジトリー一覧が表示されます。リポジトリーの作成 をクリックして、新規リポジトリーのフォームを表示します。以下の詳細を入力します。

  • 名前: リポジトリーの簡単な名前。PostgreSQL Puppet Modules と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。Puppet モジュールは手動でインポートしますが、Puppet モジュールの同期にはリポジトリーソースを使用できます。

保存 をクリックして、このリポジトリーエントリーを保存します。

CLI をご利用の場合

以下のコマンドを実行して Puppet モジュールリポジトリーを作成します。

# hammer repository create \
--name "PostgreSQL Puppet Modules" \
--content-type "puppet" \
--product "PostgreSQL" \
--organization "ACME"

これで Puppet モジュールのカスタムリポジトリーができました。モジュールを追加します。

6.6. 個別 Puppet モジュールの管理

このシナリオでは、PostgreSQL 設定用の Puppet モジュールを手動でインポートします。

Puppet Forge サイト (https://forge.puppetlabs.com/puppetlabs/postgresql) からこのモジュールをダウンロードします。ブラウザーでこのページを開き、download latest tar.gz をクリックしてローカルのファイルシステムに保存します。

Web UI をご利用の場合

PostgreSQL 製品のリポジトリー一覧ページを開いていることを確認します。PostgreSQL Puppet Modules リポジトリーをクリックし、そのリポジトリーの詳細ページを表示します。

Upload Puppet Module セクションに移動し、参照 をクリックして、ダウンロードした PostgreSQL Puppet Module を選択してアップロードします。数秒すると、Satellite Server が Content successfully uploaded メッセージを表示します。

注記

Puppet モジュールを管理したり、製品から Puppet モジュールを削除するには、Manage Puppet Modules ページをクリックします。

CLI をご利用の場合

以下のコマンドで、使用中の Satellite Server のファイルシステムに Puppet モジュールをコピーします。

[user@client ~]$ scp ~/puppet_module.tar.gz root@satellite.example.com:~/.

Puppet モジュールを PostgreSQL Puppet Modules リポジトリーにインポートします。

[root@satellite ~]# hammer repository upload-content \
--path ~/puppet_module.tar.gz \
--name "PostgreSQL Puppet Modules" \
--product "PostgreSQL" \
--organization "ACME"

これで RPM コンテンツを使用したサーバーをインストールして設定するのに使用する RPM コンテンツ と Puppet モジュールの両方が含まれるカスタムリポジトリーができました。

重要

Red Hat では、Puppet Forge からのモジュールをサポートしていません。PostgreSQL モジュールは、モジュール管理プロセスのデモのために使用されています。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。

6.7. Puppet リポジトリーの同期

Satellite Server は、アップロードした Puppet モジュールのリポジトリーを作成するだけでなく、完全な Puppet モジュールリポジトリーの同期ができます。この例では、Satellite Server は Puppet Forge リポジトリー全体を同期します。

Web UI をご利用の場合

コンテンツ > 製品 に移動し、新製品 をクリックします。新しい製品のフォームが表示されます。以下の詳細情報を入力します。

  • 名前: 製品の簡単な名前。Puppet Forge と入力します。
  • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • GPG キー: 製品全体の GPG キー。これは空白にします。
  • 同期プラン: 製品の同期計画。これは、前の章で作成した Example Plan にアタッチすることができます。
  • 説明: 製品の簡単な説明。All modules from Puppet Forge と入力します。

この情報を入力したら、保存 をクリックします。

カスタム製品の作成後は、リポジトリー画面が表示されます。リポジトリーの作成 をクリックし、新しいリポジトリー用のフォームを表示します。以下の詳細情報を入力します。

  • 名前: リポジトリーの簡単な名前。Puppet Forge Modules と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。http://forge.puppetlabs.com/ と入力します。

保存 をクリックして、このリポジトリーエントリーを保存します。

Puppet Forge Modules リポジトリーを選択し、同期開始 をクリックします。これで Puppet Forge から Satellite Server に全モジュールがインポートされます。

CLI をご利用の場合

製品を作成します。

# hammer product create \
--name "Puppet Forge" \
--sync-plan "Example Plan" \
--description "All modules from Puppet Forge" \
--organization "ACME"

Puppet Forge リポジトリーを作成します。

# hammer repository create \
--name "Puppet Forge Modules" \
--content-type "puppet" \
--product "Puppet Forge" \
--organization "ACME" \
--url http://forge.puppetlabs.com/

リポジトリーを同期します。

# hammer repository synchronize \
--name "Puppet Forge Modules" \
--product "Puppet Forge" \
--organization "ACME"
注記

Puppet Forge リポジトリーには数千のモジュールが含まれてるため、同期には時間がかかる場合があります。

重要

Red Hat では、Puppet Forge からのモジュールをサポートしていません。モジュールは、同期プロセスのデモのために使用されています。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。

6.8. Git リポジトリーからの Puppet Modules の同期

Red Hat Satellite 6 には pulp-puppet-module-builder と呼ばれるユーティリティーが含まれており、これは pulp-puppet-tools RPM から他のシステムにインストールできます。このツールは Git リポジトリーをチェックアウトし、全モジュールをビルドして、それらを Satellite 6 が同期できる構造で公開します。一般的な方法の 1 つは、Satellite Server 上でこのユーティリティーを実行し、ローカルディレクトリーに公開して、そのディレクトリーに対して同期するというものです。以下は例となります。

# mkdir /modules
# chmod 755 /modules
# pulp-puppet-module-builder \
--output-dir=/modules \
--url=git@mygitserver.com:mymodules.git \
--branch=develop

これで、Git リポジトリーの develop ブランチが git@mygitserver.com:mymodules.git からチェックアウトし、/modules に公開されます。このディレクトリーを Satellite Server の新規リポジトリーの URL (file:///modules) として追加します。以下は例となります。

Web UI をご利用の場合

カスタム製品を開き (ここでは例として MyProduct を使用) リポジトリーの作成 をクリックします。以下の詳細を入力します。

  • 名前: リポジトリーの簡単な名前。Modules from Git と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。file:///modules と入力します。

CLI をご利用の場合

Puppet Forge リポジトリーを作成します。

# hammer repository create \
--name "Modules from Git" \
--content-type "puppet" \
--product "MyProduct" \
--organization "ACME" \
--url file:///modules
注記

リモートの HTTP サーバー上にモジュールを公開する場合でも同じプロセスを実行します。たとえば、Puppet モジュールを公開する標準ウェブホストとして webserver.example.com を使用する場合は、ホストにログインして以下のコマンドを実行します。

# mkdir /var/www/html/modules/
# chmod 755 /var/www/html/modules/
# pulp-puppet-module-builder \
--output-dir=/var/www/html/modules/ \
--url=git@mygitserver.com:mymodules.git \
--branch=develop

Satellite Server では、リポジトリーの URL を http://webserver.example.com/modules/ に設定します。

6.9. Red Hat Satellite でカスタムファイルタイプリポジトリーの作成

Red Hat Satellite のカスタム製品には、カスタムファイルタイプのリポジトリーを追加することができます。これにより、製品に任意ファイルを組み込む一般的な方法が提供されました。SSH 鍵やソースコードファイルの配布をはじめ、仮想マシンイメージや ISO ファイルなどの大容量ファイルの配布などに使用できます。

リポジトリーにファイルをアップロードしたり、アップストリームの Satellite Server から同期したりすることができます。ファイルをカスタムのファイルタイプリポジトリーに置くと、特定のバージョンをコンテンツビューに追加して、さまざまな Capsule Server でファイルのリポジトリーを利用可能にするなどの通常の Satellite 管理機能を使用できます。クライアントは、curl -O で、HTTP または HTTPS からファイルをダウンロードする必要があります。

Satellite Server のファイルタイプリポジトリーはカスタム製品に対してのみ作成できますが、Satellite がインストールされているシステム、またはリモートの HTTP サーバーのディレクトリーに個別のファイルタイプリポジトリーを作成して、Satellite のそのディレクトリーのコンテンツを同期できます。この方法は、Satellite リポジトリーに追加するファイルが複数ある場合に便利です。

この例では、製品 (My File Product) を作成し、その製品にファイルタイプリポジトリー (My Files) を作成します。 Satellite 以外のファイルタイプリポジトリーの詳細は「付録E リモートファイルタイプリポジトリーの作成」を参照してください。

Web UI をご利用の場合

  1. カスタム製品の作成

    コンテンツ > 製品 に移動し、製品の作成 をクリックして、以下の詳細情報を入力します。

    • 名前: 製品の簡単な名前。My File Product と入力します。
    • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
    • GPG キー: 製品全体の GPG キー。これは空欄にします。
    • 同期プラン: 製品の同期計画。たとえば、前の章で作成した Example Plan です。
    • 説明: 製品の簡単な説明。My files と入力します。
  2. ファイルタイプリポジトリーの作成

    コンテンツ > 製品 に移動し、製品名をクリックします (この例では My File Product)。リポジトリー タブで 新規リポジトリー をクリックし、以下の詳細情報を入力します。

    • 名前: リポジトリーの簡単な名前。My Files と入力します。
    • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
    • タイプ: リポジトリーのコンテンツタイプ。file を選択します。
    • アップストリーム URL: ソースとして使用するアップストリームリポジトリーの URL。ファイルを手動でアップロードする場合は、空白のままにできます。
    • SSL の検証: アップストリームのリポジトリーの SSL 証明書が信頼できる認証機関 (CA) によって署名されていることを確認する場合のみ選択します。
    • アップストリームのユーザー名: 認証に必要な場合は、アップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
    • アップストリームのパスワード: アップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  3. 保存 をクリックして、このリポジトリーエントリーを保存します。

CLI をご利用の場合

  1. カスタム製品の作成

    # hammer product create \
    --name "My File Product" \
    --sync-plan "Example Plan" \
    --description "My files" \
    --organization "ACME"

    オプションのパラメーター

    gpg-key gpg_key_name

    検索するキー名

    gpg-key-id gpg_key_id

    GPG キー数値 ID

    sync-plan sync_plan_name

    検索する同期プラン名

    sync-plan-id sync_plan_id

    同期プランの数値 ID

  2. ファイルタイプリポジトリーの作成

    # hammer repository create \
    --name "My Files" \
    --content-type "file" \
    --product "My File Product" \
    --organization "ACME"

    オプションのパラメーター

    checksum-type sha_version

    リポジトリーのチェックサムです。現在、'sha1' および 'sha256' がサポートされています。

    download-policy policy_name

    yum リポジトリーのダウンロードポリシーです ('immediate'、'on_demand'、または 'background')。

    gpg-key gpg_key_name

    検索するキー名

    gpg-key-id gpg_key_id

    GPG キー数値 ID

    mirror-on-sync boolean

    同期する場合に、このリポジトリーをソースからミラーリングし、古い RPM を削除する必要がありますか? true または falseyes または no、もしくは 1 または 0 に設定します。

    publish-via-http boolean

    HTTP を使用して公開する必要がありますか? true または falseyes または no1 または 0 に設定します。

    upstream-username repository_username

    認証に必要な場合は、アップストリームリポジトリーユーザー

    upstream-password repository_password

    アップストリームリポジトリーユーザーのパスワード

    url source_repo_url

    ソースリポジトリーの URL

    verify-ssl-on-sync boolean

    URL の SSL 証明書が信頼できる CA によって署名されているのを Katello が確認する必要がありますか? true または falseyes または no、もしくは 1 または 0 に設定します。

6.10. Red Hat Satellite へのカスタムファイルタイプリポジトリーへのファイルのアップロード

Web UI をご利用の場合

  1. コンテンツ > 製品 に移動します。
  2. カスタム製品の名前を選択します (例: My File Product)。
  3. ファイルタイプリポジトリーの名前を選択します (例: My Files)。
  4. 参照 をクリックして、アップロードするファイルを選択します。
  5. アップロード をクリックして、選択したファイルを Satellite Server にアップロードします。
  6. リポジトリーを公開した URL を開いて、ファイルを表示します。

CLI をご利用の場合

# hammer repository upload-content \
--product "My File Product" \
--name "My Files" \
--organization "ACME" \
--path example_file

--path オプションは、ファイル、ファイルディレクトリー、またはファイルの glob 表現を示します。glob は、一重引用符または二重引用符でエスケープする必要があります。

6.11. Red Hat Satellite のカスタムファイルタイプリポジトリーからホストにファイルのダウンロード

curl -O を実行して、HTTPS (HTTP での公開 リポジトリーを選択している場合は HTTP でも可能) でクライアントにファイルをダウンロードします。

前提条件

Web UI をご利用の場合

  1. コンテンツ > 製品 に移動します。
  2. カスタム製品の名前を選択します (例: My File Product)。
  3. ファイルタイプリポジトリーの名前を選択します (例: My Files)。
  4. HTTP での公開 が有効になっているかどうかを確認します。有効になっていない場合は、HTTPS を使用するための証明書が必要です。
  5. リポジトリーを公開した URL をコピーします。

CLI をご利用の場合

  1. ファイルタイプリポジトリーを一覧表示します。

    # hammer repository list --content-type file
    ---|----------|-----------------|--------------|----
    ID | NAME     | PRODUCT         | CONTENT TYPE | URL
    ---|----------|-----------------|--------------|----
    7  | My Files | My File Product | file         |
    ---|----------|-----------------|--------------|----
  2. リポジトリー情報を表示します。

    # hammer repository info --name "My Files" --product "My File Product" --organization-id 1
    • HTTP が有効な場合、出力は以下のようになります。
    Publish Via HTTP:   yes
    Published At:       http://satellite.example.com/pulp/isos/uuid/
    • HTTP が無効な場合、出力は以下のようになります。
    Publish Via HTTP:   no
    Published At:       https://satellite.example.com/pulp/isos/uuid/

クライアントに、適切な HTTP または HTTPS の形式でコマンドの入力:

  • HTTP の場合:

    # curl -O satellite.example.com/pulp/isos/uuid/my_file
  • HTTPS の場合:

    # curl -O --cert ./Default\ Organization-key-cert.pem  --cacert katello-server-ca.crt satellite.example.com/pulp/isos/uuid/my_file

6.12. ローカルディレクトリーにカスタムのファイルタイプリポジトリーの作成

pulp-manifest を使用して、Satellite Server の外部にあるファイルのディレクトリーから、カスタムファイルタイプリポジトリーを作成します。その後、Satellite Server にファイルを同期します。ファイルタイプリポジトリーにファイルを追加すると、他のリポジトリーと同じようにファイルを操作できます。

この手順は、Satellite がインストールされているベースシステムのディレクトリーにリポジトリーを設定する方法を説明します。リモートサーバーのディレクトリーへファイルタイプのリポジトリーを作成する方法は「付録E リモートファイルタイプリポジトリーの作成」を参照してください。

ローカルディレクトリーへのファイルタイプリポジトリーの作成:

  1. サーバーおよび Satellite Tools リポジトリーが有効になっていることを確認します。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.4-rpms
  2. Pulp マニフェストパッケージをインストールします。

    # yum install python-pulp-manifest
  3. HTTP サーバーのパブリックフォルダーのファイルタイプリポジトリーとして使用するディレクトリーを作成します。

    # mkdir my_file_repo
  4. ディレクトリーにファイルを追加して、テストファイルを作成します。

    # touch my_file_repo/test.txt
  5. Pulp マニフェストコマンドを入力して、マニフェストを作成します。

    # pulp-manifest my_file_repo
  6. マニフェストが作成されたことを確認します。

    # ls my_file_repo
    PULP_MANIFEST  test.txt

ローカルディレクトリーのファイルタイプリポジトリーからのファイルのインポート:

  1. Satellite Server にカスタム製品が存在することを確認します。この例では My File Product を使用します。
  2. ファイルタイプリポジトリーの作成:

    1. Satellite Web UI で、コンテンツ > 製品 に移動します。
    2. 製品の名前を選択します (この例では My File Product)。
    3. リポジトリー タブで 新規リポジトリー を選択し、以下の詳細を入力します。

      • 名前: リポジトリーの簡単な名前。My Files と入力します。
      • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
      • タイプ: リポジトリーのコンテンツタイプ。file を選択します。
      • アップストリーム URL: ソースとして使用するリポジトリーを使用したローカルディレクトリーへのパス (file:///my_file_repo の形式)。
      • SSL の検証: このフィールドに何も入力されていないことを確認します。
      • アップストリームのユーザー名: このフィールドが何も入力されていないことを確認します。
      • アップストリームのパスワード: このフィールド何も入力されていないことを確認します。
  3. 保存 をクリックして、このリポジトリーエントリーを保存します。
  4. ファイルタイプリポジトリーのアップデート:

    1. コンテンツ > 製品 に移動します。
    2. 製品の名前を選択します (この例では My File Product)。
    3. アップデートするリポジトリーの名前を選択します (この例では My Files)。
    4. アクションの選択 メニューから 同期開始 を選択します。
    5. リポジトリーを公開した URL を開いて、ファイルを表示します。

6.13. カスタムのコンテナーイメージリポジトリーの作成

カスタムの製品には、プライベートの Docker 形式のコンテナーイメージのリポジトリーを含める事ができます。

Web UI をご利用の場合

コンテンツ > 製品 に移動します。名前で製品を選択します。製品 ページで 新規リポジトリー を選択し、新規 ページで以下の情報を入力します。

  • 名前: プレーンテキスト形式のリポジトリー名。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーの種類。docker を選択します。
  • アップストリーム URL: ソースとして使用するリポジトリーの URL。
  • アップストリームのユーザー名: 認証に必要な場合は、アップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  • アップストリームのパスワード: プライベートのアップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。

保存 をクリックして、このリポジトリーエントリーを保存します。

第7章 アプリケーションライフサイクルの作成

「アプリケーションライフサイクルの定義」 では、アプリケーションライフサイクルを定義し、それが Red Hat Satellite 6 にとって重要な理由を説明しました。本章では、アプリケーションライフサイクルのプランニングと Red Hat Satellite 6 での実装を説明します。

7.1. アプリケーションライフサイクルの再検討

ここまで見てきたように、アプリケーションライフサイクルはあるステージでシステムがどのように表示されるかを定義します。しかし、実際のライフサイクルは、組織と、組織が特定の実稼働チェーンを構成する方法によって異なります。

たとえば、メールサーバーの場合は、実際の使用における実稼働レベルのサーバーと、最新のメールサーバーパッケージをテストするテストサーバーという、単純なアプリケーションライフサイクルのみを必要とします。テストサーバーが初期段階をパスすれば、実稼働レベルのサーバーで新パッケージを使用するように設定できます。

別の例としては、ソフトウェア製品の開発ライフサイクルがあります。開発環境でソフトウェアの新しい部分を開発し、品質保証環境でこれをテストしてベータ版としてプレリリースした後、実稼働レベルのアプリケーションとしてリリースします。

各アプリケーションライフサイクルでは、環境 と呼ばれる段階を使用します。各環境は、システムに対して特定の状態として機能します。各環境は前の環境に続くもので、アプリケーションライフサイクルを構成することになる環境チェーンを作り出します。アプリケーションライフサイクルはそれぞれ、初期の ライブラリー が備わった状態で開始し、これは Definitive Media Library (DML) 内の中央ソースとして機能します。ライブラリー環境には、ここまでの章で同期した全コンテンツが含まれています。ここからは、ライブラリー環境からリンクされる新たな環境を作成します。

7.2. 新規アプリケーションライフサイクルの作成

本書のシナリオでは、ACME の Exampleware を開発してリリースする単純なアプリケーションライフサイクルを作成します。初期環境にライブラリー環境を使用し、その後 開発テスト、および 実稼働 の 3 つの環境をこの順に続けます。

Web UI をご利用の場合

コンテンツ > ライフサイクル環境 に移動します。お使いのアプリケーションライフサイクルにおける現在の環境が表示されます。この時点では、ライブラリー環境しか存在しません。

新規環境パス をクリックして、新規のアプリケーションライフサイクルを起動します。ライブラリーに新規環境を追加するフォームが表示されます。名前Development と入力すると、ラベル が自動的に完了します。説明Environment for ACME’s Development Team と入力します。保存 をクリックします。

環境一覧に戻ります。開発環境の新たなテーブルが表示されます。このテーブルは、新規のアプリケーションライフサイクルを示します。これで残りの環境をアプリケーションライフサイクルに追加できます。

新規テーブルの上にある 新規環境の追加 をクリックします。名前Testing説明Environment for ACME’s Quality Engineering Team と入力して、保存 をクリックします。

再度 新規環境の追加 をクリックします。名前Production説明Environment for ACME's Product Releases と入力して、保存 をクリックします。

これで DevelopmentTesting、および Production という 3 つの環境が揃ったテーブルのアプリケーションライフサイクルが表示されます。

CLI をご利用の場合

各環境で hammer lifecycle-environment create を実行します。前の環境を指定するには、以下のように --prior オプションを使用します。

# hammer lifecycle-environment create \
--name "Development" \
--description "Environment for ACME's Development Team" \
--prior "Library" \
--organization "ACME"
# hammer lifecycle-environment create \
--name "Testing" \
--description "Environment for ACME's Quality Engineering Team" \
--prior "Development" \
--organization "ACME"
# hammer lifecycle-environment create \
--name "Production" \
--description "Environment for ACME's Product Releases" \
--prior "Testing" \
--organization "ACME"

hammer lifecycle-environment paths コマンドでチェーンを確認できます。

# hammer lifecycle-environment paths --organization "ACME"
-----------------------------------------------
LIFECYCLE PATH
-----------------------------------------------
Library >> Development >> Testing >> Production
-----------------------------------------------

7.3. Capsule Server へのライフサイクル環境の追加

以下の手順は、Capsule Server を使用してコンテンツをプロビジョニングする環境に対するオプションです。

Capsule Server でコンテンツ機能が有効な場合は、環境を追加する必要があります。環境を追加すると、Capsule Server で Satellite Server のコンテンツを同期し、コンテンツをホストシステムに提供できます。

Capsule Server は、Satellite Server の Hammer CLI、または Web UI を使用して設定できます。

Web UI をご利用の場合

インフラストラクチャー > Capsule に移動し、Capsule を選択します。

編集 をクリックします。

ライフサイクル環境タブで Env を選択します。

カプセルのコンテンツを同期するには、概要タブの 同期 ボタンをクリックします。

以下のいずれかのオプションを選択します。

  • 最適同期
  • 完全同期

CLI をご利用の場合

Capsule Server の一覧を表示し、ID を書き留めます。

# hammer capsule list

その ID を使用して、Capsule Server の詳細を確認します。

# hammer capsule info --id capsule_id_number

利用可能なライフサイクル環境を確認し、環境 ID を書き留めます。

# hammer capsule content available-lifecycle-environments \
--id capsule_id_number

利用可能なライフサイクル環境は Capsule Server に対して利用可能ですが、現在接続されていません。

ライフサイクル環境を Capsule Server に追加します。

# hammer capsule content add-lifecycle-environment \
--id capsule_id_number --environment-id environment_id_number

Capsule Server に追加する各ライフサイクル環境に対して手順を繰り返します。

Satellite Server 環境のすべてのコンテンツを Capsule Server に同期するには、以下のコマンドを実行します。

# hammer capsule content synchronize --id capsule_id_number

Satellite Server 環境の特定のライフサイクル環境を Capsule Server と同期するには、以下のコマンドを実行します。

# hammer capsule content synchronize --id external_capsule_id_number \
--environment-id environment_id_number

ライフサイクル環境への作業は、『Red Hat Satellite 6 のプランニング』の「ライフサイクル環境」を参照してください。

7.4. アプリケーションライフサイクルでのコンテンツのプロモーション

アプリケーションライフサイクルのチェーンでは、コンテンツはある環境から次の環境に移動します。このプロセスは プロモーション と呼ばれます。プロモーションはアプリケーションライフサイクルでコンテンツを管理する基礎となるもので、これを理解することは重要です。

本ガイドのシナリオでは、ACME の Exampleware の開発が完了しており、実稼働しているとします。ACME は Exampleware コンテンツを RPM ファイルにパッケージ化し、これは別製品の一部となります。この状態では、ACME は Exampleware のバージョン 1.0 をリリースしており、このため exampleware-1.0-0.noarch.rpm が実稼働環境にあることになります。

ACME では、Exampleware のパッチをリリースするために、Exampleware バージョン 1.1 の開発を開始します。この例では、アプリケーションライフサイクルの環境に以下の Exampleware のバージョンが含まれます。

開発テスト実稼働

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

ACME では、パッチ開発の完了後、RPM をテスト環境にプロモートして、ACME の品質保証エンジニアチームがレビューできるようにします。この時点では、アプリケーションライフサイクルに以下のバージョンが含まれます。

開発テスト実稼働

exampleware-1.1-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

品質保証エンジニアチームがレビューを行う間、開発チームは Exampleware 2.0 の作業に着手します。このため、アプリケーションライフサイクルは以下のようになります。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

品質保証エンジニアチームがパッチのレビューを完了し、Exampleware 1.1 をリリースする準備が完了しました。ACME は 1.1 を実稼働環境にプロモートします。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

開発チームが Exampleware 2.0 の作業を完了し、これをテスト環境にプロモートします。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

最後に品質保証エンジニアチームがこのパッケージのレビューを行います。レビューが完了したら、パッケージを実稼働環境にプロモートします。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

この例では、ACME の開発プロセスを Red Hat Satellite 6 アプリケーションライフサイクルにマッピングする手順を説明します。各環境には、Red Hat Satellite 6 に登録したシステムが含まれ、そのシステムがアクセスできるのは、各環境に関連するリポジトリーに限られます。ある環境から次の環境にパッケージをプロモートすると、プロモート先のリポジトリーはパッケージの新バージョンを受け取ります。この結果、プロモート先の環境にあるシステムはパッケージを新バージョンに更新することができます。

次章では、コンテンツビュー という概念を説明します。これは、ライブラリーから収集されフィルタリングされたコンテンツのコレクションで、リポジトリーに公開されたものです。Red Hat のリポジトリーとこれまでに同期したカスタムリポジトリーはソースコンテンツとして機能しますが、コンテンツビューは作成したリポジトリーがどのように表示されるかをカスタマイズするものです。コンテンツビューにはパッケージが含まれ、Satellite Server はアプリケーションライフサイクルの各環境にコンテンツビューをプロモートします。ある環境でコンテンツビュー (バージョン 1.0) を使用していても、次に新バージョン (バージョン 1.1) のコンテンツビューを受け取ります。この場合、バージョン 1.0 のリポジトリーは、Exampleware RPM の新バージョンが含まれているバージョン 1.1 のリポジトリーに置き換えられます。

7.5. Red Hat Satellite Capsule Server へのライフサイクル環境の追加

新たに作成した Red Hat Satellite Capsule Server でコンテンツ機能が有効な場合は、Capsule Server に、Satellite Server からコンテンツを同期し、ホストシステムにコンテンツを同期するために有効にする環境を追加する必要があります。

重要

Satellite Capsule Server は、Satellite Server のコマンドラインインターフェース (CLI) で設定します。Satellite Server 上ですべての hammer コマンドを実行します。

Satellite Capsule Server への環境の追加:

  1. root で Satellite Server CLI にログインします。
  2. 一覧から使用する Red Hat Satellite Capsule Server を選択し、その ID を書き留めます。

    # hammer capsule list

    Satellite Capsule Server の詳細を確認するには、以下のコマンドを入力します。

    # hammer capsule info \
    --id capsule_id_number
  3. Red Hat Capsule Server に利用できるライフサイクル環境の一覧を確認し、環境 ID を書き留めます。

    # hammer capsule content available-lifecycle-environments \
    --id capsule_id_number

    ここで、

    available-lifecycle-environments は、Satellite Capsule で利用できるライフサイクル環境ですが、現時点では Satellite Capsule にアタッチされていません。

  4. Satellite Capsule Server にライフサイクル環境を追加します。

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id_number \
    --environment-id environment_id_number

    ここで、

    • capsule_id_number は、Satellite Capsule Server の ID 番号です。
    • environment_id_number は、ライフサイクル環境の ID 番号です。

    Capsule Server に追加するすべてのライフサイクル環境に対してこの手順を繰り返します。

  5. Satellite Server の環境にあるコンテンツを Satellite Capsule Server に同期します。

    # hammer capsule content synchronize \
    --id capsule_id_number

    外部 Satellite Capsule Server に複数のライフサイクル環境がある場合、同期が必要なライフサイクル環境は 1 つだけとなります。環境 ID 番号を指定して、特定の環境にターゲットを絞ることができます。

    # hammer capsule content synchronize \
    --id external_capsule_id_number \
    --environment-id environment_id_number

7.6. コンテンツビューのプロモート

コンテンツビューと、2 つ以上のライフサイクル環境から構成される環境パスを作成したら、必要に応じてコンテンツビューを次の環境にプロモートできます。つまり、指定された環境に存在するコンテンツビューの最新バージョンが、ライフサイクル環境パスの次の環境にプロモート (つまり、コピー) されます。

コンテンツビューは、そのバージョンが存在しない環境にプロモートできます。ライフサイクル環境パスの次の環境が自動的に提示されますが、この値は上書きでき、必要に応じて別の環境にプロモートできます。

コンテンツビューのプロモート:

  1. メインメニューで、コンテンツ > コンテンツビュー をクリックします。
  2. 名前 列で、プロモートするコンテンツビューの名前をクリックします。
  3. バージョン タブで最新バージョンを選択し、プロモート をクリックします。
  4. コンテンツビューをプロモートするプロモーションパスを指定し、適切なライフサイクル環境を選択し、バージョンのプロモート をクリックします。
  5. プロモーションが完了したら、バージョン タブが更新され、コンテンツビューの新しいステータスが表示します。

7.7. Satellite Server からのライフサイクル環境の削除

以下の手順では、Red Hat Satellite からライフサイクル環境を削除する方法を説明します。

ライフサイクル環境の削除:

  1. メインメニューで、コンテンツ > ライフサイクル環境 をクリックします。
  2. 削除するライフサイクル環境の名前をクリックし、環境の削除 をクリックします。
  3. 確認ダイアログボックスで、削除 をクリックして環境を削除します。
注記

環境パスの最新の環境だけが削除できます。たとえば、3 つの環境 LibraryDevProd がこの順序で存在する場合は、Dev を削除する前に Prod を削除する必要があります。Library 環境は削除できません。

7.8. Capsule Server からのライフサイクル環境の削除

ライフサイクル環境を Capsule Server から削除する理由は複数あります。以下のような理由があります。

  • ライフサイクル環境とホストシステムとの関連性がなくなった場合
  • ライフサイクル環境が Capsule Server に誤って追加された場合

Capsule Server からのライフサイクル環境の削除:

  1. root ユーザーで Satellite Server CLI にログインします。
  2. 一覧から使用する Capsule Server を選択し、その ID を書き留めます。

    # hammer capsule list

    Capsule Server の詳細を確認するには、以下のコマンドを実行します。

    # hammer capsule info \
    --id capsule_id_number
  3. Capsule Server に現在アタッチされているライフサイクル環境の一覧を確認し、環境 ID を書き留めます。

    # hammer capsule content lifecycle-environments \
    --id capsule_id_number
  4. Capsule Server からのライフサイクル環境を削除します。

    # hammer capsule content remove-lifecycle-environment \
    --id capsule_id_number \
    --environment-id environment_id_number

    ここで、

    • capsule_id_number は、Capsule Server の ID 番号です。
    • environment_id_number は、ライフサイクル環境の ID 番号です。

      Capsule Server から削除するすべてのライフサイクル環境に対してこの手順を繰り返します。

  5. Satellite Server の環境にあるコンテンツを Capsule Server に同期します。

    # hammer capsule content synchronize \
    --id capsule_id_number

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

本章では、さまざまなコンテンツビューを作成し、各種フィルターを適用する方法を説明します。

8.1. コンテンツビューの理解

Red Hat Satellite 6 では、コンテンツビューを使用して Definitive Media Library (DML) のコアリポジトリーからカスタマイズリポジトリーを作成します。使用するリポジトリーを定義し、特定のフィルターをコンテンツに適用することで、これが作成されます。このフィルターにはパッケージフィルター、パッケージグループフィルター、およびエラータフィルターが含まれます。コンテンツビューは、特定の環境が使用するソフトウェアのバージョンを定義する方法として使用されます。前章でも説明したように、実稼働環境で古いバージョンのパッケージを含むコンテンツビューが使用され、開発環境で新しいバージョンのパッケージを含むコンテンツビューが使用されることがあります。

コンテンツビューは各環境でリポジトリーセットを作成し、Satellite Server がこれを保存、管理します。アプリケーションライフサイクルの次の環境にコンテンツビューをプロモートすると、それに対応する Satellite Server のリポジトリーがパッケージを更新して公開します。たとえば、Exampleware パッケージが含まれているコンテンツビューを使用するとします。

 開発テスト実稼働

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

バージョン 2 - exampleware-1.1-0.noarch.rpm

バージョン 1 - exampleware-1.0-0.noarch.rpm

バージョン 1 - exampleware-1.0-0.noarch.rpm

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

 開発テスト実稼働

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

バージョン 2 - exampleware-1.1-0.noarch.rpm

バージョン 2 - exampleware-1.1-0.noarch.rpm

バージョン 1 - exampleware-1.0-0.noarch.rpm

こうすることで、システムは特定の環境専用となり、その環境が新しいコンテンツビューを使用する際には更新を受け取ることができます。

フィルタリングとスナップショットを行うコンテンツビューを作成する一般的なフローは次のようになります。

  1. コンテンツビューを作成します。
  2. コンテンツビューに使用するリポジトリーと Puppet モジュールを追加します。
  3. 任意で、コンテンツビューのコンテンツを調整するフィルターを 1 つまたは複数作成します。
  4. コンテンツビューを公開します。
  5. コンテンツホストをコンテンツビューにアタッチします。
  6. 任意で、コンテンツビューを別の環境にプロモートします。
注記

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

注記

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

8.2. 標準コンテンツビュー

標準コンテンツビューは、1 台のホストに関連付けることができる 1 つのコンテンツビューです。

8.2.1. シンプルなコンテンツビューの作成

この例では、2 つのリポジトリーが含まれ、フィルターは設定されていないシンプルなコンテンツビューを作成します。Red Hat Enterprise Linux リポジトリーと Satellite Tools リポジトリーを使用します。このコンテンツビューには Red Hat Enterprise Linux の全 RPM が含まれるので、公開には数分かかる場合があります。

Web UI をご利用の場合

コンテンツ > コンテンツビュー に移動し、新規ビューの作成 をクリックします。ビューの詳細 フォームが表示されるので、以下の情報を入力します。

  • 名前: ビューの簡単な名前。Base と入力します。
  • ラベル: ビューの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • 説明: ビューの簡単な説明。Base operating system と入力します。
  • 複合ビュー?: 複合コンテンツビューを使用するかどうかを定義します。チェックを外しておきます。

保存 をクリックします。

これでコンテンツビューの新規エントリーが作成され、リポジトリーを追加することができるようになりました。Red Hat Enterprise Linux 7 Server RPMs (Kickstart RPMs ではありません) と Red Hat Satellite Tools のリポジトリーを選択し、リポジトリーの追加 をクリックします。これらのリポジトリーの全パッケージがコンテンツビューに追加されます。

これでコンテンツビューを公開する準備ができました。バージョン に移動し、新規バージョンの公開 をクリックします。Satellite Server によって新規バージョン (バージョン 1) の詳細が提供されます。説明 に、このバージョンの説明を入力できるので、新規コンテンツビューの変更点を記録しておくと便利です。Initial content view for our operating system と入力し、保存 をクリックします。

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

CLI をご利用の場合

リポジトリー ID の一覧を取得します。

# hammer repository list --organization "ACME"

この例では、2 つのリポジトリーはそれぞれ ID に 1 と 2 を使用しています。

ID名前

1

Red Hat Enterprise Linux 7 Server RPMs x86_64 7Server

2

Red Hat Satellite Tools 6.4 for RHEL 7 Server RPMs x86_64

コンテンツビューを作成し、リポジトリーに追加します。

# hammer content-view create \
--name "Base" \
--description "Base operating system" \
--repository-ids 1,2 \
--organization "ACME"

ビューを公開します。

# hammer content-view publish \
--name "Base" \
--description "Initial Content View for our operating system" \
--organization "ACME"

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

8.2.2. Puppet モジュールを含むコンテンツビューの作成

この例では、 1 つのリポジトリーが含まれ、フィルターは設定されていないコンテンツビューを作成します。PostgreSQL リポジトリーを使用します。

Web UI をご利用の場合

コンテンツ > コンテンツビュー に移動し、新規ビューの作成 をクリックします。ビューの詳細 フォームが表示されるので、以下の情報を入力します。

  • 名前: ビューの簡単な名前。Database と入力します。
  • ラベル: ビューの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • 説明: ビューの簡単な説明。PostgreSQL Database と入力します。
  • 複合ビュー?: 複合コンテンツビューを使用するかどうかを定義します。チェックを外しておきます。

保存 をクリックします。

これでコンテンツビューの新規エントリーが作成されます。PostgreSQL のリポジトリーを選択し、リポジトリーの追加 をクリックします。PostgreSQL リポジトリーの全パッケージがコンテンツビューに追加されます。

Puppet モジュール に移動し、新規モジュールの追加 をクリックします。インポート済みの Puppet モジュールが表示されます。postgresql モジュールに移動し、バージョンの選択 をクリックします。

最新を使用 のエントリーに移動し、アクション コラムの バージョンの選択 をクリックします。

Puppet モジュールがコンテンツビューに追加されました。新しいバージョンを公開します。

バージョン に移動し、新規バージョンの公開 をクリックします。説明Initial RPMs and Puppet module for database と入力し、保存 をクリックします。

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

CLI をご利用の場合

リポジトリー ID の一覧を取得します。

# hammer repository list --organization "ACME"

必要になるのは PostgreSQL RPM リポジトリーのみで、Puppet モジュールリポジトリーは必要ありません。この例では、PostgreSQL RPMs の ID に 4 を使用します。

ID名前

4

PostgreSQL 9.5

コンテンツビューを作成し、リポジトリーに追加します。

# hammer content-view create \
--name "Database" --description "PostgreSQL Database" \
--repository-ids 4 \
--organization "ACME"

ビューを公開します。

# hammer content-view publish \
--name "Database" \
--description "Initial RPMs and Puppet module for database" \
--organization "ACME"

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

8.3. 複合コンテンツビュー

複合コンテンツビューは、複数のコンテンツビューのコンテンツを組み合わせます。たとえば、ベース OS とアプリケーションの管理に別々のコンテンツビューを使用していたとします。複合コンテンツビューを使用すると、この 2 つのコンテンツビューのコンテンツを新たなリポジトリーに統合できます。元のコンテンツビューのリポジトリーはそのまま存在しますが、組み合わされたコンテンツには新規リポジトリーが使用されます。

本ガイドのシナリオでは、企業が異なるデータベースサーバーをサポートするアプリケーションを開発しているとします。一般的なアプリケーションスタックは以下のようになります。

Exampleware スタック

アプリケーション

データベース

オペレーティングシステム

この企業が以下の 4 つのコンテンツビューを作成するとします。

  • Red Hat Enterprise Linux (オペレーティングシステム)
  • PostgreSQL (データベース)
  • MariaDB (データベース)
  • Exampleware (アプリケーション)

すると、次に 2 つの複合コンテンツビューを作成できます。1 つ目には PostgreSQL データベースを使います。

複合コンテンツビュー 1: PostgreSQL 上の Exampleware

Exampleware (アプリケーション)

PostgreSQL (データベース)

Red Hat Enterprise Linux (オペレーティングシステム)

もう 1 つには MariaDB を使います。

複合コンテンツビュー 2: MariaDB 上の Exampleware

Exampleware (アプリケーション)

MariaDB (データベース)

Red Hat Enterprise Linux (オペレーティングシステム)

これで各コンテンツビューは別個に管理、公開されます。アプリケーションスタックの新バージョンを作成すると、複合コンテンツビューの新バージョンを公開することになります。複合コンテンツビューの作成時に、自動公開 オプションを選択することも可能です。そうすると、複合コンテンツビューに含まれるコンテンツビューが再公開されると、自動的に複合コンテンツビューが再公開されます。

重要

複合コンテンツビューは、各リポジトリーで 1 つしか許可されません。たとえば、同じリポジトリーを使用した 2 つのコンテンツビューを 2 つを追加しようとすると、Satellite Server はエラーをレポートします。

8.3.1. 複合コンテンツビューの作成

既存のコンテンツビューを 2 つ組み合わせたコンテンツビューを ACME 用に作成します。

Web UI をご利用の場合

コンテンツ > コンテンツビュー に移動して 新規ビューの作成 をクリックします。以下の詳細を入力します。

  • 名前: Stack
  • 説明: A stack that includes a base operating system and a database
  • 複合ビュー?: これを選択して、複合コンテンツビューを作成します。
  • 自動公開: 複合コンテンツビューに含まれるコンテンツビューが再公開されると、自動的に複合コンテンツビューを再公開する場合は、これを選択します。

複合コンテンツビュー用のコンテンツビュー一覧が表示されます。Base と Database の両方のコンテンツビューを選択します。Base コンテンツビューには 2 つのバージョンが含まれているため、そのいずれかを選択します。ここでは、エラータフィルターが含まれているバージョン 2 を選択します。コンテンツビューとバージョンを選択したら、コンテンツビューの追加 をクリックします。

新バージョンの公開 をクリックして、複合コンテンツビューを公開します。説明Initial version of Stack と入力して 保存 をクリックします。

公開が完了すると、コンテンツ コラムに、追加した全コンテンツビューのパッケージ、エラータ、Puppet モジュールの数がレポートされます。

この複合コンテンツビューを 開発テスト実稼働 の各環境に プロモート します。

通常のコンテンツビューと同じように、複合コンテンツビューもアプリケーションライフサイクルの各環境で公開、プロモートされていることが確認できます。

CLI をご利用の場合

複合コンテンツビューを作成する前に、既存のコンテンツビューのバージョン ID が必要になります。

# hammer content-view version list \
--full-results true \
--organization "ACME"

本シナリオでは、Database v1.0 のバージョン ID は 5 で、Base v2.0 のバージョン ID は 6 になります。Stack という名前の新規の複合コンテンツビューを作成し、--component-ids オプションでバージョン ID を渡します。--auto-publish オプションが yes に設定されている場合には、複合コンテンツビューに含まれるコンテンツビューが再公開されると、複合コンテンツビューが自動的に再公開されます。

# hammer content-view create \
--composite \
--auto-publish yes \
--name "Stack" \
--description "A stack that includes a base operating system and a database" \
--component-ids 5,6 \
--organization "ACME"

複合コンテンツビューを公開します。

# hammer content-view publish \
--name "Stack" \
--description "Initial version of Stack" \
--organization "ACME"

複合コンテンツビューを全環境にプロモートします。

# hammer content-view version promote \
--content-view "Stack" \
--version 1 \
--to-lifecycle-environment "Development" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Stack" \
--version 1 \
--to-lifecycle-environment "Testing" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Stack" \
--version 1 \
--to-lifecycle-environment "Production" \
--organization "ACME"

8.4. コンテンツフィルター

コンテンツビューでは、フィルターを使用して特定の RPM コンテンツを含めたり制限したりします。フィルターを使用しないと、選択したリポジトリーのものがすべて含まれてしまいます。

コンテンツフィルターは以下のいずれかのタイプになります。

  • 組み込み: ビューに組み込むコンテンツを定義します。このフィルターにはコンテンツが含まれていないので、選択したリポジトリーから追加するコンテンツを選択します。複数のコンテンツアイテムを組み合わせる場合には、このフィルターを使用します。
  • 除外: ビューから除外するコンテンツを定義します。このフィルターには、選択したリポジトリーのコンテンツがすべて含まれているため、除外するコンテンツを選択します。リポジトリーのほとんどのコンテンツを使用するものの、ブラックリスト化されたパッケージなど、特定のパッケージは除外する場合にこのフィルターを使用します。このフィルターでは、リポジトリーにある、選択したコンテンツ以外のすべてのコンテンツを使用します。
注記

組み込みと除外のフィルターを組み合わせたコンテンツビューを公開すると、最初に組み込みフィルターが適用され、次に除外フィルターが適用されます。この場合、組み込むコンテンツを選択し、このサブセットから除外するコンテンツを選択することになります。

また、フィルターの対象となるコンテンツには以下の 4 つのタイプがあります。

  • パッケージ: 名前とバージョンに基づいてパッケージにフィルターを適用します。
  • パッケージグループ: フィルターに追加するパッケージグループを選択します。パッケージグループ一覧は、コンテンツビューに追加されたリポジトリーに基づきます。
  • エラータ - ID 別: フィルターに追加する特定のエラータを選択します。エラータ一覧は、コンテンツビューに追加されたリポジトリーに基づきます。
  • エラータ - 日付およびタイプ別: フィルターに追加する発行済みまたは更新済みのエラータの日付範囲およびタイプ (バグ修正、機能強化、またはセキュリティー)を選択します。
重要

フィルターは、フィルター内に記載されているパッケージの依存関係を解決するものではありません。フィルターにパッケージの依存関係を追加してください。必要な依存関係の判定には、テストが必要になる場合があります。

コンテンツフィルターの使用例を見ていきましょう。

例 1

ベースの Red Hat Enterprise Linux パッケージでリポジトリーを作成します。このフィルターでは、Red Hat Enterprise Linux リポジトリーがコンテンツビューに追加されている必要があります。

フィルター:

  • 包含タイプ: 組み込み
  • コンテンツタイプ: パッケージグループ
  • フィルター: Base パッケージグループのみを選択します。

例 2

セキュリティーアップデートを除く、特定日以降の全エラータを除外するリポジトリーを作成します。重要なセキュリティーアップデートは即座に適用すべきですが、その他のシステムアップデートを定期的に実行する場合などにこれは便利です。このフィルターでは、Red Hat Enterprise Linux リポジトリーがコンテンツビューに追加されている必要があります。

フィルター:

  • 包含タイプ: 除外
  • コンテンツタイプ: エラータ - 日付およびタイプ別
  • フィルター: バグ修正機能強化 のエラータタイプのみを選択し、セキュリティー の選択は解除します。日付タイプ更新日 に設定します。エラータを制限する日付を 開始日 に設定します。終了日 は空白にして、セキュリティー以外の新たなエラータにフィルターが適用されないようにします。

例 3

例 1 と例 2 の組み合わせで、ベース OS パッケージのみが必要ですが、最近のバグ修正と機能強化エラータを除外します。この場合、同一のコンテンツビューに 2 つのフィルターが適用されている必要があります。コンテンツビューは組み込みフィルターを最初に適用してから、除外フィルターを適用します。

フィルター 1:

  • 包含タイプ: 組み込み
  • コンテンツタイプ: パッケージグループ
  • フィルター: Base パッケージグループのみを選択します。

フィルター 2:

  • 包含タイプ: 除外
  • コンテンツタイプ: エラータ - 日付およびタイプ別
  • フィルター: バグ修正機能強化 のエラータタイプのみを選択し、セキュリティー の選択は解除します。日付タイプ更新日 に設定します。エラータを制限する日付を 開始日 に設定します。終了日 は空白にして、セキュリティー以外の新たなエラータにフィルターが適用されないようにします。

コンテンツフィルターの機能例については「How do content filters work in Satellite 6」を参照してください。

8.4.1. コンテンツフィルターの作成

本ガイドのシナリオでは、ACME のベースオペレーティングシステムで特定日以降のエラータアイテムを制限するコンテンツフィルターを作成します。

Web UI をご利用の場合

コンテンツ > コンテンツビュー に移動し、ベース コンテンツビューを選択します。Yum コンテンツ > フィルター に移動し、新規フィルター をクリックします。以下の詳細を入力します。

  • 名前: Errata Filter
  • コンテンツタイプ: エラータ - 日付およびタイプ別
  • 包含タイプ: 除外
  • 説明: Exclude errata items from the last year, with the exception of security updates (セキュリティー更新以外で、昨年からのエラータアイテムを除外)

保存 をクリックします。

エラータの日付範囲 画面が表示されます。ここでは、エラータのタイプと日付の範囲が選択できます。機能強化バグ修正 のみを選択します。

[ ] セキュリティー
[X] 機能強化
[X] バグ修正

日付タイプ では 発行日 (エラータの発行日) または 更新日 (エラータの最終更新日) を選択します。エラータが作成後に更新されていない場合は、発行日更新日 は同じになります。発行日 を選択すると、エラータアイテムには発行日でのフィルタリングだけが行われるため、そのエラータになされた更新は除外されないことに注意してください。

開始日 で、1 年前の今日の日付を選択します。

終了日 は空白にしておきます。

保存 をクリックします。

注記

このフィルターを使用するリポジトリーを指定することもできます。影響するリポジトリー タブを選択してリポジトリーを指定します。この例では、フィルターで使用するリポジトリーは 1 つのみです。

これでフィルターが完成しました。新規バージョンの公開 をクリックして、完成したリポジトリーを公開します。バージョンの詳細 では 説明Adding errata filter と入力します。保存 をクリックします。

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

このコンテンツビューを 開発テスト実稼働 の各環境に プロモート します。

CLI をご利用の場合

フィルターをコンテンツビューに追加します。--inclusion false オプションを使用して、フィルターを除外フィルターに設定します。

# hammer content-view filter create \
--name "Errata Filter" \
--type erratum --content-view "Base" \
--description "Exclude errata items from the last year, with the exception of security updates" \
--inclusion false  \
--organization "ACME"

フィルターにルールを追加します。

# hammer content-view filter rule create \
--content-view "Base" \
--content-view-filter "Errata Filter" \
--start-date "2015-01-01" \
--types enhancement,bugfix \
--date-type updated \
--organization "ACME"

コンテンツビューを公開します。

# hammer content-view publish \
--name "Base" \
--description "Adding errata filter" \
--organization "ACME"

ビューを各環境にプロモートします。

# hammer content-view version promote \
--content-view "Base" \
--version 1 \
--to-lifecycle-environment "Development" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Base" \
--version 1 \
--to-lifecycle-environment "Testing" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Base" \
--version 1 \
--to-lifecycle-environment "Production" \
--organization "ACME"

8.5. コンテンツビューのプロモート

Satellite Server はここまでに 2 つのコンテンツビューを公開し、ライブラリー環境でリポジトリーが利用可能になっています。この内の 1 つのコンテンツビューをプロモートして、リポジトリーが他の環境で利用可能になるようにしましょう。

注記

環境にコンテンツビューをプロモートするために、管理者以外のユーザーには以下の 2 つのパーミッションが必要になります。

  1. promote_or_remove_content_views
  2. promote_or_remove_content_views_to_environment.

promote_or_remove_content_views パーミッションは、ユーザーがプロモートできるコンテンツビューを制限します。

promote_or_remove_content_views_to_environment パーミッションは、コンテンツビューのプロモート先となる環境を制限します。

これらのパーミッションを使用すると、どのユーザーがどのコンテンツビューをどの環境にプロモートできるか、またはできないかということを指定できます。たとえば、テスト環境へのプロモーションはできるが、実稼働環境にはできない、という制限を設定できます。こうすることで、複数レベルの認証が提供されます。

あるユーザーがコンテンツビューをプロモートできるようになるには、この両方のパーミッションを割り当てる必要があります。

Web UI をご利用の場合

Database コンテンツビューの バージョン 画面を開いていることを確認します。バージョンテーブルの バージョン 1.0 で、アクションコラムにある プロモート をクリックします。プロモーション対象を選択することができる画面が開きます。Development 環境を選択し、バージョンのプロモート をクリックします。数分でプロモーションが完了します。

プロモート ボタンを再度クリックします。今度は Testing 環境を選択して バージョンのプロモート をクリックします。

最後に プロモート ボタンを再度押します。Production 環境を選択し、バージョンのプロモート をクリックします。

これでこのコンテンツビューのリポジトリーが全環境に表示されます。

CLI をご利用の場合

コンテンツビューのプロモートには、毎回 hammer content-view version promote を使用します。

# hammer content-view version promote \
--content-view "Database" \
--version 1 \
--to-lifecycle-environment "Development" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Database" \
--version 1 \
--to-lifecycle-environment "Testing" \
--organization "ACME"
# hammer content-view version promote \
--content-view "Database" \
--version 1 \
--to-lifecycle-environment "Production" \
--organization "ACME"

これで Database のコンテンツが全環境で利用可能になります。

8.6. 環境とコンテンツビューへのシステム登録

コンテンツビューが利用可能になったので、システムを環境とビューに登録することができます。

8.6.1. サブスクリプションマネージャーへの RHEL システムの登録

まず、テスト用の Red Hat Enterprise Linux 7 クライアントシステムに root ユーザーとしてログインし、Satellite Server 用のコンシューマー RPM をダウンロードします。これはホストの pub ディレクトリーに配置されています。たとえば、ホスト名が satellite6.example.com の Satellite Server の場合は、登録するクライアントで以下のコマンドを実行します。

[root@client ~]# rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

以下のコマンドを実行して、Satellite Server 上の環境とコンテンツビューを一覧表示します。

[root@client ~]# subscription-manager environments --org="acme"

クライアントシステムを Satellite Server 上の環境とコンテンツビューに登録します。

[root@client ~]# subscription-manager register --org="acme" --environment="Development/Stack"
注記

クライアントシステムでは、ACME 組織に所属する Satellite Server ユーザーのユーザー名とパスワードが求められます。別の方法では、アクティベーションキーを使用してシステムを登録することもできます。これについては「9章アクティベーションキーの管理」で説明します。

これで、クライアントシステムが、開発環境にある Stack コンテンツビューから公開されたリポジトリーを使用するようになりました。

8.6.2. サブスクリプションマネージャーへの Atomic Host の登録

以下の手順では、サブスクリプションマネージャーで Atomic Host を登録する方法を説明します。

Satellite server から katello-rhsm-consumer を取得します。

[root@atomic_client ~]# wget http://satellite.example.com/pub/katello-rhsm-consumer

katello-rhsm-consumer のモードを実行可能に変更します。

[root@atomic_client ~]# chmod +x katello-rhsm-consumer

katello-rhsm-consumer を実行します。

[root@atomic_client ~]# ./katello-rhsm-consumer

Red Hat サブスクリプションマネージャーに登録します。

[root@atomic_client ~]# subscription-manager register
注記

Atomic はアプライアンスとして機能するため、これに katello-agent をインストールすることは推奨されません。

第9章 アクティベーションキーの管理

前章までで、コンテンツビューを公開し、その結果、Satellite Server がリポジトリーを公開しました。システムは Satellite Server に登録し、それらのリポジトリーからのコンテンツを使用できます。ここでのシステムの登録は、Red Hat カスタマーポータルへの登録と同様の方法で行います。たとえば、Red Hat サブスクリプションマネージャー (subscription-manager) で --baseurl を使うことで、Red Hat Content Delivery Network ではなく Satellite Server を指定できます。

システム登録には 2 つの方法があります。1 つ目は Satellite Server にユーザー名とパスワードで認証する方法で、これは前章で説明しました。2 つ目はアクティベーションキーを使用する方法で、こちらを使用することが推奨されます。このキーは認証トークンとして機能します。アクティベーションキーを使用すると、システム登録とサブスクリプションのアタッチが容易にできます。ユーザーは複数のキーを作成して異なる環境やコンテンツビューに関連付けることができます。たとえば、Red Hat Enterprise Linux ワークステーション用のサブスクリプションで基本的なアクティベーションキーを作成し、これを特定の環境からのコンテンツビューに関連付けることができます。

アクティべーションキーはコンテンツホストの選択されたプロパティーを定義します。コンテンツホストの登録時にアクティべーションキーを使用すると、プロセスをスピードアップし、単純化し、プロセスの一貫性を強化することができます。アクティベーションキーで以下を指定できます。

  • 関連付けられるサブスクリプションおよびサブスクリプションのアタッチ動作。
  • 利用可能な製品およびリポジトリー。
  • ライフサイクル環境およびコンテンツビュー。
  • ホストコレクションのメンバーシップ。

十分なサブスクリプションがある限り、同じアクティべーションキーを複数のコンテンツホストに適用することができます。ただし、アクティべーションキーはコンテンツホストの初期設定のみを行います。コンテンツホストを組織に登録した後は、その組織が処理する他のコンテンツをコンテンツホストに手動でアタッチすることができます。

コンテンツホストは、ホストの設定を定義するために組み合わせる複数のアクティべーションキーに関連付けることができます。設定が競合する場合は、最後に指定したアクティベーションキーが優先されます。

アクティべーションキーは、ホストが登録されている場合にのみ使用できます。アクティベーションキーに変更が加えられた場合、変更は、改訂されたアクティべーションキーでその後に登録されるホストにのみ適用されます。その変更は既存のホストには加えられません。

アクティベーションキーとその使用例についての本ガイド以外の情報は、Red Hat カスタマーポータルの「Activation Key Enhancements with Red Hat Satellite 6.1」を参照してください。

9.1. アクティベーションキーの作成

アクティベーションキーを使用して、登録時にコンテンツホストをサブスクライブする方法を定義できます。アクティべーションキーで定義されるサブスクリプションの動作は以下の 2 つの要因によって変わります。

  • サブスクリプションがアクティべーションキーに関連付けられているか?
  • 自動アタッチオプションは有効になっているか?

上記の要因に応じて、アクティベーションキーを使用してサブスクライブするシナリオを 3 つ想定できます。

  • サブスクリプションが指定されていないアクティべーションキー: サブスクリプションが指定されておらず、自動アタッチが有効な場合に、アクティべーションキーを使用するホストは、Satellite Server が提供する一覧から最適なサブスクリプションを検索します。これは、subscription-manager --auto-attach コマンドを実行する場合と同様です。
  • 自動アタッチ用にカスタムサブスクリプションプールを指定するアクティべーションキー: サブスクリプションが指定されていて自動アタッチが有効な場合に、アクティべーションキーを使用するホストは、アクティべーションキーで指定された一覧から最適なサブスクリプションを選択します。
  • サブスクリプションセットが指定されたアクティべーションキー: サブスクリプションが指定されており、自動アタッチが無効な場合に、アクティべーションキーを使用するホストは、アクティベーションキーに指定されたすべてのサブスクリプションに関連付けられます。
注記

カスタム製品 (通常は Red Hat が提供しないコンテンツを含む製品) がアクティべーションキーに割り当てられている場合、この製品は、自動アタッチの設定の有無にかかわらず、登録されたコンテンツホストに対して常に有効にされます。

Web UI をご利用の場合

  1. コンテンツアクティベーションキー に移動し、アクティベーションキーの作成 をクリックします。アクティベーションキーに以下の情報を提供します。

    • 名前: アクティベーションキーの名前。この名前は、システム登録プロセス時で使用します。名前 フィールドに development-stack と入力します。
    • 制限: アクティベーションキーで登録可能なシステムの最大数を定義します。Unlimited Hosts チェックボックスを選択します。
    • 説明: アクティベーションキーの簡単な説明。説明 フィールドに、Exampleware Stack in the Development Environment と入力します。
    • 環境: 使用する環境。環境 領域で Development をクリックします。
    • コンテンツビュー: 環境内で使用するコンテンツビュー (およびリポジトリー)。コンテンツビュー リストで Stack を選択します。

    保存 をクリックすると、アクティベーションキーの詳細画面が表示されます。

  2. 登録において、アタッチする製品と、有効にするリポジトリーを定義するには、サブスクリプション タブに移動します。追加 タブをクリックし、Red Hat Enterprise Linux サブスクリプションと PostgreSQL 製品の両方をクリックし、選択項目の追加 をクリックします。

    注記

    自動アタッチ オプションは有効になっています。これにより、登録時にこれらの製品のアタッチが自動的に行われ、必要なリポジトリーが有効になります。アクティベーションキーの 自動アタッチ が無効になっている場合、システムはサブスクリプションやコンテンツを割り当てず、Satellite Server に登録されるのみとなります。

  3. 製品コンテンツ ページに移動します。デフォルトでは、Satellite Server が有効にしているのは以下のものだけです。

    • システム要件に最も適するリポジトリー。このケースでは、Red Hat Enterprise Linux 7 Server RPMs のみです。
    • カスタムコンテンツ。

    シナリオでは、以下のデフォルトが設定されているはずです。

    PostgreSQL:

    • PostgreSQL 9.5 - 有効にされていますか: Yes (デフォルト)
    • PostgreSQL Puppet Modules - 有効にされていますか: Yes (デフォルト)

    Red Hat Enterprise Linux Server:

    • Red Hat Enterprise Linux 7 Server (Kickstart) - 有効にされていますか: No (デフォルト)
    • Red Hat Satellite Tools 6.4 (for RHEL 7 Server) (RPMs) - 有効にされていますか: No (デフォルト)
    • Red Hat Enterprise Linux 7 Server (RPMs) - 有効にされていますか: Yes (デフォルト)

    Red Hat Satellite Tools リポジトリーには設定ツール (katello-agent および puppet など) が含まれるため、これを有効にします。以下のようにします。

    • Red Hat Satellite Tools 6.4 (for RHEL 7 Server) (RPMs) - 有効にされていますか: Yes に上書き
  4. 保存 をクリックします。

CLI をご利用の場合

  1. アクティベーションキーを作成します。

    # hammer activation-key create \
    --name "development-stack" \
    --unlimited-hosts true \
    --description "Exampleware Stack in the Development Environment" \
    --lifecycle-environment "Development" \
    --content-view "Stack"  \
    --organization "ACME"
  2. サブスクリプション ID 一覧を取得します。

    # hammer subscription list --organization "ACME"
  3. Red Hat Enterprise Linux サブスクリプション UUID をアクティベーションキーにアタッチします。

    # hammer activation-key add-subscription \
    --name "development-stack" \
    --subscription-id ff808181533518d50152354246e901aa \
    --organization "ACME"
  4. PostgreSQL 製品をアクティベーションキーにアタッチします。

    # hammer activation-key add-subscription \
    --name "development-stack" \
    --subscription-id ff8081815239acdc015238fefaa10002 \
    --organization "ACME"
  5. アクティベーションキーに関連付けられている製品コンテンツを一覧表示します。

    # hammer activation-key product-content \
    --name "development-stack" \
    --organization "ACME"
  6. Red Hat Satellite Tools 6.4 リポジトリーのデフォルトの自動有効化ステータスを上書きします。デフォルトでは無効になっています。有効にするには、以下のコマンドを実行します。

    # hammer activation-key content-override \
    --name "development-stack" \
    --content-label rhel-7-server-satellite-tools-6.4-rpms \
    --value 1 \
    --organization "ACME"

9.2. アクティベーションキーの使用

アクティベーションキーは登録に使用されます。以下が含まれます。

  • Red Hat Satellite 6 でのプロビジョニング中の新規システム登録。Red Hat Satellite 6 のキックスタートプロビジョニングテンプレートには、新規ホストの作成時に定義されるアクティベーションキーを使用してシステムを登録するコマンドが含まれています。
  • 既存の Red Hat Enterprise Linux システムの登録。Red Hat サブスクリプションマネージャーが登録に Satellite Server を使用するように設定し、subscription-manager register コマンドの実行時にアクティベーションキーを指定します。

作成したアクティベーションキーをテストします。既存の Red Hat Enterprise Linux 7 システムを Satellite Server に登録します。

まず、Satellite Server 用のコンシューマー RPM をダウンロードします。これは、通常、ホストの web サーバーの pub ディレクトリーに配置されています。たとえば、ホスト名が satellite6.example.com の Satellite Server の場合は、登録するクライアントで以下のコマンドを実行します。

# rpm -Uvh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

この RPM は Satellite Server 上のリポジトリーにアクセスするために必要な証明書をインストールし、Red Hat サブスクリプションマネージャーがサーバーの URL を使用するように設定します。

次に、クライアント上で Red Hat サブスクリプションマネージャーを実行します。

# subscription-manager register --activationkey="development-stack" \
--org="ACME"
The system has been registered with id: 744fb31c-c983-00f5-ca14-bddd0f711353

Satellite Server で登録を確認します。

Web UI をご利用の場合

ホスト > コンテンツホスト に移動すると、リストにシステムが表示されます。

CLI をご利用の場合

以下のコマンドを実行します。

# hammer host list --organization "ACME"
重要

Satellite Server にクライアントシステムを登録したら、システムに katello-agent パッケージをインストールして、Satellite Server にレポートできるようにします。

# yum install katello-agent

このパッケージは、Red Hat Satellite Tools 6.4 リポジトリーが提供しています。

コンテンツホストの登録時に複数のアクティべーションキーを使用することができます。これにより、特定のサブスクリプションセット用にアクティべーションキーを作成してから、コンテンツホストの要件に従ってそれらを組み合わせることができます。たとえば、以下のコマンドは VDC と OpenShift の両方のサブスクリプションでコンテンツホストを ACME 組織に登録します。

# subscription-manager register --org="ACME" \
--activationkey="ak-VDC,ak-OpenShift"

アクティベーションキーの設定で競合が生じた場合は、右端のキーが優先されます。

  • 競合する設定: サービスレベルリリースバージョン環境コンテンツビュー、および 製品コンテンツ
  • 競合しない設定と、ホストがその統合を取得: サブスクリプション および ホストコレクション
  • キーそのものの動作に影響を与えるが、ホストの設定には影響を与えない設定: コンテンツホストの制限 および 自動アタッチ

9.3. アクティベーションキーを使用して関連するサブスクリプションの更新

Web UI または Hammer コマンドで、アクティベーションキーに関連付けるサブスクリプションを変更できます。Hammer CLI を使用する場合は CSV ファイルをダウンロードして、アクティベーションキー設定を変更し、変更した CSV ファイルをアップロードする必要があります。

アクティベーションキーへの変更は、変更後にプロビジョニングしたマシンにのみ適用されます。既存のコンテンツホストでサブスクリプションを更新する方法は「コンテンツホストのサブスクリプションの一括アップデート」を参照してください。

Web UI をご利用の場合

  1. コンテンツ > アクティベーションキー に移動し、アクティベーションキーの名前をクリックします。
  2. サブスクリプション タブを選択します。
  3. サブスクリプションを削除するには 一覧/削除 を選択し、削除するサブスクリプションの左側にあるチェックボックスを選択し、選択項目の削除 をクリックします。
  4. サブスクリプションを追加するには、追加 を選択し、追加するサブスクリプションの左側のチェックボックスを選択し、選択項目の追加 をクリックします。
  5. リポジトリーセット を選択し、リポジトリーのステータス設定を確認します。
  6. リポジトリーを有効または無効にするには、リポジトリーに対してチェックボックスを選択し、アクションの選択 リストを使用してステータスを変更します。
  7. 詳細 タブを選択し、このアクティベーションキーにコンテンツビューを選択し、保存 をクリックします。

CLI をご利用の場合

  1. Satellite Server からサブスクリプションを CSV ファイルにエクスポートします (この例では a_keys.csv)。

    # hammer --server https://satellite.example.com csv activation-keys \
    --export --file a_keys.csv --organization "Default Organization"
  2. 以下のようにファイルのコラムを表示します。

    # column -s, -t < a_keys.csv | less -S
    Name  Organization  Description  Limit  Environment  Content View  Host Collections  Auto-Attach  Service Level  Release Version  Subscriptions

    最後のコラムにはサブスクリプション情報があります。これは CSV ファイルのフィールドの 1 つで、引用されるテキストにはコンマを含むことができます。以下は サブスクリプション フィールドの例となります。

    • '"""Automatic|RH1234|Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)|11223344|55667788"""'
    • '1|MCT0369|Red Hat Satellite Capsule Server|11223344|55667788'

      サブスクリプション フィールドでは、以下の形式を使用します。

      • 割り当てられるサブスクリプションの数 (Automatic に設定されます)。
      • サブスクリプションの ID 番号。
      • サブスクリプションの名前。
      • コントラクト番号。
      • アカウント番号。
  3. CSV ファイルで必要な値を変更します。CSV プラグイン、または sed を使用して、Subscriptions フィールドの文字列を変更します。

    1. ファイルのバックアップを作成します。

      # cp a_keys.csv a_keys.csv.backup
    2. 以下のように、文字列を変更します。

      # sed -i "s/Automatic|RH1234|Red Hat Enterprise Linux Server/Automatic|RH4567|Red Hat Enterprise Linux Server/g" a_keys.csv
    3. 変更箇所を確認します。以下は例となります。

      # diff a_keys.csv a_keys.csv.backup
      2c2
      < """Automatic|RH4567|Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)|11223344|55667788"""
      ---
      > """Automatic|RH1234|Red Hat Enterprise Linux Server, Standard (Physical or Virtual Nodes)|11223344|55667788"""
  4. 変更したファイルを Satellite Server にアップロードします。

    # hammer --server https://satellite.example.com csv activation-keys \
    --file a_keys.csv

9.4. 自動アタッチの有効化

アクティベーションキーで自動アタッチを有効にし、キーに割り当てたサブスクリプションがある場合は、サブスクリプション管理サービスが、現在インストールされている製品、アーキテクチャー、およびサービスレベルなどの設定に基づいて、最適な関連サブスクリプションを選択してアタッチします。

自動アタッチを有効にし、キーに関連するサブスクリプションがない場合、このキーは、RHEL サブスクリプションを使用し、ハイパーバイザーから RHEL Virtual Data Center (VDC) サブスクリプションを継承する仮想マシンが必要ない場合に、仮想マシンを登録するために一般的に使用されます。

自動アタッチはデフォルトで有効になっています。アクティベーションキーに関連付けられているすべてのサブスクリプションを強制的にアタッチする場合は、このオプションを無効にします。

Web UI をご利用の場合

  1. コンテンツ > アクティベーションキー をクリックします。
  2. 編集するアクティべーションキーの名前をクリックします。
  3. サブスクリプション タブをクリックします。
  4. 自動アタッチ の隣にある編集アイコンをクリックします。
  5. チェックボックスにチェックを入れて自動アタッチを有効にするか、チェックを外して無効にします。
  6. 保存 をクリックします。
注記

自動アタッチアクティベーションキーを使用して仮想コンテンツホストを Satellite Server に登録するには、まず virt-who ユーティリティーを使用して、それらのホストを Virtual Datacenter (VDC) サブスクリプションのエンタイトルメントにあるハイパーバイザーにマッピングします。この前提条件が適用されない場合、仮想ホストは一時的な仮想サブスクリプションに 24 時間登録されます。詳細は『仮想インスタンスガイド』の「仮想ゲストのサブスクリプションへの適用」を参照してください。

CLI をご利用の場合

アクティベーションキー development-stack で自動アタッチを有効にするには、以下のコマンドを実行します。

# hammer activation-key update --name "development-stack" \
--organization "ACME" --auto-attach true

9.5. サービスレベルの設定

アクティべーションキーを設定して、アクティべーションキーを使用して作成される新規ホストのデフォルトのサービスレベルを定義することができます。デフォルトのサービスレベルを設定すると、ホストにアタッチするのに適したサブスクリプションのみが選択されます。たとえば、アクティべーションキーのデフォルトのサービスレベルが Premium に設定されている場合、Premium サービスレべルのサブスクリプションのみが、登録時にホストに割り当てられます。

Web UI をご利用の場合

  1. コンテンツ > アクティベーションキー をクリックします。
  2. 編集するアクティべーションキーの名前をクリックします。
  3. サービスレベル の隣にある編集アイコンをクリックします。
  4. リストから必要なサービスレベルを選択します。このリストには、アクティベーションキーで利用できるサービスレベルだけが含まれます。
  5. 保存 をクリックします。

CLI をご利用の場合

アクティベーションキー development-stack でデフォルトのサービスレベルを Premium に設定するには、以下を実行します。

# hammer activation-key update --name "development-stack" \
--organization "ACME" --service-level premium

第10章 エラータの管理

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 つ以上のコンテンツホストに適用され、コンテンツホストで利用可能になっています。インストール可能なエラータはコンテンツホストのライフサイクル環境とコンテンツビューに存在しますが、インストールはされていません。このため、エラータは、コンテンツホストを管理するパーミッションがあるものの、より高いレベルでのエラータ管理の権限がないユーザーによるインストールが可能になっています。

本章では、エラータの管理方法とシステムへの適用方法を説明します。

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

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

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

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

      parameter operator value

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

      type = security and package_name = kernel

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

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

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

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

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

10.3. コンテンツビューによるエラータ管理

Red Hat Satellite 6 では、エラータの管理や適用するために、さまざまな方法を提供しています。エラータを絞り込むには、コンテンツビューとコンテンツフィルターを使用できます。フィルターには以下のものがあります。

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

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

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

前提条件

手順

  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"

10.4. 個別システムへのエラータの適用

以下の手順を使用して、エラータをレビューし、個別システムに適用します。

前提条件

手順

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

CLI をご利用の場合

  1. クライアントシステムの全エラータを一覧表示します。

    # hammer host errata list \
    --host client.example.com
  2. クライアントシステムに最新のエラータを適用します。Errata ID を使用して適用するエラータを特定します。

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

10.5. 複数システムへのエラータの適用

以下の手順を使用して、エラータをレビューし、複数のシステムに適用します。

前提条件

手順

  1. コンテンツ > エラータ に移動します。
  2. 適用するエラータ名をクリックします。
  3. コンテンツホスト タブをクリックします。
  4. エラータの適用先のシステムを選択し、Apply to Hosts (ホストへの適用) をクリックします。
  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. 各クライアントシステムに以下のコマンドを実行します。$HOST は、実行ごとにシステム名に置き換えます。

    # 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 を適用できるホストをすべて特定し、このエラータを各ホストに適用します。

第11章 OSTree コンテンツの管理

OSTree は、起動可能で、変更しない、バージョン付きファイルシステムツリーを管理するツールです。ビルドシステムにカスタムの OSTree コンテンツを使用して、OSTree リポジトリーを静的 HTTP にエクスポートできます。Red Hat Enterprise Linux Atomic Server は、RPM ファイルから作成された OSTree コンテンツを使用して、オペレーティングシステムを最新の状態に保ちます。

Red Hat Satellite 6 を使用して、OSTree リポジトリーの OSTree ブランチを同期してブランチを管理することができます。

Satellite Server 6.4 では、OSTree 管理ツールがデフォルトで有効になっています。ツールを有効化する必要がある場合には、以下のコマンドを入力します。

# satellite-installer --katello-enable-ostree=true

11.1. 同期する Red Hat OSTree コンテンツの選択

Red Hat の CDN で OSTree コンテンツを選択して同期します。

手順

OSTree コンテンツを検索して同期するには以下の手順を実行します。

  1. Satellite Web UI で、コンテンツ > Red Hat リポジトリー に移動します。
  2. リストから OSTree のコンテンツタイプを選択します。
  3. 利用可能なリポジトリーペインで、Red Hat Enterprise Linux Atomic Host の製品グループの Red Hat Enterprise Linux Atomic Host Trees セットなど、使用する OSTree リポジトリーセットを特定します。
  4. 有効化 アイコンをクリックして、使用するリポジトリーを有効化します。
  5. コンテンツ > 製品 に移動して、Red Hat Enterprise Linux Atomic Host など、使用する製品をクリックします。
  6. このリポジトリーを選択して 同期開始 をクリックします。

同期の状態の表示

  • Satellite Web UI で、コンテンツ > 同期の状態 に移動し、たとえば、Red Hat Enterprise Linux Atomic Host を展開します。

CLI をご利用の場合

  1. Red Hat Enterprise Linux Server 製品の ostree リポジトリーを検索します。

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization" | grep "ostree"
  2. Red Hat Enterprise Linux Atomic Host や使用する製品の ostree リポジトリーを有効にします。

    # hammer repository-set enable \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --name "Red Hat Enterprise Linux Atomic Host (Trees)" \
    --organization "My_Organization"
  3. 製品のリポジトリーの場所を特定し、同期します。

    # hammer repository list \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization"
    # hammer repository synchronize \
    --name "Red Hat Enterprise Linux Atomic Host Trees" \
    --product "Red Hat Enterprise Linux Atomic Host" \
    --organization "My_Organization"

11.2. カスタム OSTree コンテンツのインポート

Red Hat の CDN から OSTree コンテンツをインポートするほかに、他のソースからコンテンツをインポートすることもできます。これには、公開済みの HTTP の場所が必要になります。

手順

カスタムの OSTree コンテンツをインポートするには、以下の手順を実行します。

  1. Satellite Web UI で コンテンツ > 製品 に移動して、新製品 をクリックします。
  2. 名前 フィールドには、OSTree コンテンツの名前を入力します。これにより、自動的に ラベル フィールドにデータが投入されます。
  3. オプション: GPG キー フィールドには、製品全体の GPG キーを入力します。
  4. 同期プラン フィールドには、製品を関連付けるコンテンツ同期プランの名前を入力します。
  5. 説明 フィールドには、製品の説明を入力し、保存 をクリックします。
  6. 製品の作成が完了したら、リポジトリーの作成 をクリックします。
  7. 名前 フィールドには、リポジトリーの名前を入力します。これにより、自動的に ラベル フィールドにデータが投入されます。
  8. タイプ の一覧から ostree を選択します。
  9. URL フィールドには、ソースとして使用するレジストリーの URL を入力します。たとえば http://www.example.com/rpm-ostree/ と入力します。
  10. 保存 をクリックします。
  11. リポジトリー作成が完了したら、新規リポジトリーを選択して、同期開始 をクリックして同期プロセスを開始します。

同期の状態を表示します。

  • Satellite Web UI で、コンテンツ > 同期の状態 に移動し、表示するエントリーを展開します。

CLI をご利用の場合

  1. カスタムの OSTree Content 製品を作成します。

    # hammer product create \
    --name "Custom OSTree Content" \
    --sync-plan "Example_Plan" \
    --description "OSTree Content" \
    --organization "My_Organization"
  2. OSTree 用のリポジトリーを作成します。

    # hammer repository create \
    --name "Custom OSTree" \
    --content-type "ostree" \
    --url "http://www.example.com/rpm-ostree/" \
    --product "OSTree Content" \
    --organization "My_Organization"
  3. リポジトリーを同期します。

    # hammer repository synchronize \
    --name "Custom OStree" \
    --product "OSTree Content" \
    --organization "My_Organization"

11.3. コンテンツビューによる OSTree コンテンツの管理

コンテンツビューを使用して、アプリケーションライフサイクルで OSTree ブランチを管理します。このプロセスでは、RPM および Puppet モジュールが使用するものと同じ公開とプロモーションのメソッドを使用します。

手順

OSTree のコンテンツビューを作成して、リポジトリーを追加するには、以下の手順を実行します。

  1. Satellite web UI で コンテンツ > コンテンツビュー に移動して、 新規ビューの作成 をクリックします。
  2. 名前 フィールドには、プレーンテキスト形式のビューの名前を入力します。これにより、自動的に ラベル フィールドにデータが投入されます。
  3. 説明 フィールドには、OSTree コンテンツビューの説明を加えます。
  4. 複合コンテンツビューを使用する場合には、複合ビュー のチェックボックスを選択します。
  5. 保存 をクリックします。
  6. OSTree コンテンツ タブに移動して、追加 をクリックします。
  7. 使用するコンテンツの OSTree リポジトリーを選択します。リポジトリーの追加 をクリックして、OSTree コンテンツをこのリポジトリーからコンテンツビューに追加します。
  8. バージョン に移動して、新規バージョンの公開 をクリックします。
  9. 説明 フィールドには、バージョンの説明を入力し、保存 をクリックします。

プロモート をクリックして、アプリケーションライフサイクルの環境でこのコンテンツビューをプロモートすることもできます。

CLI をご利用の場合

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

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

    # hammer content-view create \
    --name "OSTree" \
    --description "OSTree for Red Hat Enterprise Linux Atomic Host" \
    --repository-ids 5 \
    --organization "My_Organization"
  3. ビューを公開します。

    # hammer content-view publish \
    --name "OSTree" \
    --description "Example Content View for the OSTree" \
    --organization "My_Organization"

第12章 ISO イメージの管理

Red Hat Satellite 6 を使用して、Red Hat のコンテンツ配信ネットワーク (CDN) または他のソースからの ISO イメージを保存できます。仮想マシンイメージなどの他のファイルをアップロードしたり、リポジトリーに公開したりすることも可能です。

12.1. Red Hat からの ISO イメージのインポート

Red Hat CDN では、特定製品の ISO イメージを提供しています。このコンテンツをインポートする手順は、RPM コンテンツのリポジトリーを有効にする手順と似ています。

手順

Red Hat ISO イメージをインポートするには、以下の手順を実行します。

  1. Satellite Web UI で、コンテンツ > Red Hat リポジトリー に移動します。
  2. 検索 フィールドで、Red Hat Enterprise Linux 7 Server (ISOs) などのイメージ名を入力します。
  3. 利用可能なリポジトリーウィンドウで、Red Hat Enterprise Linux 7 Server (ISOs) を展開します。
  4. x86_64 7.2 エントリーでは、有効化 アイコンをクリックして、対象のイメージのリポジトリーを有効にします。
  5. コンテンツ > 製品 に移動して、Red Hat Enterprise Linux Server をクリックします。
  6. Red Hat Enterprise Linux Server ウィンドウの Repositories タブをクリックして、Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2 をクリックします。
  7. Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2 ウィンドウの右上で、アクションの選択 をクリックして、同期開始 を選択します。

同期の状態の表示

  • Web UI で、コンテンツ > 同期の状態 に移動し、たとえば、Red Hat Enterprise Linux Server を展開します。

CLI をご利用の場合

  1. file リポジトリーの Red Hat Enterprise Linux Server 製品を特定します。

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization" | grep "file"
  2. Red Hat Enterprise Linux 7.2 Server ISO の file リポジトリーを有効にします。

    # hammer repository-set enable \
    --product "Red Hat Enterprise Linux Server" \
    --name "Red Hat Enterprise Linux 7 Server (ISOs)" \
    --releasever 7.2 \
    --basearch x86_64 \
    --organization "My_Organization"
  3. 製品のリポジトリーの場所を特定し、同期します。

    # hammer repository list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"
    # hammer repository synchronize \
    --name "Red Hat Enterprise Linux 7 Server ISOs x86_64 7.2" \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"

12.2. 個別の ISO イメージとファイルのインポート

この手順を使用して、ISO コンテンツと他のファイルを Satellite Server に手動でインポートします。この手順は、カスタムの Puppet モジュールの手順のアップロードによく似ています。

  1. カスタム製品を作成します。
  2. ファイルのリポジトリーを製品に追加します。
  3. リポジトリーにアップロードするファイルを選択します。

手順

カスタムの ISO イメージをインポートするには、以下の手順を実行します。

  1. Satellite Web UI で コンテンツ > 製品 に移動して、製品ウィンドウで 新製品 をクリックします。
  2. 名前 フィールドで製品を識別するための名前を入力します。この名前が ラベル フィールドに投入されます。
  3. GPG キー フィールドには、製品の GPG キーを入力します。
  4. 同期プラン リストから製品の同期プランを選択します。
  5. 説明 フィールドには、製品の説明を入力します。
  6. 保存 をクリックします。
  7. 製品ウィンドウで、新製品をクリックし、リポジトリーの作成 をクリックします。
  8. 名前 フィールドには、リポジトリーの名前を入力します。これにより、自動的に ラベル フィールドにデータが投入されます。
  9. タイプ の一覧から ファイル を選択します。
  10. アップストリーム URL フィールドに、ソースとして使用するレジストリーの URL を入力します。アップストリームのユーザー名アップストリームのパスワード フィールドには対応するユーザー名とパスワードを追加します。
  11. 保存 をクリックします。
  12. 新しいリポジトリーをクリックします。
  13. ファイルのアップロード に移動し、参照 をクリックします。
  14. .iso ファイルを選択して アップロード をクリックします。

CLI をご利用の場合

  1. カスタム製品を作成します。

    # hammer product create \
    --name "My_ISOs" \
    --sync-plan "Example Plan" \
    --description "My_Product" \
    --organization "My_Organization"
  2. リポジトリーを作成します。

    # hammer repository create \
    --name "My_ISOs" \
    --content-type "file" \
    --product "My_Product" \
    --organization "My_Organization"
  3. ISO ファイルをリポジトリーにアップロードします。

    # hammer repository upload-content \
    --path ~/bootdisk.iso \
    --name "My_ISOs" \
    --product "My_Product" \
    --organization "My_Organization"

付録A コンテンツストレージ向け NFS 共有の使用

使用する環境ではコンテンツのストレージに十分な容量のハードディスクが必要になります。場合によっては、コンテンツのストレージに NFS 共有を使用することが便利なこともあります。本付録では、Satellite Server のコンテンツ管理コンポーネントに NFS 共有をマウントする方法を説明します。

重要

/var/lib/pulp は NFS 共有にマウントしないでください。Satellite Server の一部は、NFS に問題がある一時的な SQLite データベースを使用します。Red Hat では、/var/lib/pulp ファイルシステムに高帯域幅で低レイテンシーのストレージを使用することを推奨しています。Red Hat Satellite には、I/O を大量に使用する操作が多数あるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。/var/lib/pulp/content ディレクトリーにのみ、NFS 共有を使用してください。

  1. NFS 共有を作成します。この例では、nfs.example.com:/satellite/content で共有を使用します。この共有で適切なパーミッションが Satellite Server とその apache ユーザーに提供されるようにしてください。
  2. Satellite ホスト上の Satellite サービスをシャットダウンします。

    # foreman-maintain service stop
  3. Satellite Server に nfs-utils パッケージがインストールされていることを確認します。

    # yum install nfs-utils
  4. /var/lib/pulp/content の既存のコンテンツを NFS 共有にコピーします。まず、NFS 共有を一時的な場所にマウントします。

    # mkdir /mnt/temp
    # mount -o rw nfs.example.com:/satellite/content /mnt/temp

    /var/lib/pulp/content の既存コンテンツを一時的な場所にコピーします。

    # cp -r /var/lib/pulp/content/* /mnt/temp/.
  5. 共有上の全ファイルで apache ユーザーを使用するようにパーミッションを設定します。通常、このユーザーの ID は 48 になります。
  6. 一時的なストレージの場所をアンマウントします。

    # umount /mnt/temp
  7. /var/lib/pulp/content の既存コンテンツを削除します。

    # rm -rf /var/lib/pulp/content/*
  8. /etc/fstab ファイルに以下の行を追加します。

    nfs.example.com:/satellite/content    /var/lib/pulp/content   nfs    rw,hard,intr,context="system_u:object_r:httpd_sys_rw_content_t:s0"

    これでシステムの再起動後もマウントが維持されます。SELinux コンテキストを含めることを忘れないでください。

  9. マウントを有効にします。

    # mount -a
  10. NFS 共有が var/lib/pulp/content にマウントしていることを確認します。

    # df
    Filesystem                         1K-blocks     Used Available Use% Mounted on
    ...
    nfs.example.com:/satellite/content 309506048 58632800 235128224  20% /var/lib/pulp/content
    ...

    既存のコンテンツが var/lib/pulp/content のマウントにあることを確認します。

    # ls /var/lib/pulp/content
  11. Satellite ホスト上の Satellite サービスを起動します。

    # foreman-maintain service start

これで Satellite Server はコンテンツの保存に NFS 共有を使用します。コンテンツの同期を実行して (「コンテンツの同期」を参照) NFS 共有が予想どおり機能することを確認してください。

付録B 非接続の Satellite Server へのコンテンツ ISO のインポート

インターネットに接続されていない閉鎖されたネットワークでホストが機能する必要がある、セキュリティーレベルの高い環境でも、Satellite Server は、システムに最新のセキュリティー更新、エラータおよびパッケージを提供できます。これを実行するには、Red Hat Satellite 用のコンテンツ ISO を Red Hat カスタマーポータルからダウンロードして、Satellite Server にインポートします。

重要

お使いの Satellite Server がインターネットに接続している場合は、本セクションは必要ありません。

Red Hat カスタマーポータルから製品の ISO をダウンロードします。

  1. (ウィンドウの最上部にある) ダウンロードに移動し、Red Hat Satellite を選択します。
  2. コンテンツ ISO タブを開きます。サブスクリプションの全製品が記載されています。
  3. 製品名、たとえば Red Hat Enterprise Linux 6 Server (x86_64) のリンクをクリックして、ISO をダウンロードします。
  4. Satellite がアクセスできるディレクトリーに Satellite コンテンツ ISO をすべてコピーします。この例では /root/isos を使用します。
  5. Satellite で、httpd で共有するローカルディレクトリーを作成します。この例では /var/www/html/pub/sat-import/ を使用します。

    # mkdir -p /var/www/html/pub/sat-import/
  6. 最初の ISO のコンテンツをローカルディレクトリーにマウントし、再帰的にコピーします。

    # mkdir /mnt/iso
    # mount -o loop /root/isos/first_iso /mnt/iso
    # cp -ruv /mnt/iso/* /var/www/html/pub/sat-import/
    # umount /mnt/iso
    # rmdir /mnt/iso
  7. 各 ISO で上記の作業を繰り返して、コンテンツ ISO から全データを /var/www/html/pub/sat-import/ にコピーします。
  8. ディレクトリーに正しい SELinux コンテキストが設定されていることを確認します。

    # restorecon -rv /var/www/html/pub/sat-import/
  9. これで Satellite Server にコンテンツ ISO のコンテンツが格納されました。ただし、Satellite Server はこの場所を CDN URL として指定する必要があります。Satellite Web UI で コンテンツ > Red Hat サブスクリプション に移動します。
  10. マニフェストの管理 をクリックします。
  11. サブスクリプションマニフェストの情報画面で アクション タブを選択します。
  12. Red Hat プロバイダーの詳細まで移動します。Red Hat CDN URL の編集アイコンをクリックし、URL を、新たに作成したディレクトリーのある Satellite ホスト名に変更します。以下は例となります。

    http://server.example.com/pub/sat-import/

  13. 保存 クリックし、「Satellite Server へのサブスクリプションマニフェストのインポート」に従ってマニフェストをアップロードします。

これで、Satellite は、ファイルが http://server.example.com/pub/sat-import/ にある独自の CDN として機能するようになります。ただし、これは必須ではありません。Satellite Server が HTTP 経由でアクセス可能であれば、同一の非接続ネットワーク内の別のマシンで CDN をホストすることができます。

お使いの環境を非接続から接続に変更した場合は、接続されていなかった Satellite が Red Hat カスタマーポータルから直接コンテンツをプルするように設定することができます。

  1. Satellite Web UI で、コンテンツ > Red Hat サブスクリプション に移動します。
  2. マニフェストの管理 をクリックします。
  3. サブスクリプションマニフェストの情報画面で アクション タブを選択します。
  4. Red Hat プロバイダーの詳細まで移動します。Red Hat CDN URL の編集アイコンをクリックし、URL を Red Hat CDN URL に変更します。

    https://cdn.redhat.com

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

これで Satellite Server は、次回の同期で、コンテンツを Red Hat カスタマーポータルから直接プルするようになります。

付録C 接続済み Satellite Server へのコンテンツ ISO のインポート

Satellite Server が Red Hat カスタマーポータルに直接接続できる場合でも、初回同期はローカルにマウントされたコンテンツ ISO から実行することができます。この同期が完了すると、ネットワーク接続でのコンテンツのダウンロードに切り替えることができます。これを実行するには、Red Hat Satellite 向けのコンテンツ ISO を Red Hat カスタマーポータルからダウンロードし、Satellite Server にこれをインポートします。帯域幅に制限がある場合は、オンデマンド または 背景 ダウンロードポリシーを使用する方が、上記の方法よりも効率的な場合があります。

重要

お使いの Satellite Server がインターネットに接続している場合は、本セクションは必要ありません。

この例では、Red Hat Enterprise Linux 6 リポジトリーのコンテンツ ISO からの初回同期を説明します。本ガイド作成時には、DVD 21 枚分の ISO ファイルがあります。

Red Hat カスタマーポータルからのコンテンツ ISO のダウンロード

  1. ブラウザーで Red Hat カスタマーポータル を開き、ログインします。
  2. ダウンロード をクリックします。
  3. Red Hat Satellite を選択します。
  4. コンテンツ ISO タブを選択します。サブスクリプションの全製品が表示されます。
  5. 必要なセクションを見つけます。この例では、Red Hat Enterprise Linux 6 になります。
  6. RHEL 6 Server (x86_64)(2017-04-14T01:27:00) などの製品名をクリックして ISO ファイルを表示します。
  7. ブラウザーで、必要な ISO を、ワークステーションの Downloads ディレクトリーなど、ブラウザーでアクセスできる場所にダウンロードします。

コンテンツ ISO のインポート

  1. Satellite Server に接続している端末で、必要な全 Satellite コンテンツ ISO を一時的に保存するディレクトリーを作成します。この例では、/tmp/isos/rhel6 を使用します。

    # mkdir -p /tmp/isos/rhel6
  2. ワークステーションで、ISO ファイルを Satellite Server にコピーします。

    $ scp ~/Downloads/iso_file root@satellite.example.com:/tmp/isos/rhel6
  3. Satellite Server で、ISO のマウントポイントとなるディレクトリーを作成します。

    # mkdir /mnt/iso
  4. 全 ISO のコンテンツを格納する作業ディレクトリーを作成します。

    # mkdir /mnt/rhel6
  5. 最初の ISO のコンテンツを作業ディレクトリーにマウントし、再帰的にコピーします。

    # mount -o loop /tmp/isos/iso_file /mnt/iso
    # cp -ruv /mnt/iso/* /mnt/rhel6/
    # umount /mnt/iso
  6. 各 ISO で上記の作業を繰り返して、コンテンツ ISO から全データを /mnt/rhel6 にコピーします。
  7. 必要に応じて、マウントポイントに使用した空のディレクトリーを削除します。

    # rmdir /mnt/iso
  8. 必要に応じて、一時的な作業ディレクトリーとそのコンテンツを削除して、スペースを取り戻します。

    # rm -rf /tmp/isos/

初回同期の実行

  1. ディレクトリーの所有者、SELinux コンテキスト、そのコンテンツを /var/lib/pulp と同じものにします。

    # chcon -R --reference /var/lib/pulp  /mnt/rhel6/
    # chown -R apache:apache /mnt/rhel6/
  2. /etc/pulp/content/sources/conf.d/local.conf ファイルを作成または編集し、以下のテキストを追加します。

    [rhel-6-server]
    enabled: 1
    priority: 0
    expires: 3d
    name: Red Hat Enterprise Linux 6 Server
    type: yum
    base_url: file:///mnt/rhel6/content/dist/rhel/server/6/6Server/x86_64/os/

    base_url のパスはコンテンツ ISO によって異なる場合があります。base_url で指定するディレクトリー内に repodata ディレクトリーが必要です。これがないと、同期は失敗します。複数のリポジトリーを同期するには、/etc/pulp/content/sources/conf.d/local.conf 設定ファイルで各リポジトリー向けの個別エントリーを作成します。

  3. Satellite web UI で、コンテンツ > Red Hat リポジトリー に移動して、Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server のリポジトリーを有効にします。
  4. コンテンツ > 同期の状態 に移動して、同期するリポジトリーを選択し、今すぐ同期 をクリックします。

Satellite Web UI では、使用されているソースが表示されないことに留意してください。ローカルのソースに問題がある場合は、Satellite はネットワーク経由でコンテンツをプルします。プロセスを監視するには、端末に以下のコマンドを入力します (Red Hat Enterprise Linux 7 ベースシステムに限定):

# journalctl -f -l SYSLOG_IDENTIFIER=pulp | grep -v worker[\-,\.]heartbeat

上記のコマンドを実行すると対話的なログが表示されます。まず Satellite Server が Red Hat カスタマーポータルに接続してリポジトリーのメタデータをダウンロードして処理します。次に、ローカルリポジトリーが読み込まれます。エラーが発生したら Satellite Web UI で同期をキャンセルして、設定を確認してください。

同期が成功したら、/etc/pulp/content/sources/conf.d/local.conf からローカルソースのエントリーを削除して、このソースの接続を解除します。

付録D Satellite Server 間でのコンテンツ同期

Red Hat Satellite 6.4 では、Satellite 間の同期 (ISS) を使ってアップストリームとダウンストリームのサーバー間でコンテンツを同期します。ISS のコンテキストでは、アップストリームとはコンテンツのエクスポート元となるサーバーを指し、ダウンストリームとはインポート先となるサーバーを指します。

ISS は以下の 2 つのシナリオに対処します。

  • 接続済みと非接続の Satellite Server があり、前者から後者にコンテンツを伝達する場合。
  • プライマリー Satellite Server から他の Satellite Server に一部のコンテンツを伝達する場合。たとえば、IT 部門が検証したコンテンツビュー (CV) から、ダウンストリーム Satellite に yum コンテンツを伝達する場合。
注記

Satellite Server から Capsule Server へのコンテンツ同期では ISS は使用できないことに注意してください。Capsule Server はネイティブで同期をサポートします。詳細は『Red Hat Satellite 6 のプランニング』「Capsule Server の概要」を参照してください。

Satellite 6.4 は、エクスポートをディレクトリーセット (デフォルト) または ISO ファイルとしてサポートします。エクスポートしたものは、別の Satellite Server にインポートできます。これは以前の Satellite バージョンにあった katello-disconnected スクリプトに代わるものです。このスクリプトはリポジトリーをディレクトリー構造にエクスポートし、これを別の Satellite Server にインポートするというものでした。Satellite 6.4 では、エクスポートとインポートの機能はすべてコマンドラインで実行されます。

注記

エクスポートされるのは RPM、キックスタート、および ISO ファイルのみです。パッケージフィルターなどのコンテンツビューの定義およびメタデータはエクスポートされません。Satellite 6.4 では、Puppet、Docker、または OSTree コンテンツのエクスポートはサポートされていません。インポートは通常のリポジトリー同期で発生し、常にライブラリー環境に届けられます。

非接続のユースケースは、Satellite とそのクライアントがインターネットには接続されていないエアギャップと呼ばれるネットワークを使用するお客様に幅広く用いられています。このような非接続 Satellite にコンテンツを伝達する唯一の方法は、接続済み Satellite からのエクスポートになります。

重要

双方向の同期は非接続環境では使用されません。非接続サーバーから接続済みサーバーにコンテンツが渡されることはありません。

図D.1 エアギャップネットワークにおける ISS での情報フロー

Information Flow in ISS in an Air-gapped Network

D.1. Satellite Server、Capsule Server、および ISS

ISS は Red Hat Satellite のデプロイメントで独特な役割を果たします。デプロイメントに ISS を含めると、メンテナンスやバックアップを必要とする個別の Satellite Server を維持することと同等になります。ISS はクライアントにフェイルオーバーメカニズムを提供するものではなく、バックアップやリカバリーシステムとして設計されたものでもありません。これは Satellite Server 間での情報共有を図るものです。ISS の実装の主なユースケースとしては、インターネットや外部のコンテンツに接続されていない Satellite Server があり、インターネットに接続されている別の Satellite のコンテンツを同期する必要がある場合が挙げられます。セキュリティーや他の理由で管理インフラストラクチャーを完全に分離する必要がある場合に、このユースケースを適用できます。

別の管理 Web UI およびプラットフォームを維持せずにローカルクライアントの管理とプロビジョニングを希望する場合は、Capsule Server のセットアップを検討してください。

D.2. 前提条件

  • Red Hat Satellite 6 では Satellite 6.2 以降でのみ ISS が利用可能です。これには Red Hat Enterprise Linux 6.7、7.2、もしくはそれ以降が必要になります。
  • エクスポートディレクトリーは、少なくとも 1 つの Red Hat Enterprise Linux エクスポートを受け入れられるサイズである必要があります。デフォルトではエクスポートディレクトリーは /var/lib/pulp/katello-export/ になります。
  • /var/cache/pulp/ および /var/lib/pulp/ ディレクトリーには、エクスポートプロセス中に作成される一時ファイル用にエクスポートされるリポジトリーと同等サイズの空き容量が必要になります。これはデフォルトのエクスポートディレクトリーとは別の容量になります。
  • ダウンストリームの Satellite Server には、有効にする予定のコンテンツに必須のマニフェストとエンタイトルメントが必要になります。エンタイトルメントがないダウンストリーム Satellite ではリポジトリーを有効にできません。
  • リポジトリーのダウンロードポリシーは 即時 に設定する必要があります。このポリシーは Satellite が最初にメタデータと他のリポジトリー情報をダウンロードするかどうか、またリクエストがあった場合に実際のリポジトリーのみをダウンロードするかどうかを指定します。このポリシーが 即時 に設定されていないと、ISS は正常に機能しません。

必須オプションの設定方法は、「ISS の設定」 で説明しています。

D.3. サポートされる同期オプション

Satellite 6.4 では以下の同期オプションがサポートされています。

  • ディレクトリーまたは ISO ファイルへのリポジトリーのエクスポート。
  • ディレクトリーまたは ISO ファイルへの環境または CV バージョンの全リポジトリーのエクスポート。カスタム製品はインポートのプロセス中に再作成することはできますが、Red Hat 製品はマニフェストを使用して作成する必要があるので、再作成されません。
  • RPM ファイルとエラータのデータに基づく増分エクスポート。

これらの同期オプションには、コンテンツのタイプによってエクスポートとインポートの履歴詳細が含まれます。以下は例となります。

  • リポジトリー同期履歴には、エクスポートの発生時刻の他にアップストリームソースの情報が含まれます。
  • CV 同期履歴には、インポートの時刻、バージョン、アップストリームソースの他にエクスポート時刻とバージョンが含まれます。

D.4. チャンク ISO ファイルの使用

Satellite 6.4 はチャンク ISO ファイルへのエクスポートをサポートしています。チャンク ISO は split ISO と類似のものですが、大きな違いが 1 つあります。Satellite は ISO ファイルのサイズを追跡し、ISO に追加されているファイルの合計がそのサイズを超えると、Satellite はその ISO への書き込みを停止し、新しい ISO を作成します。この利点は ISO のファイルサイズを指定 (たとえば 4.7 GB) することができ、かつそれより大きなリポジトリーをエクスポートできることです。これにより、DVD に書き込み可能な複数の 4.7 GB ISO ファイルが作成されます。

チャンクと分割の違いは、分割の split ユーティリティーは ISO のファイル形式を認識しないため、同じシリーズの次のファイル用に書き込み可能な新しい ISO ファイルを作成しないという点です。この方法では、全ファイルを 1 カ所にコピーして連結し、連結した 1 つの大きな ISO をループバックでマウントする必要があります。

--iso-mb-size パラメーターを使用すると、ISO エクスポートファイルのサイズを指定できます。デフォルト値は、片面の単一層 DVD のサイズである 4380 MB です。

D.5. ISS の設定

本セクションでは、ISS の設定方法を説明します。これを正しく設定しないと同期が失敗する可能性があるので、重要な手順になります。

D.5.1. エクスポート先の設定

Satellite 間の同期 (ISS) は、pulp_export_destination 設定にあるようにデフォルトで /var/lib/pulp/katello-export/ ディレクトリーを使用します。このディレクトリーを変更するには、新規ディレクトリーを作成して Pulp エクスポート先を設定する必要があります。これを指定できるのは Satellite の管理者のみで、Satellite が任意のファイルシステムに書き込みしないように、SELinux とその他のパーミッションも設定されています。

よく使用するディレクトリーは、エクスポート後にシンボリックリンクを作成すると便利です。エクスポートするリポジトリーと CV には、リポジトリーディレクトリー構造の前に組織名と環境名が付けられるので、パスが長すぎることになりかねません。

重要

この例で使用されているディレクトリーはデモ用です。実際に使用するエクスポートディレクトリーには必要となるエクスポート RPM と ISO ファイルに十分な容量があることを確認してください。 「コンテンツ管理ストレージ」で、ストレージ要件を推定する方法を説明します。エクスポートプロセス時に、/var/cache/pulp/ ディレクトリーに一時ファイルが作成され、/var/lib/pulp/ に転送されます。つまり、エクスポートプロセス時には、エクスポートされるリポジトリーの 2 倍のサイズのストレージ容量が必要になります。エクスポートが完了したら、一時ファイルは削除されます。

エクスポートディレクトリーの作成

  1. エクスポートディレクトリーを作成します。

    # mkdir /var/www/html/pub/export
  2. foreman ユーザーにエクスポートディレクトリーでの書き込みおよび読み取りパーミッションを付与します。

    # chown foreman:foreman /var/www/html/pub/export
  3. SELinux コンテキストを設定します。

    # semanage fcontext -a -t httpd_sys_rw_content_t \
    "/var/www/html/pub/export(/.*)?"
    # restorecon -RvF /var/www/html/pub/export
    # ls -Zd /var/www/html/pub/export
    drwxr-xr-x. foreman foreman system_u:object_r:httpd_sys_rw_content_t:s0 /var/www/html/pub/export

エクスポート先の設定

CLI をご利用の場合

エクスポート先を変更するには、以下の hammer コマンドを入力します。

# hammer settings set \
--name pulp_export_destination \
--value your-export-directory

たとえば、エクスポート先に /var/www/html/pub/export/ を指定するには、以下を入力します。

# hammer settings set \
--name pulp_export_destination \
--value /var/www/html/pub/export

Web UI をご利用の場合

  1. Web UI で、管理 > 設定 に移動して、コンテンツ タブをクリックします。
  2. 名前 カラムで pulp_export_destination 変数を探して、 フィールドをクリックします。
  3. フィールドに /var/www/html/pub/export などのエクスポート先を入力して、保存 をクリックします。

D.5.2. ダウンロードポリシーの設定

ISS では ダウンロードポリシー即時 に設定する必要があります。これをグローバルに設定すると、すべての組織で作成される新規リポジトリーに適用されます。または、各リポジトリーに個別に設定することもできます。デフォルト値を変更しても既存設定は変更されません。

CLI をご利用の場合

グローバルでデフォルトのダウンロードポリシーを変更するには、以下の手順を実行します。

# hammer settings set \
--name default_download_policy \
--value immediate

特定のリポジトリーのポリシーを変更する場合は、組織のリポジトリーを以下のコマンドで一覧表示できます。

# hammer repository list \
--organization-label organization-label

既存のリポジトリーのダウンロードポリシーを変更するには、以下のコマンドを使用します。

# hammer repository update \
--organization-label organization-label  \
--product "Red Hat Enterprise Linux Server" \
--name "Red Hat Enterprise Linux 7 Server Kickstart x86_64 7.5"  \
--download-policy immediate

Web UI をご利用の場合

Web UI を使ってグローバルでデフォルトのダウンロードポリシーを変更するには、以下の手順を実行します。

  1. 管理 > 設定 に移動します。
  2. コンテンツ タブで default_download_policy を探します。
  3. 値フィールドの編集アイコンをクリックします。
  4. 値を 即時 に設定して 保存 をクリックします。

Web UI で既存のリポジトリーのダウンロードポリシーを変更するには、以下の手順を実行します。

  1. Web UI で コンテンツ > 製品 に移動して、該当製品名をクリックします。
  2. リポジトリー タブで必要なリポジトリー名をクリックし、ダウンロードポリシー フィールドを見つけて、編集アイコンをクリックします。
  3. リストから 即時 を選択して、保存 をクリックします。

D.6. コンテンツのエクスポート

本セクションでは、お使いのアップストリームサーバーから異なるタイプのコンテンツをエクスポートし、1 つ以上のダウンストリームサーバーにインポートする方法を説明します。コンテンツのインポートの詳細は「コンテンツのインポート」を参照してください。

アップストリームとダウンストリームのサーバー間の同期は、現在、完全な分離を必要とするエアギャップ環境などの非接続デプロイメントでサポートされています。

D.6.1. リポジトリーのエクスポート

  1. hammer repository list コマンドを使用して、エクスポートするリポジトリーを一覧表示し、エクスポートで使用する ID を特定します。
  2. アップストリームサーバーからコンテンツをエクスポートするには、hammer repository export コマンドを使用します。このコマンドは、pulp_export_destination 設定で指定しているディレクトリーにコンテンツをエクスポートします。ISS ではデフォルトでディレクトリーにエクスポートします。--export-to-iso 1 パラメーターを使用すると、ディレクトリーではなく ISO ファイルにエクスポートすることができます。以下は例となります。

    # hammer repository export --id 1 [--export-to-iso 1]
注記

--export-to-iso パラメーターを使用する場合は、1 (ISO) または 0 (ディレクトリー) のいずれかを指定する必要があります。このパラメーターにはデフォルト値がありません。

D.6.2. コンテンツビューバージョンのディレクトリーへのエクスポート

コンテンツビューの特定のバージョンをディレクトリーにエクスポートできます。つまり、特定の CV に、要件に合うようなラベルを付けることができます。これで、エクスポートのトラッキングと更新が容易になります。

前提条件

  • CV の全リポジトリーのダウンロードポリシーを 即時 に設定していることを確認します。ポリシーが 即時 に設定されていないリポジトリーは、エクスポートできません。
  • 製品が、必要な日に同期されることを確認します。

Web UI をご利用の場合

  1. コンテンツ > コンテンツビュー に移動し、新規ビューの作成 をクリックします。以下の詳細を入力して CV を作成します。

    1. 名前: CV の簡単な名前。Export_CV と入力します。
    2. ラベル: CV の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいて、このフィールドに値が自動的に入力されます。
    3. 説明: プレーンテキスト形式の CV の説明。
    4. 複合ビュー?: 複合ビューを使用するかどうかを定義します。チェックを外しておきます。
  2. 送信 をクリックして変更を保存します。
  3. リポジトリーの選択 画面で、リポジトリーの選択 テーブルから新しい CV に追加するリポジトリーを選択します。リポジトリーの追加 をクリックして、CV に選択したパッケージを追加します。
  4. Yum コンテンツ > フィルター に移動し、新規フィルター をクリックします。以下の詳細を入力して、エラータ以外のパッケージを含むフィルターを作成します。

    1. 名前: フィルターの簡単な名前。Non-errata Products と入力します。
    2. コンテンツタイプ: フィルターに追加するコンテンツタイプのリスト。パッケージ を選択します。
    3. 包含タイプ: コンテンツを CV に包含または除外するかを定義するリスト。包含 を選択します。
    4. 説明 - フィルターの簡単な説明 (任意)。Include all non-errata Products と入力します。
    5. 保存 をクリックします。
    6. Include RPM 画面で、エラータのないすべての RPM を含めます。 のチェックを外します。
  5. Yum コンテンツ > フィルター に移動し、新規フィルター にクリックします。以下の詳細を入力し、必要な日付範囲に基づいてエラータパッケージを含むフィルターを作成します。

    1. 名前: フィルターの簡単な名前。Erratas untill YYYY-MM-DD と入力します。
    2. コンテンツタイプ: フィルターに追加するコンテンツタイプのリスト。Erratum - Date and Type を選択します。
    3. 包含タイプ: コンテンツを CV に包含または除外するかを定義するリスト。包含 を選択します。
    4. 説明: フィルターの簡単な説明 (任意)。Include errata products untill YYYY-MM-DD と入力します。
    5. 保存 をクリックします。
    6. On the エラータの日付範囲 画面が表示されます。エラータタイプで セキュリティー機能強化バグ修正 のすべてを選択します。
    7. データタイプ更新日 にチェックを入れます。
    8. 開始日 および 終了日 を入力して、製品に日付のフィルターを設定します。
    9. 保存 をクリックします。
  6. 新バージョンの公開 をクリックします。説明 フィールドにリポジトリーの日付範囲を入力することが推奨されます。Force Yum Metadata Regeneration のチェックは外します。
  7. 保存 をクリックすると、CV バージョンを公開して、エクスポートする準備ができました。

CLI をご利用の場合

  1. hammer content-view create コマンドを使用して、新しい CV を作成します。

    # hammer content-view create \
    --name "Export_CV" \
    --organization "Default Organization"
  2. hammer content-view add-repository コマンドを使用して、CV にリポジトリーを追加します。

    # hammer content-view add-repository \
    --name "Export_CV" \
    --product "Red Hat Satellite" \
    --repository "Red Hat Satellite Tools 6 for RHEL 7 Server RPMs x86_64" \
    --organization "Default Organization"
    # hammer content-view add-repository \
    --name "Export_CV" \
    --product "Red Hat Satellite Capsule" \
    --repository "Red Hat Satellite Capsule Tools 6.2 for RHEL 7 Server RPMs x86_64" \
    --organization "Default Organization"
  3. 新しい CV にフィルターを設定するには、以下を行います。

    1. hammer content-view filter create コマンドを実行して、エラータ以外のパッケージを含むフィルターを作成します。

      # hammer content-view filter create \
      --content-view "Export_CV" \
      --inclusion true \
      --name "Non-errata_Products" \
      --type rpm \
      --original-packages true \
      --organization "Default Organization"
    2. hammer content-view filter create コマンドを使用して、エラータパッケージを含むフィルターを作成します。

      # hammer content-view filter create \
      --content-view "Export_CV" \
      --inclusion true \
      --name "Erratas until YYYY-MM-DD" \
      --type erratum \
      --organization "Default Organization"
    3. hammer content-view filter rule create コマンドを使用して、日付範囲を定義するルールを作成します。

      # hammer content-view filter rule create \
      --content-view "Export_CV" \
      --content-view-filter "Erratas until YYYY-MM-DD" \
      --end-date YYYY-MM-DD \
      --types security,enhancement,bugfix \
      --organization "Default Organization"
  4. hammer content-view publish コマンドを使用して CV バージョンを公開して、エクスポートする準備ができました。--description オプションの下で、リポジトリーの日付範囲を入力することが推奨されます。

    # hammer content-view publish \
    --name "Export_CV" \
    --description "Repositories until YYYY-MM-DD" \
    --force-yum-metadata-regeneration true \
    --async \
    --organization "Default Organization"

エクスポートするコンテンツビューバージョンの決定

  1. hammer content-view version list コマンドを使用して、エクスポートするコンテンツビューのバージョンを指定します。以下は例となります。

    $ hammer content-view version list \
    --organization "Default Organization"
    ---|-------------------------------|---------|-----------------------
    ID | NAME                          | VERSION | LIFECYCLE ENVIRONMENTS
    ---|-------------------------------|---------|-----------------------
    3  | Export_CV 2.0                 | 2.0     | Library
    2  | Export_CV 1.0                 | 1.0     | Library
    1  | Default Organization View 1.0 | 1.0     | Library
    ---|-------------------------------|---------|-----------------------

コンテンツビューバージョンのエクスポート:

  1. hammer content-view version export コマンドを使用して、コンテンツビューのバージョンをエクスポートします。

    # hammer content-view version export --id 3

D.6.3. 増分エクスポート

更新時に大容量のリポジトリーのエクスポートを回避するために、増分更新を使用して Satellite Server からの最近の更新だけをエクスポートすることができます。増分更新は、特定の日時に設定した同期イベントを使用して、ローカルのリポジトリーに加えた最近の更新をエクスポートします。

増分更新のリポジトリーを作成するには、hammer repository export コマンドで --since オプションを使用します。以下は例となります。

# hammer repository export \
--id 1 [--export-to-iso 1] \
--since ISO_Date

ここでの ISO_Date は、2010-01-01T12:00:00Z のような ISO 8601 形式になります。

計算に使用されるタイムスタンプは、RPM が Satellite Server で同期した時間です。たとえば、Red Hat が月曜日に RPM をリポジトリーに追加して水曜日に再度追加したとすると、木曜日にはローカルリポジトリーの同期はできず、火曜日の日付を使用した水曜日分の更新のみが得られます。

この機能は、変更をリポジトリーに追加するほかにも、Default Organization View のコンテンツビューで便利ですが、公開済み CV ではそれほど活用できません。

D.7. コンテンツのインポート

Red Hat Satellite 6.4 では現在、非接続環境にあるアップストリーム Satellite Server からエクスポートされたコンテンツのインポートをサポートしています。この方法は、インターネットアクセスのない非接続の Satellite Server に使用し、サーバー間で DVD などの物理的なメディアによるコンテンツの移動が必要になります。

D.7.1. リポジトリーのインポート

前提条件

リポジトリーのインポート:

  1. リポジトリーに対してデータを、HTTPS ではなく HTTP で利用可能にします。たとえば、エクスポートしたディレクトリーを、ダウンストリームサーバーの /var/www/html/pub/export/ ディレクトリーにコピーします。これにより、デフォルトで HTTP で利用できるようになります。
  2. Web UI で、コンテンツ > サブスクリプション に移動します。
  3. マニフェストの管理 を選択します。
  4. マニフェストのインポート/削除 タブでは、Red Hat CDN URL アドレスフィールドを、エクスポートしたリポジトリー内で、content ディレクトリーおよび listing ファイルの場所を一致させます。

    たとえば、エクスポートしたリポジトリーが /var/www/html/pub/export/Default_Organization-Red_Hat_Enterprise_Linux_7_Server_RPMs_x68_64 にある場合は、URL を http://satellite.example.com/pub/export/Default_Organization-Red_Hat_Enterprise_Linux_7_Server_RPMs_x68_64/Default_Organization/Library/ に設定します。

  5. 保存 をクリックします。
  6. コンテンツ > Red Hat リポジトリー に移動し、エクスポートしたリポジトリーを有効にします。

D.7.2. Red Hat リポジトリーとしてのコンテンツビューのインポート

前提条件

注記

また、カスタムリポジトリーは、カスタム製品、たとえば切断した Satellite にインポートできます。Red Hat コンテンツ配信ネットワーク (CDN) の詳細は『Red Hat Satellite 6 のプランニング』「Content Delivery Network (CDN) Structure」を参照してください。

コンテンツビューのインポート

  1. データを、HTTPS ではなく、HTTP で利用可能にします。たとえば、ダウンストリームサーバーの /var/www/html/pub/export/ ディレクトリーにコピーします。
  2. Web UI で、コンテンツ > サブスクリプション に移動します。
  3. マニフェストの管理 を選択します。
  4. マニフェストのインポート/削除 タブで、Red Hat CDN URL アドレスフィールドを設定し、エクスポートしたコンテンツビューの content ディレクトリーおよび listing ファイルを一致します。

    たとえば、エクスポートした CV が /var/www/html/pub/export/Default_Organization-Export_CV-v1.0 にある場合は、URL を http://satellite.example.com/pub/export/Default_Organization-Export_CV-v1.0/Default_Organization/content_views/Export_CV/1.0/ に設定します。

  5. 保存 をクリックします。
  6. コンテンツ > Red Hat リポジトリー に移動し、エクスポートしたリポジトリーを有効にします。
  7. ダウンストリームサーバーで、hammer organization update コマンドを入力して、組織に新しいリポジトリーを追加します。以下のように、エクスポートしたコンテンツビューのバージョンに対応するディレクトリーにアドレスを設定します。

    $ hammer organization update \
    --name "Default Organization" \
    --redhat-repository-url \
    http://satellite.example.com/pub/export/Default_Organization-Export_CV-v1.0/Default_Organization/content_views/Export_CV/1.0/
    
    Organization updated

D.7.3. 増分インポート

増分更新を同期する場合は、増分同期の設定を使用する必要があります。Satellite Web UI で、リポジトリーの「Mirror on Sync (同期時のミラーリング)」設定を無効にしてから同期するようにしてください。Hammer CLI を使用している場合には、「--incremental」オプションを追加する必要があります。増分同期設定を使用しない場合は、リポジトリーのコンテンツが削除され、増分更新からのコンテンツのみが残ります。誤った上書きを元に戻すには、すべてエクスポートをしてから再度同期する必要があります。

付録E リモートファイルタイプリポジトリーの作成

pulp-manifest を使用して、Satellite Server の外部にあるファイルのディレクトリーから、カスタムファイルタイプリポジトリーを作成します。その後、HTTP または HTTPS 経由で Satellite Server にファイルを同期します。ファイルタイプリポジトリーにファイルを追加すると、他のリポジトリーと同じようにファイルを操作できます。

この手順は、リモートサーバーのディレクトリーにリポジトリーを設定する方法を説明します。Satellite Server がインストールされているベースシステムのディレクトリーにファイルタイプリポジトリーを作成するには、「ローカルディレクトリーにカスタムのファイルタイプリポジトリーの作成」 を参照してください。

前提条件

リモートファイルタイプリポジトリーを設定するには、以下の条件を満たす必要があります。

  • Red Hat Enterprise Linux 7 サーバーが Satellite または Red Hat CDN に登録されている。
  • Red Hat Enterprise Linux Server および Satellite Tools リポジトリーにエンタイトルメントがある。
  • HTTP サーバーがインストールされている。web サーバーの設定方法は『システム管理者ガイド』における Red Hat Enterprise Linux 7 での「Apache HTTP Server」を参照してください。

リモートディレクトリーにファイルタイプリポジトリーの作成:

  1. サーバーおよび Satellite Tools リポジトリーが有効になっていることを確認します。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.4-rpms
  2. Pulp マニフェストパッケージをインストールします。

    # yum install python-pulp-manifest
  3. HTTP サーバーのパブリックフォルダーのファイルタイプリポジトリーとして使用するディレクトリーを作成します。

    # mkdir /var/www/html/pub/my_file_repo
  4. ディレクトリーにファイルを追加して、テストファイルを作成します。

    # touch /var/www/html/pub/my_file_repo/test.txt
  5. Pulp マニフェストコマンドを入力して、マニフェストを作成します。

    # pulp-manifest /var/www/html/pub/my_file_repo
  6. マニフェストが作成されたことを確認します。

    # ls /var/www/html/pub/my_file_repo
    PULP_MANIFEST  test.txt

リモートのファイルタイプレポジトリーからのファイルのインポート

  1. ファイルタイプリポジトリーの作成

    Satellite Web UI で、コンテンツ > 製品 に移動します。製品の名前を選択します (この例では My File Product)。リポジトリー タブで 新規リポジトリー を選択し、以下の詳細を入力します。

    • 名前: リポジトリーの簡単な名前。My Files と入力します。
    • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
    • タイプ: リポジトリーのコンテンツタイプ。file を選択します。
    • アップストリーム URL: ソースとして使用するリモートリポジトリー。
    • SSL の検証: アップストリームのリポジトリーの SSL 証明書が信頼できる認証機関 (CA) によって署名されていることを確認する場合のみ選択します。
    • アップストリームのユーザー名: 認証に必要な場合は、アップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
    • アップストリームのパスワード: アップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  2. 保存 をクリックして、このリポジトリーエントリーを保存します。
  3. ファイルタイプリポジトリーを更新するには、コンテンツ > 製品 に移動します。製品名を選択します (この例では My File Product)。更新したリポジトリー名を選択します (この例では My Files)。
  4. アクションの選択 メニューから 同期開始 を選択します。
  5. リポジトリーを公開した URL を開いて、ファイルを表示します。

付録F Git を使用したテンプレートの同期

Red Hat Satellite 6 は、Satellite Server と、Git リポジトリーまたはローカルディレクトリーとの間で、ジョブテンプレート、プロビジョニングテンプレート、およびパーティションテーブルテンプレートの同期を有効にします。

注記

Git リポジトリーまたはローカルディレクトリーと、Satellite Server との間でテンプレートを同期するのはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat サービスレベルアグリーメント (SLA) では完全にサポートされていません。これらは、機能的に完全でない可能性があり、実稼働環境での使用を目的とはしていませんが、近々発表予定のプロダクトイノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

このセクションでは、以下のワークフローを説明します。

  • TemplateSync プラグインのインストールおよび設定
  • タスクのエクスポートおよびインポートの実行

F.1. TemplateSync プラグインの有効化

  1. Satellite Server でプラグインを有効にします。

    # satellite-installer --enable-foreman-plugin-templates
  2. プラグインが適切にインストールされていることを確認するには、管理 > 設定TemplateSync メニューがあることを確認します。

F.2. TemplateSync プラグインの設定

管理 > 設定 > TemplateSync に移動して、プラグインを設定します。以下の表は、属性の動作を説明します。一部の属性は、タスクのインポートまたはエクスポートにのみ使用されます。

表F.1 テンプレートのプラグイン設定の同期

パラメーターAPI パラメーター名インポートの意味エクスポートの意味

関連付け

associate

許可される値: alwaysnewnever

OS、組織、およびロケーションベースのメタデータへのテンプレートの関連付け

該当なし

ブランチ

branch

Git リポジトリーで、読み取るデフォルトブランチを指定します。

Git リポジトリーで、書き込むデフォルトブランチを指定します。

ディレクトリー名

dirname

リポジトリー下で、読み込むサブディレクトリーを指定します。

リポジトリー下で、書き込むサブディレクトリーを指定します。

フィルター

filter

正規表現に一致する名前を持つテンプレートだけをインポートします。

正規表現に一致する名前を持つテンプレートだけをエクスポートします。

強制インポート

force

インポートしたテンプレートで、ロックされている同じ名前のテンプレートを上書きします。

該当なし

メタデータエクスポートモード

metadata_export_mode

許可される値: refreshkeepremove

該当なし

エクスポートする際にメタデータが処理される方法を定義します。

  • 更新 — テンプレートコンテンツから既存のメタデータを削除して、現在の割り当ておよび属性をベースにしたメタデータを新たに生成します。
  • 維持: 既存のメタデータを持続します。
  • 削除: メタデータがないテンプレートをエクスポートします。メタデータを手動で追加する場合は便利です。

否定

negate

許可される値: truefalse

フィルター属性を無視するテンプレートをインポートします。

フィルター属性を無視するテンプレートをエクスポートします。

接頭辞

prefix

テンプレート名は接頭辞で開始しないため、指定した文字列をテンプレートの頭に追加します。

該当なし

リポジトリー

repo

同期するリポジトリーへのパスを定義します。

エクスポートするリポジトリーへのパスを定義します。

詳細

verbose

許可される値: truefalse

このアクションについて、詳細なメッセージをログに記録します。

該当なし

F.3. テンプレートのインポートおよびエクスポート

タスクのインポートおよびエクスポートは、一連の API コールを介して利用できます。API コールは、ロールベースのアクセスコントロールシステムを使用し、これによりどのユーザーもタスクを実行できます。TemplateSync プラグインにより、Git リポジトリーまたはローカルディレクトリーで同期できます。

前提条件

インポートしたテンプレートが Satellite Web UI に表示されるようにするには、各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要があります。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。

<%#
kind: provision
name: My Kickstart File
oses:
- RedHat 7
- RedHat 6
locations:
- First Location
- Second Location
organizations:
- Default Organization
- Extra Organization
%>

Hammer を使用したテンプレートのインポートやエクスポートも可能です。詳細は、『Hammer Cli ガイド』「テンプレートのプロビジョニング」を参照してください。

F.3.1. Git リポジトリーでテンプレートの同期

  1. SSH 認証 (gitosis、gitolite、git デーモンなど) を使用する Git サーバーを設定します。
  2. TemplateSync タブで TemplateSync プラグイン設定を設定します。

    1. Branch 設定を変更して、Git サーバーへのターゲットブランチに一致します。
    2. Git リポジトリーに一致するように、Repo 設定を変更します。たとえば、git@git.example.com/templates.git に置いたリポジトリーに対して、設定を ssh://git@git.example.com/templates.git に設定します。
  3. Foreman ユーザーとして Git SSH ホストキーを許可します。

    # sudo -u foreman ssh git.example.com

    SSH 接続が成功していないため、出力に Permission denied, please try again. メッセージが表示されることが期待されます。

  4. SSH キーペアがない場合は作成します。パスフレーズは指定しないでください。

    # sudo -u foreman ssh-keygen
  5. Satellite の公開キーを使用して Git サーバーを設定します。これは、/usr/share/foreman/.ssh/id_rsa.pub に保存されます。
  6. Satellite Server から、TemplateSync メニューに指定した Git リポジトリーにテンプレートをエクスポートします。

    $ curl -H "Accept:application/json,version=2" \
    -H "Content-Type:application/json" \
    -u login:password \
    -k https://satellite.example.com/api/v2/templates/export \
    -X POST
    
    {"message":"Success"}
  7. コンテンツを変更したら、テンプレートを Satellite Server にインポートします。

    $ curl -H "Accept:application/json,version=2" \
    -H "Content-Type:application/json" \
    -u login:password \
    -k https://satellite.example.com/api/v2/templates/import \
    -X POST
    
    {“message”:”Success”}

    Satellite が提供するテンプレートがロックされ、デフォルトではインポートできません。この動作を上書きするには、TemplateSync メニューの Force import 設定を yes に変更するか、force パラメーター -d '{ "force": "true" }’ を import コマンドに追加します。

F.3.2. ローカルディレクトリー

ローカルディレクトリーでリビジョン管理システムリポジトリーを設定した場合は、テンプレートをローカルディレクトリーと同期すると便利です。つまり、テンプレートを編集し、ディレクトリーで編集履歴を追跡できます。テンプレートの編集後に変更を Satellite Server に同期します。

  1. テンプレートを保存するディレクトリーを作成し、適切なパーミッションおよび SELinux コンテキストを適用します。

    # mkdir -p /usr/share/templates_dir/
    # chown foreman /usr/share/templates_dir/
    # chcon -t httpd_sys_rw_content_t /usr/share/templates_dir/ -R
  2. TemplateSync タブで Repo 設定を変更し、エクスポートディレクトリー /usr/share/templates_dir/ に一致させます。
  3. Satellite Server からローカルディレクトリーにテンプレートをエクスポートします。

    $ curl -H "Accept:application/json,version=2" \
    -H "Content-Type:application/json" \
    -u login:password \
    -k https://satellite.example.com/api/v2/templates/export \
    -X POST \
    
    {"message":"Success"}
  4. コンテンツを変更したら、テンプレートを Satellite Server にインポートします。

    $ curl -H "Accept:application/json,version=2" \
    -H "Content-Type:application/json" \
    -u login:password \
    -k https://satellite.example.com/api/v2/templates/import \
    -X POST
    
    {“message”:”Success”}

    Satellite が提供するテンプレートがロックされ、デフォルトではインポートできません。この動作を上書きするには、TemplateSync メニューの Force import 設定を yes に変更するか、force パラメーター -d '{ "force": "true" }’ を import コマンドに追加します。

注記

-d パラメーターを使用して、リクエストでデフォルトの API 設定を上書きします。以下の例では、git.example.com/templates リポジトリーにテンプレートをエクスポートします。

$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" \
-u login:password \
-k https://satellite.example.com/api/v2/templates/export \
-X POST \
-d "{\"repo\":\"git.example.com/templates\"}"

F.4. 高度な Git 設定

コマンドラインで、または .gitconfig ファイルを編集して、TemplateSync プラグインに追加の Git 設定を実行できます。

自己署名の Git 証明書の同意

Git サーバーで自己署名証明書の認証を使用している場合は、git config http.sslCAPath コマンドでその証明書を検証します。

たとえば、以下のコマンドを実行して/cert/cert.pem に保存されている自己署名証明書を確認します。

# sudo -u foreman git config --global http.sslCAPath cert/cert.pem

高度なオプションの一覧は、git-config の man ページを参照します。

F.5. プラグインのアンインストール

アンインストール後にエラーを回避するには、以下を行います。

  1. Satellite インストーラーを使用するプラグインを無効にします。

    # satellite-installer --no-enable-foreman-plugin-templates
  2. プラグインのカスタムデータを削除します。このコマンドは、作成したテンプレートには影響しません。

    # foreman-rake templates:cleanup
  3. プラグインをアンインストールします。

    # yum remove tfm-rubygem-foreman_templates

法律上の通知

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.