14.2. Linux ソフトウェアリポジトリーの管理
リポジトリーは、Linux ディストリビューションのダウンロード可能なソフトウェアが含まれるサーバーノードです。yum
を使用して、リポジトリーから RHUA ノードおよび CDS ノードへの RPM の検索、インストール、制御を行います。
14.2.1. 利用可能なリポジトリーの一覧表示
手順
Red Hat Update Infrastructure Management Tool のホーム画面に移動します。
[root@rhua ~]# rhui-manager
-
r
を押して、リポジトリーの管理 を選択します。 l
を押して、list repositories currently managed by the RHUI を選択します。Connected: rhua.example.com ------------------------------------------------------------------------------ rhui (repo) => l
14.2.2. リポジトリー情報の表示
Repository Management 画面では、特定のリポジトリーに関する情報を表示できます。
手順
-
Repository Management 画面で、
i
を押します。この出力には、Red Hat Update Infrastructure が管理するすべてのリポジトリーが含まれます。 -
プロンプトでリポジトリーの番号を入力して、表示するリポジトリーを選択します。リポジトリーの数を入力すると、そのリポジトリー名の横にチェックマークが付けられます。また、リポジトリーの範囲を選択することもできます (例:
1
~5
)。 - 表示するリポジトリーがすべて確認されるされるまで続行します。
プロンプトで
c
を押して確認します。Name: RHEL RHUI Server 7 Containers (7Server-x86_64) Type: Red Hat Relative Path: content/dist/rhel/rhui/server/7/7Server/x86_64/containers/ GPG Check: Yes Custom GPG Keys: (None) Red Hat GPG Key: Yes Package Count: 0 Last Sync: Never Next Sync: 11-30-2015 19:38
14.2.3. Red Hat リポジトリーの追加
手順
- 新しい Red Hat リポジトリーを追加する前に、エンタイトルメントが適用された製品用に特定のリポジトリーを読み込みます。
詳しくは、「リポジトリーの作成」 を参照してください。
14.2.4. Red Hat リポジトリーの削除
Red Hat Update Infrastructure Management Tool が Red Hat リポジトリーを削除すると、RHUA および適用可能なすべての CDS ノードからリポジトリーが削除されます。
リポジトリーのコンテンツはディスク上に残り、ディスク領域を消費します。このコンテンツは、孤立したコンテンツユニットまたは略して孤立 (orphan) と呼ばれています。詳細は、「孤立したコンテンツユニット」 を参照してください。
手順
-
Repository Management 画面で
d
を押して、Red Hat リポジトリーを削除します。RHUI が現在管理しているリポジトリーの一覧が表示されます。 -
プロンプトでリポジトリーの数を入力して、削除するリポジトリーを選択します。リポジトリーの数を入力すると、そのリポジトリー名の横にチェックマークが付けられます。また、リポジトリーの範囲を選択することもできます (例:
1
~5
)。 - 削除するリポジトリーがすべて確認されるまで続行します。
プロンプトで
c
を押して確定します。注記リポジトリーの削除後、削除されたリポジトリーを参照するクライアント設定 RPM は
yum
では使用できません。
14.2.5. リポジトリーの RPM パッケージの一覧表示
Red Hat Update Infrastructure Management Tool 内のリポジトリーの一覧を表示する際に、パッケージ数が 100 未満のリポジトリーのみがそのコンテンツを表示します。100 を超えるパッケージでは、パッケージ数のみが表示されます。
手順
-
リポジトリーに含まれるパッケージの数にかかわらず、完全なリストを表示するには、Home 画面で
r
を押して Repository Management 画面にアクセスします。 -
p
を押して、list packages in a repository (RPM content only) を選択します。 - 表示するリポジトリーの数を選択します。Red Hat Update Infrastructure Management Tool により、結果をフィルターリングするかどうかを尋ねられます。行を空白のままにして、フィルターなしで結果を確認します。
- または、結果をフィルターリングする RPM 名の最初の数文字を入力します。
14.2.6. カスタムリポジトリーを作成します。
Red Hat 以外の新しいパッケージを RHUI サーバーに配布する場合は、保護済みのリポジトリーまたは 64 ビットの RHUI サーバーを使用します。たとえば、更新されたクライアント設定パッケージを配布する場合は、client-rhui-x86_64
を使用します。
Red Hat コンテンツリポジトリーと同様、保護されているすべてのカスタムリポジトリーが、プロセッサーアーキテクチャーでのみ異なる (i386 と AMD64) は、$basearch
yum 変数を使用して、エンタイトルメント証明書内の単一のエンタイトルメントに統合されます。
証明書の検証によりアクセスできない場合は、保護されていないサーバーリポジトリーを使用して RPM を RHUI サーバーに配信できます。
手順
-
Repository Management 画面で
c
を押して、create a new custom repository (RPM content only) 画面にアクセスします。 -
リポジトリーの一意の ID を入力します。英数字、_(アンダースコア)、および-(ハイフン) のみが許可されます。一意の ID にスペースは使用できません。たとえば、
repo1
、repo_1
、およびrepo-1
はすべて有効なエントリーです。 - リポジトリーの表示名を入力します。この名前は、Red Hat Update Infrastructure Management Tool 内でリポジトリーを識別するのに使用されます。
-
リポジトリーをホストするパスを指定します。パスは、Red Hat Update Infrastructure がホストする全リポジトリーで一意である必要があります。たとえば、このステップのパスを
some/unique/name
として指定すると、リポジトリーは//<server>/pulp/repos/some/unique/name
に配置されます。 - リポジトリーのメタデータに使用するチェックサムタイプとして sha256 を選択します。
新しいリポジトリーを保護するかどうかを選択します。この質問に no と回答すると、すべてのクライアントがリポジトリーにアクセスできます。yes と回答すると、適切なエンタイトルメント証明書を持つクライアントのみがリポジトリーにアクセスできます。
注記名前が示すように、保護されていないリポジトリーのコンテンツは、クライアントのエンタイトルメント証明書を必要とせずに要求するシステムで利用できます。保護されていないリポジトリーを使用してコンテンツを配信する場合は、更新されたクライアント設定 RPM などのコンテンツを配布する場合は注意してください。これにより、保護されたリポジトリーへのアクセスが提供されます。
保護されていないリポジトリーの使用は、緊急時のガラス破りの行動です。
新規リポジトリーの保護を選択した場合、Red Hat Update Infrastructure Management Tool はエンタイトルメントパスを要求します。また、リポジトリーの相対パスに基づいてエンタイトルメントパスを提案します。
クライアントエンタイトルメント証明書には、アクセス可能なダウンロード URL が含まれます。RHUI は証明書のコンテンツを分析し、要求されたリポジトリーが許可された URL のいずれかと一致するかどうかを判断します。これにより、クライアントが認証を許可するかどうかが決まります。たとえば、エンタイトルメント証明書が
/some/unique/name
へのアクセスを付与し、//server/pulp/repos/some/unique/name/os/repodata
にあるリポジトリーに対して要求が行われる場合、RHUI は要求を承認し、そのパスはエンタイトルメントのあるダウンロード URL のいずれかで始まるため認証を付与します。URL は正しい情報でのみ開始する必要があります。完全一致する必要はありません。yum
が変数の値を認識している限り、エンタイトルメントには変数を含めることもできます。使用する最も一般的な変数は$basearch
と$releasever
で、要求を行うクライアントの詳細が入力されます。たとえば、エンタイトルメント証明書が/unique-name/$basearch/bar
へのアクセスを付与し、要求が//server/pulp/repos/unique-name/x86_64/bar
にあるリポジトリーに行われる場合、RHUI はその要求を承認し、変数が入力されたときにそのパスが一致するため、認証を付与します。Red Hat Update Infrastructure Management Tool は、リポジトリーのパスを提供したときに使用した変数に基づいて使用するパスを提案します。フィールドが空白のままにして、推奨されるパスを受け入れます。
Red Hat Update Infrastructure Management Tool は、GNU Privacy Guard(GPG) 署名が、そのリポジトリーにあるコンテンツに対して有効になっているかどうかを尋ねます。
y
を押すと、コンテンツが Red Hat によって署名されるかどうかを尋ねます。yes と回答すると、リポジトリー設定に Red Hat GPG キーが含まれます。その内容がカスタムの GPG キーで署名されるかどうかを尋ねます。yes と回答すると、リポジトリー設定に含める公開 GPG キーへのパスの入力が求められます。パブリック GPG キーへの複数のパスの入力を継続できます。Should the repository require clients to perform a GPG check and verify packages are signed by a GPG key? (y/n) y Will the repository be used to host any Red Hat GPG signed content? (y/n) y Will the repository be used to host any custom GPG signed content? (y/n) y Enter the absolute path to the public key of the GPG key pair: /tmp/rhuitest1.gpg Would you like to enter another public key? (y/n) y Enter the absolute path to the public key of the GPG key pair: /root/rpm-gpg/rhui-client-rhui.gpg Would you like to enter another public key? (y/n) n
-
新しいリポジトリー表示の詳細。プロンプトで
y
を押して情報を確認し、リポジトリーを作成します。
14.2.7. ローカルパッケージをカスタムリポジトリーにアップロードする
複数のパッケージを同時にアップロードし、一度に複数のリポジトリーにアップロードできます。パッケージは RHUA に即時にアップロードされますが、CDS ノードが次回同期するまで CDS ノードでは使用できません。
手順
Repository Management 画面で
u
を押して、特定のリポジトリーに新しいパッケージをアップロードします。使用可能なすべてのカスタムリポジトリーのリストが表示されます。注記Red Hat リポジトリーにパッケージをアップロードすることはできません。
- プロンプトでリポジトリーの番号を入力して、パッケージを追加するカスタムリポジトリーを選択します。これにより、そのリポジトリーの名前の横にチェックマークが付けられます。パッケージを追加するすべてのリポジトリーがチェックされるまで続けます。
-
プロンプトで
c
を押して確定します。 -
アップロードする RPM の場所を指定します。これは、単一の
.rpm
ファイルか、複数の.rpm
ファイルを含むディレクトリーになります。ディレクトリーを指定すると、そのディレクトリー内の.rpm
ファイルがすべてアップロードされます。アップロードする新しいパッケージの詳細が表示されます。 プロンプトで
y
を押して、情報を確認し、パッケージをアップロードします。The following RPMs will be uploaded: origin-1.0-1.noarch.rpm parent-1.0-1.noarch.rpm patb-0.1-2.x86_64.rpm rh-amazon-rhui-client-rhs30-2.2.124-1.el7.noarch.rpm Proceed? (y/n) y
14.2.8. リモートパッケージをカスタムリポジトリーにアップロードする
リモートサーバーに保存されているパッケージを、手動でダウンロードせずにアップロードすることができます。パッケージは、HTTP、HTTPS、または FTP でアクセスできる必要があります。
手順
リポジトリー管理 画面のプロンプトで
u
を押します。使用可能なすべてのカスタムリポジトリーのリストが表示されます。注記Red Hat リポジトリーにパッケージをアップロードすることはできません。
- プロンプトで、パッケージをアップロードするカスタムリポジトリーの番号を入力します。これにより、そのリポジトリーの名前の横にチェックマークが付けられます。パッケージをアップロードするすべてのリポジトリーにチェックマークが付くまで続けます。
-
プロンプトで
c
を押して確定します。 - URL を入力します。これは、Web サーバーまたは FTP サーバー上の単一のパッケージの場所、または Web サーバー上の HTML ページの場所にすることができます。後者は、URL がインデックスページのないディレクトリーである場合、Web サーバーによって生成されたディレクトリーリストにすることもできます。HTML コンテンツが検出されると、そこからリンクされているすべてのパッケージが取得され、ローカルキャッシュに保存されます。それ以外の場合は、指定された単一のパッケージが取得されてキャッシュされます。
取得が完了するのを待ってから、プロンプトで
y
を押して情報を確認し、パッケージをアップロードします。Retrieving http://mt-02.local/aGVsbG8K/ Found 2 RPMs to download Retrieving http://mt-02.local/aGVsbG8K/origin-0.1-1.noarch.rpm [1/2] Retrieving http://mt-02.local/aGVsbG8K/parent-1.0-1.noarch.rpm [2/2] The following RPMs will be uploaded: origin-0.1-1.noarch.rpm parent-1.0-1.noarch.rpm Proceed? (y/n) yes
14.2.9. カスタムリポジトリーからパッケージを削除
手順
Repository Management 画面で
p
を押して、リポジトリーのパッケージを一覧表示します (RPM コンテンツのみ)。パッケージを削除するカスタムリポジトリーの数を入力し、Enter
を押します。rhui (repo) => p Choose a repository: 1 - HP Packages for Testing Enter value (1-1) or 'b' to abort: 1 Enter the first few characters (case insensitive) of an RPM to filter the results (blank line for no filter): Only filtered results that contain less than 100 packages will have their contents displayed. Results with more than 100 packages will display a package count only. Packages: hprest-1.5-79.x86_64.rpm hpsum-7.6.0-86.rhel7.x86_64.rpm ilorest-2.2.2-6.x86_64.rpm <========== Goal, delete this package sum-8.2.0-53.rhel7.x86_64.rpm
pulp-admin
コマンドを使用して、repo_id
を含むリポジトリー情報を一覧表示します。# pulp-admin --username admin --password "redhat" repo list --snip-- Id: custom_repo1 Display Name: HP Packages for Testing Description: HP Packages for Testing Content Unit Counts: Rpm: 4
パッケージ情報を一覧表示します。
# pulp-admin --username admin --password "redhat" rpm repo content rpm --repo-id "custom_repo1" --str-eq="filename=ilorest-2.2.2-6.x86_64.rpm" Arch: x86_64 Buildhost: bls11u3x64001.sde.rdlabs.hpecorp.net Checksum: 570b98fff1943819e554ff5d643f674a1aa00fc1b362900badfdc4bd0943ce06 Checksumtype: sha256 Description: Command line interface for managing HPE ProLiant Servers Authors: -------- Hewlett Packard Enterprise Epoch: 0 Filename: ilorest-2.2.2-6.x86_64.rpm License: Copyright 2016 Hewlett Packard Enterprise Development LP Name: ilorest Provides: config(ilorest) = 2.2.2-6-0, ilorest = 2.2.2-6-0, ilorest(x86-64) = 2.2.2-6-0, ilorest_chif.so()(64bit) Release: 6 Requires: /bin/sh, /bin/sh, libc.so.6()(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3)(64bit), libdl.so.2()(64bit), libdl.so.2(GLIBC_2.2.5)(64bit), libz.so.1()(64bit), rtld(GNU_HASH) Vendor: Hewlett Packard Enterprise Company Version: 2.2.2
カスタムリポジトリーからパッケージを削除します。
# pulp-admin --username admin --password "redhat" rpm repo remove rpm --repo-id "custom_repo1" --str-eq="filename=ilorest-2.2.2-6.x86_64.rpm" This command may be exited via ctrl+c without affecting the request. [\] Running... Units Removed: ilorest-2.2.2-6-x86_64
メタデータを更新し、リポジトリーを公開します。
# pulp-admin --username admin --password "redhat" rpm repo update --repo-id "custom_repo1" # pulp-admin --username admin --password "redhat" rpm repo publish run --repo-id "custom_repo1"
- 「孤立したコンテンツユニット」 の説明に従って、リポジトリーから関連付けられていない孤立した RPM を削除して、ディスク領域を確保します。
14.2.10. エラータメタデータのカスタムリポジトリーへのインポート
カスタムリポジトリーのパッケージのエラータメタデータが含まれる updateinfo.xml
ファイルまたは updateinfo.xml.gz
ファイルがある場合は、メタデータをインポートして、リポジトリーを使用するクライアントシステムが個々の更新の詳細情報を受け取ることができます。この情報には、エラータ ID、バグ番号、バグまたセキュリティーの修正の説明、および参照が含まれます。クライアントはこのデータを使用して更新を選択的に適用できます。コマンドラインインターフェイスからメタデータのみをインポートできます。
手順
次のコマンドを実行して、指定した
updateinfo
ファイルから指定したカスタムリポジトリーにデータをインポートします。# rhui-manager repo add_errata --repo_id my_repo --updateinfo ~/Downloads/ac4c9d01646b2100cf292a6b67672ad5 -updateinfo.xml.gz
注記このコマンドは、特に
updateinfo
ファイルに多数の更新が含まれる場合に、完了するまでに時間がかかる場合があります。/root/.rhui/rhui.log
ファイルに進捗が記録されます。警告updateinfo
ファイルからエラータをインポートしたら、再度インポートすることはできません。これは、データベースキーとしてのエラータ ID の一意性に違反します。追加のエラータエントリーでupdateinfo
ファイルを再インポートすると、古いエントリーは変更されず、追加エントリーが追加されます。以前に追加したエラータを置き換える必要がある場合は、updateinfo
ファイルをインポートする前に MongoDB で直接削除してください。
14.2.11. パッケージグループのメタデータをカスタムリポジトリーにインポートする
カスタムリポジトリーの comps.xm
l ファイルまたは comps.xml.gz
ファイルがある場合は、これをリポジトリーにインポートして、クライアントがパッケージグループまたは言語パックを表示し、インストールできるようにします。インポートはコマンドラインインターフェイスでのみ実行されます。
手順
次のコマンドを実行して、指定した comps ファイルから指定のカスタムリポジトリーにデータをインポートします。
# rhui-manager repo add_comps --repo_id my_repo --comps ~/Downloads/a27718cc28ec6d71432e0ef3e6da544b7f9d93f6bb7d0a55aacd592d03144b70-comps.xml
14.2.12. 代替コンテンツソース設定 RPM の作成
RHUI を、Red Hat Satellite や別の RHUI インストールなどの別のシステム管理製品の代替コンテンツソースとして使用する場合は、RHUI に代替のコンテンツソース設定 RPM を作成することができます。RPM は、Red Hat コンテンツ配信ネットワークの代わりに RHUI からパッケージを取得するように Pulp
を設定する他のシステム管理製品にインストールすることが意図されています。
この RPM は、コマンドラインインターフェイスからのみ作成できます。これを作成するには、リポジトリーが少なくとも 1 つ必要です。また、「エンタイトルメント証明書の作成」 の説明どおりに、リポジトリーのエンタイトルメント証明書とキーが必要です。または、追加するリポジトリーのラベルが分かっている必要があります。
手順
以前生成されたエンタイトルメント証明書を使用して別のコンテンツソース設定 RPM を作成するには、以下のようなコマンドを実行します。
# rhui-manager client content_source --entitlement_cert /tmp/mycrt.crt --private_key /tmp/mycrt.key --rpm_name altcs --dir /tmp
1 つ以上のラベルを使用して代替コンテンツソース設定 RPM を作成し、適切な証明書がその場で作成されるようにするには、次のようなコマンドを実行します。
# rhui-manager client content_source --cert --repo_label rhel-7-server-rhui-rpms,rhel-7-server-rhui-optional-rpms --rpm_name altcs --dir /tmp
アクセス可能な全リポジトリーのラベル一覧を取得するには、次のコマンドを実行します。
# rhui-manager client labels