第4章 Red Hat コンテンツのインポート
この時点で Satellite Server には必要なサブスクリプション情報がインポートされています。コンテンツはシステムに追加できる状態です。本章では、Definitive Media Library (DML) の概念とコンテンツを同期して DML を作成する方法を説明します。
4.1. Definitive Media Library の作成
DML は、ソフトウェアおよび設定の承認された最終的なバージョンを保存および保護するリポジトリーです。つまり、DML は Satellite にインポートされたコンテンツのマスターバージョンとして機能します。これには、RPM ファイル、キックスタートツリー、ISO イメージなどの Red Hat コンテンツが含まれます。「Red Hat Satellite 6 コンテンツ管理の概要」 で説明したように、Red Hat Satellite 6 では、コンテンツは DML で保存および管理されます。
4.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 の製品およびリポジトリーを同期します。
4.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 をダウンロードおよびインポートよりも時間が短縮されることがあります。
4.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 をインストールまたはアップデートした場合は利用できません。
4.5. 同期する Red Hat リポジトリーの選択
同期するリポジトリーを選択する最初の手順では、リポジトリーを含む製品を特定し、リリースバージョンとベースアーキテクチャーに基づいてリポジトリーを有効にします。
非接続の Satellite を使用している場合は、コンテンツを同期する前に Red Hat Satellite 用のコンテンツ ISO をインポートし、Satellite Server 上で CDN URL を変更する必要があります。詳細は「付録B 非接続の Satellite Server へのコンテンツ ISO のインポート」を参照してください。
Web UI をご利用の場合
コンテンツ > Red Hat リポジトリー に移動します。これにより、さまざまなコンテンツタイプのタブのセットが表示されます。このページをロードするときのデフォルトのタブは RPM です。このタブには、RPM コンテンツを提供するサブスクライブ済みの製品一覧が含まれます。
製品と特定のリポジトリーの関係は、カスケード型の階層で結ばれます。製品を選択すると、その製品のリポジトリーセットの一覧が開きます。リポジトリーセットを選択すると、有効にできるリポジトリーの一覧が開きます。このシナリオでは、Red Hat Enterprise Linux Server、次に Red Hat Enterprise Linux 7 Server (RPMs) を選択し、Red Hat Enterprise Linux 7 Server RPMs 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 の最新バージョン向けのリポジトリー。継続的なパッケージアップデートを受け取るために、 |
Red Hat Satellite Tools 6.3 for RHEL 7 Server RPMs x86_64 |
RPM |
クライアントシステム用システム管理エージェントおよびツールを含む Satellite Tools リポジトリー。新しいシステムのプロビジョニング後に、Satellite により |
Red Hat Enterprise Linux 7.2 Kickstart x86_64 7Server |
キックスタート |
Red Hat Enterprise Linux 7.2 向けキックスタートツリー。PXE を介して新しいシステムをプロビジョニングする場合にインストールメディアとして使用します。 |
これらのリポジトリーは、このシナリオの DML 向けの初期コンテンツを提供します。それぞれのニーズに合わせて複数のリポジトリーを選択できます。
このシナリオでは、すべてのリポジトリーで x86_64
をベースアーキテクチャーとして使用します。
4.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
オプションを追加して実行します。
4.6.1. リポジトリーの復旧
リポジトリーが破損した場合は、高度な同期を使用してそれを復旧できます。3 つのオプションの中から選択できます。
- 最適同期: リポジトリーの同期時に、アップストリームの RPM との違いが検出されない RPM は回避します。
- 完全同期: 検出した変更にかかわらずすべての RPM を同期します。特定の RPM が、アップストリームリポジトリーに存在しても、ローカルリポジトリーにダウンロードできない場合はこのオプションを使用します。
コンテンツの同期を検証: すべての RPM を同期し、すべての RPM のチェックサムをローカルで検証します。RPM のチェックサムがアップストリームと異なっている場合は、RPM を再ダウンロードします。このオプションは
yum
リポジトリーにのみ関連します。以下のいずれかのエラーが発生した場合に限りこのオプションを使用します。-
yum
との同期中に、特定の RPM で404
エラーが発生した場合。 -
特定のエラーが破損していることを示す
Package does not match intended download
エラーが発生した場合。
-
高度なオプションを使用して特定のリポジトリーへの同期:
Web UI ユーザーの場合
- コンテンツ > 製品 に移動します。
- 破損したリポジトリーを含む製品を選択します。
- 同期するリポジトリーの名前をクリックします。
- アクションの選択 メニューを展開し、高度な同期 を選択します。
- オプションを選択し、同期 をクリックします。
CLI ユーザーの場合
リポジトリー ID の一覧を取得します。
# hammer repository list --organization "Default Organization"
必要なオプションを使用して破損したリポジトリーの同期:
最適な同期の場合:
# hammer repository synchronize --incremental true --id 1
完全な同期の場合:
# hammer repository synchronize --skip-metadata-check true --id 1
コンテンツを同期する場合:
# hammer repository synchronize --validate-contents true --id 1
4.6.2. 同期速度の制限
同期の速度を制限して、利用可能な帯域幅が枯渇するのを回避したり、パフォーマンス問題を回避したりすることはできません。これは、PULP_CONCURRENCY パラメーターおよび max_speed パラメーターを設定することで行います。この設定はアップグレード時に上書きされます。設定を復元できるようにするために、アップグレード前に変更したファイルのバックアップすることが推奨されます。
並行して実行する同期ジョブの数を制御するには、
/etc/default/pulp_workers
ファイルの PULP_CONCURRENCY パラメーターを設定します。たとえば、平行して実行するジョブの数を 1 に設定するには、PULP_CONCURRENCY
を 1 に設定します。PULP_CONCURRENCY=1
デフォルトでは、CPU が 8 個より少なくなるシステムでは、
PULP_CONCURRENCY
が CPU の数に設定されます。8 個以上の場合は、8 に設定されます。同期するネットワークの最大速度 (バイト毎秒) を設定するには、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 }
編集後のファイル構文の検証:
# json_verify < /etc/pulp/server/plugins.conf.d/yum_importer.json JSON is valid
Satellite サービスを再起動して、変更を適用します。
# katello-service restart
4.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 リポジトリーを最新の状態にします。
4.8. 本章のまとめ
本章では、Red Hat コンテンツを ACME の Satellite Server にインポートし、同期計画を介して Red Hat コンテンツを最新の状態にする方法を説明しました。
次章では、Satellite Server の DML へカスタムコンテンツをインポートする方法を説明します。このプロセスは、カスタム製品を作成および管理する点を除いて、Red Hat コンテンツをインポートするプロセスと同じになります。