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
) でも説明されています。