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 インストール上でこれを変更した場合、このコマンドを適宜調整します。