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

このセクションでは、Satellite の製品とリポジトリーを使用する方法、Satellite コンテンツが Red Hat コンテンツ配信ネットワーク (CDN) のコンテンツに合わせて最新の状態に保たれるように、同期プランを作成する方法を説明します。

5.1. Red Hat Satellite の製品

Satellite では、製品 は複数のリポジトリーをグループ化する組織単位です。たとえば、Satellite では、Red Hat Enterprise Linux Server は 製品で、この製品のリポジトリーは、さまざまなバージョン、アーキテクチャー、アドオンで構成されます。製品を使用すると、相互に依存関係にあるリポジトリーが、まとめて同期されます。Red Hat リポジトリーの場合は、製品は、リポジトリーを有効にした後に自動的に作成されます。

5.2. コンテンツの同期の概要

Satellite Server は、独自のリポジトリーと Red Hat CDN 上のリポジトリーを同期し、Satellite Server で Red Hat のリポジトリーの同一コピーが保持されるようにします。Satellite Server はこのリポジトリー情報を取得し、Satellite Server のファイルシステムに保存します。最初の同期後に、リポジトリーが CDN のリポジトリーに合わせて最新の状態が保たれるようにチェックする同期プランを作成できます。

ISO イメージを使用して最初の同期を実行できます。コンテンツ ISO の使用の詳細は、付録C 接続済み Satellite Server へのコンテンツ ISO のインポートを参照してください。

5.3. グローバル HTTP プロキシーの無効化

設定されたプロキシーを使用せずにローカルリポジトリーを同期する場合には、satellite-installer ツールの実行時に設定されるグローバルプロキシーを無視できます。

手順

グローバル HTTP プロキシーを無視するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > 製品 に移動し、変更する製品を選択します。
  2. リポジトリー タブをクリックして、変更するリポジトリーを選択します。
  3. 同期設定 エリアで、グローバル HTTP Capsule を無視 に移動します。編集アイコンをクリックし、チェックボックスを選択して、保存 をクリックします。

CLI をご利用の場合

# hammer repository update --id Repository_ID --ignore-global-proxy yes

5.4. ダウンロードポリシーの概要

Red Hat Satellite には、コンテンツメタデータのみをダウンロードし、実際のコンテンツのダウンロードは後で行うなど、RPM コンテンツの同期に関する複数のダウンロードポリシーが含まれています。

Satellite Server には以下のポリシーがあります。

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

オンデマンド背景 のポリシーは、コンテンツの同期時間を短縮するので、遅延同期 機能として動作します。遅延同期機能は yum リポジトリーにのみ使用してください。通常と同じように、コンテンツビューにパッケージを追加し、通常通りにライフサイクル環境にプロモートすることができます。

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

即時
Capsule Server は、同期時にメタデータとパッケージすべてをダウンロードします。Satellite Server で対応するリポジトリーを オンデマンド に設定した場合は、Satellite Server が強制的にすべてのパッケージをダウンロードするので、この設定を使用しないでください。
オンデマンド
Capsule Server は、同期時にメタデータのみをダウンロードします。Capsule Server は、直接接続されたクライアントから要求されると、ファイルシステムだけにパッケージを取得して保存します。オンデマンド ダウンロードポリシーを使用すると、Capsule Server でコンテンツを入手できない場合には、コンテンツが Satellite Server からダウンロードされます。
背景
Capsule Server は、最初の同期後にすべてのパッケージをダウンロードする背景タスクを作成します。
継承
Capsule Server は、Satellite Server で対応するリポジトリーから、リポジトリーのダウンロードポリシーを継承します。

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

5.5. デフォルトのダウンロードポリシーの変更

Satellite が全組織に作成した新規リポジトリーに対して適用するデフォルトのダウンロードポリシーを設定できます。デフォルト値を変更しても、既存の設定は変更されません。

手順

リポジトリーのデフォルトのダウンロードポリシーを変更するには、以下の手順を行います。

  1. Satellite Web UI で、管理 > 設定に移動します。
  2. コンテンツ タブをクリックし、デフォルトのリポジトリーダウンロードポリシー を見つけます。
  3. フィールドで、編集アイコンをクリックします。
  4. 必要なダウンロードポリシーを選択し、保存 をクリックします。

CLI をご利用の場合

デフォルトのダウンロードポリシーをimmediateon_demandbackground の 1 つに変更するには、以下のコマンドを入力します。

# hammer settings set \
--name default_download_policy \
--value immediate

5.6. リポジトリーのダウンロードポリシーの変更

リポジトリーのダウンロードポリシーも設定できます。

手順

リポジトリーのダウンロードポリシーを設定するには、以下の手順を行います。

  1. Web UI で コンテンツ > 製品に移動して、該当製品名をクリックします。
  2. リポジトリー タブで必要なリポジトリー名をクリックし、ポリシーのダウンロード フィールドを見つけて、編集アイコンをクリックします。
  3. リストから、必要なダウンロードポリシーを選択して、保存 をクリックします。

CLI をご利用の場合

  1. 組織のリポジトリーを一覧表示します。

    # hammer repository list \
    --organization-label organization-label
  2. リポジトリーのダウンロードポリシーを immediateon_demandbackground の 1 つに変更します。

    # 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

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

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

