Red Hat Training

A Red Hat training course is available for Red Hat Satellite

1.2.12. カスタムパッケージのアップロードと保守

プライベートチャンネルへのパッケージのアップロードには 2 通りの仕組みがあり、使用している Red Hat Network サービスによって異なります。
Red Hat Satellite Proxy Server をご利用のお客様は Red Hat Network Package Manager アプリケーションを使用して頂くことになります。パッケージヘッダー情報を中央の Satellite Server に送り、Red Hat Network Package Manager を起動した Proxy のローカルリポジトリにそのパッケージ自体を格納します。
Red Hat Satellite Server をご利用のお客様は Red Hat Network Push アプリケーションを使用して頂くことになります。これは、パッケージのヘッダー情報をローカルの Red Hat Satellite Server に送り、 Red Hat Network Push を起動した Satellite のローカルリポジトリにそのパッケージを格納します。
本セクションでは、これら両方のツールについて詳しく見ていくことにします。

警告

Red Hat Satellite Proxy Server と Red Hat Satellite Server の両方を使用している場合は、Red Hat Network Push のみを使用するようにしてください。Proxy と Satellite を組み合わせて使用している場合には、カスタムのパッケージおよびチャンネルのアップロードは Satellite に対してのみ行います。Proxy サーバーはここからパッケージを取得してクライアントシステム群に配信することになります。

1.2.12.1. Red Hat Satellite Proxy Server へのパッケージのアップロード

Red Hat Network Package Manager を使用すると、Red Hat Satellite Proxy Server 経由でプライベートの Satellite チャンネルに割り当てられたカスタムのパッケージを提供することができます。Proxy 経由で Satellite に通信するクライアントシステムは、それらがチャンネルにサブスクライブされている場合はパッケージをダウンロードできます。Proxy 経由で Satellite に通信していないシステムは、チャンネルにサブスクライブされている場合は、yum パッケージのメタデータのみを受信し、パッケージを取得しようとすると、Satellite はローカルリポジトリにパッケージコピーを持たないため、エラーが生じます。Red Hat Satellite Proxy Server で提供するパッケージを Red Hat Enterprise Linux の公式パッケージと組織が所有するパッケージのみにする場合は、Red Hat Network Package Manager をインストールしないようにしてください。
Red Hat Network Package Manager を使用する場合は、spacewalk-proxy-package-manager RPM パッケージとその依存パッケージをインストールします。このパッケージは登録している Red Hat Satellite Proxy Server のシステム群で使用することができます。yum install spacewalk-proxy-package-manager を実行してインストールを行います。

注記

Red Hat Satellite Server にアップロードされるのはパッケージのヘッダー情報のみです。Red Hat Network にクライアントシステム群のパッケージ依存関係を解決させるためにこのヘッダー情報が必要となります。実際のパッケージファイル (*.rpm) は Red Hat Satellite Proxy Server に収納されます。このため、カスタムのパッケージは Red Hat Satellite Web サイトに表示されていてもダウンロードすることはできません。クライアントシステムにカスタムのパッケージを取得させる場合は yum install を使用してください。
1.2.12.1.1. Red Hat Network Package Manager の設定と使用
Red Hat Network Package Manager を使ってパッケージを Red Hat Satellite にアップロードする前に、そのパッケージを手作業で Proxy サーバー自体にコピーする必要があります。例えば、開発ホストから scp を使用します。
# scp foo.rpm root@rhnproxy.example.com:/tmp
Red Hat Network Package Manager を使用して Red Hat Satellite にパッケージをアップロードする場合、前のステップでサーバーにコピーしたファイルをポイントします。

注記

