第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 の使用の詳細は、付録E 接続済み 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. リストから、必要なダウンロードポリシーを選択して、Save をクリックします。

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を使用する場合は、コンテンツを同期する前に、コンテンツをローカル CDN サーバーと同期するように Satellite を設定する必要があります。詳細は、付録B コンテンツをローカル CDN サーバーと同期するための Satellite の設定 を参照してください。

リポジトリーのバージョン管理

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

Red Hat Enterprise Linux 8 クライアントの場合

Red Hat Enterprise Linux 8 クライアントをプロビジョニングするには、Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMS) および Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) のリポジトリーが必要です。

Red Hat Enterprise Linux 7 クライアントの場合

Red Hat Enterprise Linux 7 クライアントをプロビジョニングするには、Red Hat Enterprise Linux 7 Server (RPMs) リポジトリーが必要です。

手順

  1. Satellite Web UI で、コンテンツ > Red Hat リポジトリーに移動します。
  2. リポジトリーを検索するには、リポジトリー名を入力するか、推奨のリポジトリー ボタンをオンの位置に切り替えて、必要なリポジトリーの一覧を表示します。
  3. 利用可能なリポジトリーのペインで、リポジトリーをクリックしてリポジトリーセットを展開します。
  4. 必要な基本アーキテクチャーとリリースバージョンの横にある 有効 アイコンをクリックします。

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 で、コンテンツ > 製品 に移動し、同期が必要なリポジトリーを含む製品を選択します。
  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 秒

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

5.9. 組織の全リポジトリーの同期

以下の手順を使用して、組織内の全リポジトリーを同期します。

手順

組織内の全リポジトリーを同期するには、Satellite Server で次の Bash スクリプトを実行します。

ORG="Your_Organization"

for i in $(hammer --no-headers --csv repository list --organization $ORG | awk -F, {'print $1'})
do
  hammer repository synchronize --id ${i} --organization $ORG --async
done

5.10. リポジトリーの復旧

リポジトリーが破損した場合は、高度な同期を使用してそれを復旧できます。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.11. 同期速度の制限

同期の速度を制限して、利用可能な帯域幅の枯渇や、その他のパフォーマンスの問題を回避できます。これには、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-maintain サービスを再起動して変更を適用します。

    # satellite-maintain service restart

5.12. 同期プランの作成

同期プランでは、スケジュールされた日時にコンテンツをチェックし、更新します。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"
  3. 組織の同期プランで利用可能なものを表示して、同期プランが作成されたことを確認します。

    # hammer sync-plan list --organization "Default Organization"

5.13. 複数製品への同期プランの割り当て

以下の手順を使用して、最低でも 1 度同期され、1 つ以上リポジトリーが含まれる組織の製品に、同期プランを割り当てます。

手順

選択した製品に同期プランを割り当てるには、次の手順を実行します。

  1. 次の Bash スクリプトを実行します。

    ORG="Your_Organization"
    SYNC_PLAN="daily_sync_at_3_a.m"
    
    for i in $(hammer --no-headers --csv product list --organization $ORG --per-page 999 | grep -vi not_synced | awk -F, {'{ if ($5!=0) print $1}'})
    do
      hammer sync-plan create --name $SYNC_PLAN --interval daily --sync-date "2018-06-20 03:00:00" --enabled true --organization $ORG
      hammer product set-sync-plan --sync-plan $SYNC_PLAN --organization $ORG --id $i
    done
  2. スクリプトの実行後、同期プランを割り当てた製品を表示します。

    # hammer product list --organization $ORG --sync-plan $SYNC_PLAN