インターネットから切断された Satellite

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

Red Hat Enterprise Linux 8 の場合

Red Hat Enterprise Linux 8 に必要な AppStream と BaseOS のリポジトリーを追加するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > Red Hat リポジトリーに移動します。
  2. 製品別のフィルター 一覧から Red Hat Enterprise Linux x86_64 を選択します。
  3. 結果の一覧をフィルタリングするには、検索 フィールドを使用して名前別にフィルタリングするか、推奨のリポジトリー ボタンをオンの位置に切り替えます。
  4. 利用可能なリポジトリーペインで、Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMS)Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) を展開します。
  5. x86_64 8 エントリーの横にある 有効化 アイコンをクリックして、リポジトリーを有効にします。
  6. コンテンツ > 同期の状態 に移動して、Red Hat Enterprise Linux 8 リポジトリーを選択し、今すぐ同期 をクリックします。

Red Hat Enterprise Linux 8 モジュールの表示

Red Hat Enterprise Linux 8 のリポジトリーを Satellite に同期すると、リポジトリーに関連付けられているモジュールストリームを表示できます。

リポジトリーのモジュールストリームを表示するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > 製品 に移動し、表示するリポジトリーが含まれる製品を選択します。
  2. リポジトリーの コンテンツ 列で、58 モジュールストリーム など、モジュールストリーム の数をクリックします。
  3. 特定のモジュールストリームに関する情報を表示するには、モジュールをクリックします。

Red Hat Enterprise Linux 7 の場合

リポジトリーを追加するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > Red Hat リポジトリーに移動します。
  2. Red Hat Enterprise Linux 7 Server (RPMs) リポジトリーを検索するには、リポジトリー名を入力するか、推奨のリポジトリー ボタンをオンの位置に切り替えて、必要なリポジトリーの一覧を表示します。
  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 をご利用の場合

  1. 製品を検索するには、以下のコマンドを実行します。

    # hammer product list --organization "My_Organization"
  2. 製品のリポジトリーのセットを一覧表示します。

    # hammer repository-set list \
    --product "Red Hat Enterprise Linux Server" \
    --organization "My_Organization"
  3. 名前または 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 "My_Organization"

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

リポジトリーを Red Hat CDN のリポジトリーと同期します。

Web UI をご利用の場合

  1. Satellite Web UI で、コンテンツ > 製品 に移動して、Red Hat Enterprise Linux Server を選択します。
  2. すべてのリポジトリーを選択して 今すぐ同期 をクリックします。

Web UI で同期の進捗状況を表示するには、コンテンツ > 同期の状態 に移動して、対応する製品またはリポジトリーツリーを展開します。

CLI をご利用の場合

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

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

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

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

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

 単一パッケージ (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 秒

定期的に更新されるように同期プランを作成します。

ダウンロードポリシーの変更

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

5.9. リポジトリーの復旧

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

最適同期
リポジトリーの同期時に、アップストリームの RPM との違いが検出されない RPM は回避します。
完全同期
検出した変更に関係なく、すべての RPM を同期します。特定の RPM が、アップストリームリポジトリーに存在しても、ローカルリポジトリーにダウンロードできなかった場合はこのオプションを使用します。
コンテンツの同期検証

すべての RPM を同期してから、すべての RPM のチェックサムをローカルで検証します。RPM のチェックサムがアップストリームと異なる場合は、RPM をもう一度ダウンロードします。このオプションは yum リポジトリーにのみ該当します。以下のいずれかのエラーが発生した場合に限りこのオプションを使用します。

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

手順

高度なオプションを使用して特定のリポジトリーを同期するには、以下の手順を行います。

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

CLI をご利用の場合

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

    # hammer repository list --organization "My_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.10. 同期速度の制限

同期の速度を制限して、利用可能な帯域幅の枯渇や、その他のパフォーマンスの問題を回避できます。これには、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/ ディレクトリーで、インポーターごとに設定する必要があります。たとえば、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
    }
  3. 編集後にファイルの構文を検証します。

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

    # foreman-maintain service restart

5.11. 同期プランの作成

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

手順

同期プランを作成するには、以下の手順を行います。

  1. Satellite Web UI で コンテンツ > 同期プラン に移動して、新規同期プラン をクリックします。
  2. 名前 フィールドに、プランの名前を入力します。
  3. 説明 フィールドに、プランの説明を入力します。
  4. 間隔 の一覧から、プランを実行する間隔を選択します。
  5. 開始日開始時間 のリストから、同期プランの実行を開始する日時を開始します。
  6. 保存をクリックします。
  7. 製品 タブをクリックし、次に 追加 をクリックします。Red Hat Enterprise Linux Server 製品を選択し、選択した項目を追加 をクリックします。

CLI をご利用の場合

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

    # hammer sync-plan create \
    --name "Red Hat Products 2" \
    --description "Example Plan for Red Hat Products" \
    --interval daily \
    --sync-date "2016-02-01 01:00:00" \
    --enabled true \
    --organization "My_Organization"
  2. Red Hat Enterprise Linux Server 製品を同期プランに割り当てます。

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