クライアントシステムにパッケージを取得させるにはチャンネルが必要になります。このため、Red Hat Satellite にカスタムのパッケージをアップロードする前に、まず、そのカスタムパッケージを割り当てるプライベートチャンネルを少なくとも 1 つ作成しておきます。
次のコマンドを Satellite Proxy Server で実行し、パッケージヘッダーを Red Hat Satellite Server にアップロードし、パッケージを Satellite Proxy Server リポジトリにコピーします。
# rhn_package_manager -c label_of_private_channel pkg-list
label_of_private_channel は、パッケージの割り当て用に作成したカスタムのチャンネルです。作成時に指定した正確なチャンネルラベルを必ず使用してください。1 つまたは複数のチャンネルを指定すると (-c または --channel を使用)、アップロードするパッケージのヘッダーは指定した全チャンネルにリンクされます。チャンネルを指定しないと、そのパッケージは パッケージの管理 ページの チャンネルがありません のセクションに置かれます。パッケージを再割り当てする方法については 「パッケージのソフトウェアチャンネルへの割り当て」 を参照してください。
pkg-list はアップロードするパッケージの一覧を表示します。これらのパッケージはすでに Proxy ホストに物理的にコピーされていなければなりません。別の方法として、-d オプションを使用してチャンネルに追加するパッケージを含んだローカルのディレクトリを指定することもできます。 Red Hat Network Package Manager は標準入力からパッケージの一覧を読み取ることもできます (--stdin を使用)。
Red Hat Satellite Server の URL、HTTP プロキシのユーザー名とパスワード (HTTP プロキシに認証を必要とする場合)、およびパッケージが存在する上部ディレクトリなど、その他のオプションは設定ファイルに指定されています。この特殊な設定は 編集しないでください。またこの設定は /etc/rhn/default/rhn_proxy_package_manager.conf に格納されています。このデフォルト設定ファイル内に指定されているオプションの値は、メインの設定ファイル /etc/rhn/rhn.conf の設定値や Red Hat Network Package Manager に渡すコマンドラインオプションなどで上書きすることができます。
このファイルに設定されていないパラメーターについては、現在ログインしているユーザーのホームディレクトリにある .rhn_package_manager から読み込まれます。また、ここにもない場合は最終的には /etc/rhn/rhn_package_manager.conf から読み込まれます。これらのファイルが他の人から読み取られないよう必ず適切なパーミッションを持たせるようにしてください。
パッケージをアップロードしたらローカルディレクトリが Red Hat Satellite Server のチャンネルイメージと同期しているかどうか確認します。
# rhn_package_manager -s -c name_of_private_channel
この -s オプションを使用することで、不足している全パッケージが一覧表示されます。このパッケージは、Red Hat Satellite Server にはアップロードされているものの、ローカルのディレクトリにはないパッケージになります。このオプションを使用する場合は組織の管理者になる必要があります。アプリケーションにより Red Hat Satellite のユーザー名とパスワードの入力が求められます。
--copyonly オプションは引数に記載されているファイルを Satellite にはアップロードせずに指定のチャンネルにコピーします。Red Hat Satellite Proxy Server 上のチャンネルにパッケージが1つ不足しているものの、このチャンネル内の全パッケージ群の再インポートを行ないたくない場合に便利です。
# rhn_package_manager -c channel-name --copyonly /path/to/missing/file
パッケージ一覧は Red Hat Satellite Server に保存してあるため Red Hat Network Package Manager を使用してもチャンネル内のパッケージ一覧を検索することができます。
# rhn_package_manager -l -c name_of_private_channel
-l オプションを使用すると指定したチャンネル内にある各パッケージのパッケージ名、バージョン番号、リリース番号、アーキテクチャー、およびチャンネル名を表示します。他のオプションについては 表1.1「rhn_package_manager オプション」 を参照してください。
Red Hat Network Package Manager (rhn_package_manager) の全コマンドラインオプションの要約については、表1.1「rhn_package_manager オプション」 をご覧ください。

表1.1 rhn_package_manager オプション

オプション 説明
-v, --verbose 標準の出力メッセージの詳細レベルが冗長になります。
-d, --dir DIRECTORY_NAME このディレクトリからのパッケージを処理します。
-c, --channel CHANNEL_NAME パッケージを検索するチャンネルを指定します。 -c を複数回使用すると複数のチャンネルを指定することができます (例、 -c channel_one -c channel_two)。
-n, --count NUMBER 呼び出しごとに指定したヘッダー数を処理します - デフォルトは 32 です。
-l, --list 指定したチャンネルのパッケージを一覧表示します。
-s, --sync ローカルのディレクトリがサーバーと同期しているかどうか確認します。
-p, --printconf 現在の設定を表示して終了します。
--newest サーバーにあるパッケージより新しいパッケージのみをプッシュします。ソースパッケージはバージョン同士の比較が行われないという点で特殊となります。新しいかどうかの定義は関連するバイナリパッケージに依存します。このオプションを Red Hat Network Package Manager とソースパッケージだけで使用すると、パッケージのアップロードは行なわれますが、関連バイナリパッケージがアップロードされるまでソースパッケージは Red Hat Satellite Web インターフェースに表示されません。 --source と比較して見てください。--source --newest を一緒に使用すると、単独ソースパッケージが新しいパッケージで 更新される ので、関連バイナリパッケージを先にアップロードしておく必要はありません。
--source 指示されたソースパッケージをアップロードします。この場合、ソースパッケージはプレーンで単独のパッケージとして扱われ、別途すでに存在するバイナリパッケージと関連する特殊なソースパッケージとしては 扱われません。例えば、通常のソース制御管理とは別に、開発者やテスターに向けてアプリケーションソースを配布したい場合などに使用できます。
--stdin 標準出力からパッケージ名を読み込みます。
--nosig パッケージに署名がない場合も失敗しません。
--no-ssl SSL をオフにします (推奨できません)。
--stdin 標準出力からパッケージ名を読み込みます。
--username USERNAME Red Hat Satellite のユーザー名を指定します。指定しないと有効なチャンネル管理者のユーザー名の入力が求められます。
--password PASSWORD Red Hat Satellite のパスワードを指定します。指定しないと有効なチャンネル管理者のパスワードの入力が求められます。
--dontcopy アップロード後の手順で、パッケージをパッケージツリー内の最終配置場所にコピーしません。
--copyonly パッケージのコピーのみを行い再インポートは行いません。
--test プッシュするパッケージの一覧を出力するだけです。
-?, --help オプション一覧のヘルプ画面を表示します。
--usage 使用可能なオプションの簡単な説明を表示します。
--copyonly パッケージのコピーのみを行います。

注記

これらのコマンドラインオプションは rhn_package_manager の man ページ (man rhn_package_manager) でも説明されています。