4.2. プロキシーのプリキャッシュ設定
Proxy サーバーは RPM ファイルのプリキャッシュまたはミラー化を実行できます。これは、RPM ファイルが Proxy サーバーからクライアントに直接送信されることを意味します。クライアントはファイルが Satellite サーバーから Proxy サーバーにダウンロードされるのを待機する必要はなく、ファイルはクライアントに送信されます。Proxy サーバーは
yum
および anaconda
(キックスタートのインストールおよびプロビジョニングの場合) の RPM 要求を認識します。詳細は、rhn_package_manager
の man ページを参照してください。
Proxy のプリキャッシュは、Satellite サーバーへのネットワーク接続が遅い場合や、帯域幅が Premium レベルの場合などにとくに役立ちます。
rhn_package_manager
コマンドを使用して RPM ファイルを Proxy サーバーのキャッシュに手動で読み込んだり、rsync
コマンドを使用する cron
ジョブを作成してタスクを自動的に実行したりできます。
注記
Proxy サーバーのプリキャッシュ機能を使用するには、必要な RPM ファイル用に利用可能なディスク領域が常になければなりません。プリキャッシュに対応しない Proxy サーバーの場合には要求された RPM ファイルが存在するのは期限切れになるまでとなりますが、この機能を使用すると、プリキャッシュされた RPM ファイルは使用されるかどうかにかかわらず Proxy サーバー上で無期限に残ります。
4.2.1. RPM ファイルの Proxy キャッシュへの手動読み込み リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Satellite Proxy および
rhn_package_manager
は不必要なキャッシュの競合を避けるために更新されています。既存の rhn_package_manager --copyonly
コマンドを使用してキャッシュを設定することができます (そのオプションのエイリアスがよりユーザーフレンドリーな名前の --cache-locally
で追加されています)。rhn_package_manager
に加えられたもう 1 つの大きな変更として、このコマンドにより、たとえば rhn-satellite-exporter
ユーティリティーを使用して Satellite サーバーで作成できる可能姓のあるチャンネルエクスポートからパッケージを読み取ったり、インポートしたりできる点があります。これは、ディレクトリーのすべての RPM ファイルをインポートするための --dir
オプションや、コマンドラインで指定される RPM ファイルの一覧を含むrhn_package_manager
が RPM ファイルのインポートに使用できる他のメソッドに追加される機能になります。
以下の例は、Satellite サーバーからチャンネルエクスポートを使用して、my-channel-l チャンネルにある RPM ファイルのみをキャッシュする方法を示しています。このエクスポートには Satellite サーバーのすべてのチャンネルが含まれ、これは
/mnt/export
にマウントされます。
rhn_package_manager --cache-locally --from-export /mnt/export --channel my-channel-1
# rhn_package_manager --cache-locally --from-export /mnt/export --channel my-channel-1
エクスポートに含まれるすべてのチャンネルの RPM ファイルすべてをインポートするには、
--channel
オプションを省略します。
rhn_package_manager --cache-locally --from-export /mnt/export
# rhn_package_manager --cache-locally --from-export /mnt/export
チャンネルエクスポートが複数の ISO イメージに分散する場合、
rhn_package_manager
コマンドを実行する前にそれらのイメージを Proxy 上でローカルにまとめる必要はありません。1 度に 1 つずつイメージをマウントし、それぞれに同じコマンドを実行します。
4.2.2. RPM ファイルの Proxy キャッシュへの自動読み込み リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
初期のクローンを設定する際に、RPM ファイルを含むチャンネルエクスポートやディレクトリーを使用すると便利であり、かつ速く処理することができますが、その場合 Satellite サーバーが新規コンテンツで更新されるたびに、新規 RPM ファイルを含む新規のチャンネルエクスポートまたはディレクトリーを作成しなければなりません。
rsync
コマンドを使用して cron ジョブや同様のジョブを設定して、更新された RPM ファイルを Proxy キャッシュにダウンロードすることができます。この場合、Satellite サーバー上の すべての RPM ファイルを Proxy にダウンロードする必要があると仮定されます。Proxy サーバーでは root で cron ジョブおよび rsync
コマンドを実行する必要がありますが、その後 Satellite サーバーには RPM ストアへの読み取りアクセス (すべてのユーザーが持つアクセス) のあるユーザーとしてログインできます。
Satellite への自動接続を有効にする SSH キーペアの設定
Proxy サーバーの root
ユーザーが Pパスワードを入力せずに Satellite サーバーの $user
への SSH 接続を確立できるようにするには、SSH キーペアをセットアップする必要があります。
重要
この方法では秘密鍵にパスワードを設定しないようにする必要があります。このキーの安全を確保するようにしてください。
Proxy サーバーで
root
として以下のコマンドを実行します。
ssh-keygen -t rsa -N '' -f /root/.ssh/id_dsa \ && cat /root/.ssh/id_dsa.pub | ssh user@satellite.example.com 'cat >> .ssh/authorized_keys'
ssh-keygen -t rsa -N '' -f /root/.ssh/id_dsa \
&& cat /root/.ssh/id_dsa.pub | ssh user@satellite.example.com 'cat >> .ssh/authorized_keys'
プロンプトが出されたら user のパスワードを入力します。これで、パスワードを入力せずに Satellite サーバーへの SSH 接続を作成できるようになります。
ssh user@satellite.example.com
# ssh user@satellite.example.com
自動同期のセットアップ
ここでは適切な rsync
コマンドに関連して cron
ジョブを追加する必要があります。たとえば、root として Proxy で以下を実行します。
crontab -e 1 3 * * * /usr/bin/rsync -r user@satellite.example.com:/var/satellite/redhat/*/ /var/spool/rhn-proxy/rhn # write and quit with :wq
crontab -e
1 3 * * * /usr/bin/rsync -r user@satellite.example.com:/var/satellite/redhat/*/ /var/spool/rhn-proxy/rhn
# write and quit with :wq
この設定により、
rsync
コマンドは毎日午前 3:01 に実行され、Satellite サーバー上にあるすべての RPM ファイルが Proxy キャッシュにダウンロードされます。/var/satellite
ディレクトリーはデフォルトの Satellite root ディレクトリーですが、これは設定可能なディレクトリーです。Satellite インストール上でこれを変更した場合、このコマンドを適宜調整します。