Red Hat Training
A Red Hat training course is available for Red Hat Satellite
Proxy インストールガイド
Red Hat Satellite Proxy Server のインストールおよび設定
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
概要
第1章 Red Hat Satellite Proxy について
1.1. Red Hat Satellite Proxy Server
- スケーラビリティー: 1 つの組織が複数のローカル Red Hat Satellite Proxy をサポートできます。
- セキュリティー: クライアントシステムからローカルの Satellite Proxy へ、またローカルの Satellite Proxy から Red Hat Satellite サーバーへのセキュアな接続が維持されます。
- 時間の節約: インターネット経由に比べて、パッケージの配信がローカルエリアネットワークにより大幅に高速化されます。
- 帯域幅の節減: それぞれのクライアントシステムに対してパッケージを別々にダウンロードするのではなく、Red Hat Satellite から一度に複数のパッケージをダウンロードします (ローカル Proxy Server のキャッシングメカニズムを使用)。
- 更新のカスタマイズ: カスタムソフトウェアパッケージの自動パッケージ配信システムを作成するほか、クライアントシステムに必要とされる公式の Red Hat パッケージの配信も自動化します。プライベートの Red Hat Satellite チャンネルをカスタマイズして、組織で社内パッケージの配信を自動化することもできます。
- 設定のカスタマイズ: 特定のアーキテクチャーやオペレーションシステムのバージョンに対して更新を制限したり許可したりできます。
1.2. アーキテクチャーおよび操作
重要
- クライアントはクライアントセッションの始めにログイン動作を行います。このログインが Red Hat Satellite サーバーに到達するまでに 1 つまたは複数の Satellite Proxy Server を経由します。
- Red Hat Satellite サーバーはこのクライアントの認証を試みます。認証が成功すると、サーバーは Satellite Proxy Server のチェーンを介してセッショントークンを返します。署名と有効期限を持つこのトークンには、チャンネルサブスクリプションやユーザー名などのユーザー情報が含まれます。
- それぞれの Satellite Proxy Server はこのトークンを
/var/cache/rhn/
ディレクトリー内のローカルファイルシステムにキャッシュします。キャッシングにより Red Hat Satellite サーバーとの認証で発生するオーバーヘッドが軽減され、Red Hat Satellite のパフォーマンスが大幅に向上します。 - このセッショントークンはクライアントマシンに送信され、Red Hat Satellite の次の動作で使用されます。
第2章 要件
2.1. ソフトウェア要件
- ベースオペレーティングシステム: Satellite 5.8 および Satellite Proxy 5.8 は Red Hat Enterprise Linux 6 で対応しています。オペレーティングシステムは、Red Hat でサポートしているいずれかの方法でインストールすることができます。
- Satellite Proxy には、Satellite の同じバージョンまたはそれ以上のバージョンが必要になります。たとえば、Satellite Proxy 5.6 は Satellite 5.6 および Satellite 5.8 と共に使用できますが、Satellite Proxy 5.8 は Satellite 5.8 のみと共に使用できます。
- Satellite Server アカウント内の Satellite Proxy のエンタイトルメント
- Satellite Server アカウント内の Provisioning エンタイトルメント (Satellite Proxy エンタイトルメントと共にパッケージ化されています)
- インストールした Red Hat Enterprise Linux バージョン用の Red Hat Network Tools チャンネルへのアクセス。このチャンネルには、Satellite Proxy のインストールに必要な
configure-proxy.sh
インストールプログラムを格納している spacewalk-proxy-installer パッケージが含まれます。 - Satellite Proxy に (Red Hat Network Tools チャンネルから) インストールするすべての rhncfg* パッケージ。
- Hosted ユーザーの場合は、Satellite Proxy に (Red Hat Network Tools チャンネルから) インストールする spacewalk-certs-tools パッケージか、または Satellite Server ユーザーの場合は親サーバーの証明書の生成に使用する SSL (secure sockets layer) CA 証明書のパスワード。
重要
Red Hat がサポートする仮想化環境では、Satellite Proxy を Red Hat Enterprise Linux 5 または 6 にインストールできます。この仮想化環境には、Xen、Hyper-V、KVM および VMware が含まれます。サポートされる環境についての詳細は、https://access.redhat.com/site/certified-hypervisors を参照してください。
Red Hat Enterprise Linux の各バージョンは、Satellite Proxy をサポートするための特定のパッケージセットを必要とします。他のパッケージを追加すると、インストール時にエラーが発生する場合があります。したがって、Red Hat は以下のように必要なパッケージを取得することをお勧めします。
- キックスタートのインストールの場合は、パッケージグループ
@Base
を指定します。 - CD または ISO イメージを使用して Red Hat Enterprise Linux をインストールする場合は、パッケージグループ
Minimal
を選択します。
2.2. ハードウェア要件
- Pentium IV Processor または同等のプロセッサー
- 最小 2 GB のメモリー。4 GB のメモリーが推奨されます。
- Red Hat Enterprise Linux のベースインストール用に 最小 5 GB のストレージ
- アーキテクチャー/リリースごとに 6 GB のストレージSatellite Proxy が使用するキャッシングのメカニズムは Squid HTTP プロキシーになり、クライアント群の帯域幅を大幅に節約します。キャッシュされたパッケージは
/var/spool/squid
ディレクトリーに格納されます。キャッシュで利用できるディスク容量が大きいと、期限切れになる前に RPM ファイルを削除する可能性が低くなります。推奨される容量以下のストレージを設定すると、Proxy サーバーを使用して可能になるパフォーマンスの拡張機能が少なくなります。
/var
マウントポイントにカスタムパッケージすべてを保持するのに十分なディスク領域があることを確認します。これらカスタムパッケージは /var/spool/rhn-proxy
内に格納されています。ローカルパッケージ用に必要となるディスク領域は、配信されるカスタムパッケージの数によって異なります。
/etc/sysconfig/rhn/rhnsd
設定ファイル内に設定されます。
注記
2.3. 追加要件
- 完全アクセス
- クライアントシステムは、Satellite Proxy Server サービスとポートへの完全なネットワークアクセスが必要になります。
- ファイアウォールのルール
- Red Hat は、Satellite Proxy とインターネット間にファイアウォールをセットアップすることを強くお勧めします。ただし、お使いの Satellite Proxy の実装によっては、ファイアウォール内に複数の TCP ポートを開く必要があります。
表2.1 Satellite Proxy で開くポート
ポート 方向 理由 80 アウトバウンド Satellite Proxy はこのポートを使用して Satellite URL にアクセスします。 80 インバウンド クライアントの要求は HTTP または HTTPS のいずれかを使用して到着します。 443 インバウンド クライアントの要求は HTTP または HTTPS のいずれかを使用して到着します。 443 アウトバウンド Satellite Proxy はこのポートを使用して Satellite URL にアクセスします。 5222 インバウンド Red Hat Network Push 技術を使用している際に、Satellite Proxy 上の jabberd
デーモンへのosad
クライアントの接続を許可します。5269 インバウンドとアウトバウンド Satellite Proxy が Satellite Server に接続されている場合、Red Hat Network Push 技術用の jabberd
を使用してサーバー間の接続を可能にするためにこのポートを開いておく必要があります。 - 同期システム時間
- SSL (Secure Sockets Layer) を実行している Web サーバーに接続する際は、時間が非常に重要になります。SSL 証明書が使用前または使用中に期限切れにならないよう、クライアントとサーバーで設定される時間が近接している必要があります。NTP (Network Time Protocol) を使用して時計を同期することが推奨されます。
- 完全修飾ドメイン名 (FQDN)
- Satellite Proxy Server をインストールするシステムは、独自の完全修飾ドメイン名を正しく解決できなければなりません。
- 配信場所
- Satellite Proxy は事実上すべてのローカル HTTP 要求を Red Hat Satellite に転送するため、Satellite Proxy 上での転送が行われない場所 (
/var/www/html/pub/
) に配信用のファイル (キックスタートインストールツリー内のものなど) を置くようにしてください。このディレクトリに配置されたファイルは Satellite Proxy から直接ダウンロードすることができます。これは、GPG キーの配信やキックスタートファイル用のインストールツリーの設定時にとくに便利です。 - 帯域幅
- ネットワークの帯域幅は、Satellite、プロキシーおよびクライアント間での通信に重要なものです。Red Hat では、高ボリュームのトラフィックに対応するために多くのシステムやクライアントにパッケージを提供できるネットワーク上の高い帯域幅の使用を推奨しています。Red Hat では指針として、あるシステムから別のシステムにパッケージを転送する際の速度ごとの推定時間を算出しています。
表2.2 帯域幅による推定時間
単一パッケージ (10Mb)マイナーリリース (750Mb)メジャーリリース (6Gb)256Kbps5 分 27 秒6 時間 49 分 36 秒2 日と 7 時間 55 分512Kbps2 分 43.84 秒3 時間 24 分 48 秒1 日と 3 時間 57 分T1 (1.5Mbps)54.33 秒1 時間 7 分 54.78 秒9 時間 16 分 20.57 秒10Mbps8.39 秒10 分 29.15 秒1 時間 25 分 53.96 秒100Mbps0.84 秒1 分 2.91 秒8 分 35.4 秒1000Mbps0.08 秒6.29 秒51.54 秒Red Hat では、マイナーおよびメジャーリリースに関しては、少なくとも 100Mbps のネットワーク速度を推奨しています。これにより 10 分以上の転送におけるタイムアウトを避けることができます。ネットワーク速度はお使いのネットワーク設定によって変わることがあります。
ntsysv
または chkconfig
を使用します。
第3章 Red Hat Satellite Proxy のインストール
3.1. インストール手順の要約
- Red Hat Satellite サーバーで Red Hat Satellite Proxy エンタイトルメントを取得し、インストールします。これには、Red Hat カスタマーポータルで更新されたマニフェストを作成することが含まれます。「Satellite Proxy エンタイトルメントの取得」 を参照してください。
- Red Hat Satellite サーバーで更新されたマニフェストをアップロードし、Satellite Proxy の必要なチャンネルを同期します。「Satellite Proxy エンタイトルメントの Satellite へのアップロード」 を参照してください。
- Satellite Proxy ホストとして使用するために新規の Red Hat Enterprise Linux システムを作成するか、またはこれをプロビジョニングし、これを Satellite に登録します。「オペレーティングシステムの Satellite Proxy ホストへのインストール」 を参照してください。
- Satellite Proxy ホストで必要なパッケージをインストールします。「Red Hat Satellite Proxy Server パッケージのインストール」 を参照してください。
configure-proxy.sh
インストールスクリプトを実行します。「Red Hat Satellite Proxy インストールスクリプトの実行」 を参照してください。- 必要な設定後のタスクを実行します。「インストール後のタスクの実行」 を参照してください。
3.2. Satellite Proxy エンタイトルメントの取得
- カスタマーポータルにログインし、サブスクリプションをクリックします。
- Satellite 組織 をクリックします。
- Satellite をクリックします。
- 必要な Satellite を選択します。
- Attach a subscription (サブスクリプションの割り当て) をクリックします。
- 既存のサブスクリプションのほかに、
Red Hat Satellite Proxy
製品が含まれるサブスクリプションを選択します。作成するプロキシーの数に対応する必要数を指定し、ATTACH SELECTED (選択項目の割り当て) をクリックします。該当バージョンの Red Hat Enterprise Linux サブスクリプションがすでに割り当てられていることを確認します。サブスクリプションの割り当てには数分の時間がかかる場合があります。 - Attach a subscription (サブスクリプションの割り当て) ウィンドウが表示されたら、Close (閉じる) をクリックします。
- Download manifest (マニフェストのダウンロード) をクリックし、マニフェストファイルをローカルに保存します。
3.3. Satellite Proxy エンタイトルメントの Satellite へのアップロード
- 管理ユーザーとして Red Hat Satellite サーバーにログインします。
- 管理 → Red Hat Satellite 設定 → Manifest に移動します。
- 参照 をクリックして、更新されたマニフェストを選択します。
注記
コマンドラインからマニフェストをアップロードするには、Satellite サーバーで以下を実行します。[root@satellite ~]# rhn-satellite-activate --manifest=manifest_file.zip
- RHN Tools チャンネルと Proxy チャンネルを同期します。
[root@satellite ~]# cdn-sync --channel rhn-tools-rhel-x86_64-server-6
[root@satellite ~]# cdn-sync --channel redhat-rhn-proxy-5.8-server-x86_64-6
- 同期が終了したら、エンタイトルメントをアクティべーションキーに追加します。システム → アクティべーションキー に移動し、create new key (キーの作成) をクリックします。Red Hat Enterprise Linux ベースチャンネルなどの、これらのエンタイトルメントのベースチャンネルを追加し、プロビジョニング エンタイトルメントを選択します。アクティベーションキーの作成 をクリックして完了します。
3.4. オペレーティングシステムの Satellite Proxy ホストへのインストール
注記
- 前述のハードウェア要件に従い、パッケージの格納に使用するパーティションに十分な領域を割り当てます。Red Hat パッケージがキャッシュされるデフォルトの場所は
/var/spool/squid
で、カスタムパッケージは/var/spool/rhn-proxy
になります。注記
インストールプログラムは、/var/spool/squid
がマウントされるパーティションで利用可能な容量を自動的に計算し、Satellite Proxy の使用に空き容量の最大 60 パーセントを割り当てます。 - ファイアウォールのルールが 「追加要件」 に記載されている要件を満たすように更新されていることを確認します。
iptables
設定を変更し、サービスを起動します。 - Red Hat Satellite Proxy Server で必要とされるパッケージをインストールします。
重要
ベースの Satellite Proxy パッケージのみをインストールしてください。追加のパッケージのインストールは Satellite Proxy のインストールの失敗の原因になる可能性があります。Red Hat Enterprise Linux の各バージョンで必要とされる適切なパッケージグループを取得する方法については、「ソフトウェア要件」 を参照してください。 NTP (Network Time Protocol)
を有効にしてから Satellite Proxy とすべてのクライアントシステム上で該当のタイムゾーンを選択します。
rhnreg_ks
コマンドを使用してシステムを Red Hat Satellite Server に登録します。以下は例になります。
[root@satproxy ~]# rhnreg_ks --serverUrl=http://satellite.example.com/XMLRPC --activationkey=1-123456789abcedf123456789abcdef12
3.5. Red Hat Satellite Proxy Server パッケージのインストール
- インストールする Satellite Proxy システムに、root ユーザーとしてログインします。
- クライアントが必要なチャンネルにサブスクライブされるようにします。
[root@satproxy ~]# spacewalk-channel --add -c rhn-tools-rhel-x86_64-server-6 --user admin --password adminpassword
- Provisioning エンタイトルメントをシステムに割り当てます。
- Satellite サーバー上で、システム をクリックします。
- Satellite Proxy の名前をクリックします。
- プロパティー タブをクリックします。
- 付属エンタイトルメント セクションで プロビジョニング を選択します。
- プロパティーの更新 をクリックします。
- Satellite Proxy インストールパッケージをインストールします。このパッケージには、実際の Satellite Proxy のインストールをガイドするメインスクリプトが含まれます。
[root@satproxy ~]# yum install spacewalk-proxy-installer
3.6. Red Hat Satellite Proxy インストールスクリプトの実行
重要
/root/ssl-build
ディレクトリーを作成します。
[root@satproxy ~]# mkdir /root/ssl-build
[root@satproxy ~]# scp 'root@satellite.example.com:/root/ssl-build/{RHN-ORG-PRIVATE-SSL-KEY,RHN-ORG-TRUSTED-SSL-CERT,rhn-ca-openssl.cnf}' /root/ssl-build
--force-own-ca
オプションを追加します。
# configure-proxy.sh
注記
--non-interactive
オプションを使用します。
インストールスクリプトは、インストールを実行しているマシンに固有の Satellite Proxy インストールについての詳細情報を要求します。
- RHN Parent (親 RHN)
- コンテンツを Satellite Proxy に提供するシステムの Satellite Server ドメイン名またはアドレスです。
- CA Chain (CA チェーン)
- Enter キーを押して、認証局 (CA) チェーンのデフォルトパスを使用します。Satellite Proxy が Red Hat Satellite と通信している場合、この値は通常
/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
になります。そうでない場合、カスタム SSL 証明書を/usr/share/rhn/
ディレクトリー内で見つける必要があります。 - Satellite Proxy version to activate (アクティベートする Satellite Proxy のバージョン)
- インストールする Satellite Proxy のバージョンを確認するように求められます。
- HTTP Proxy (HTTP プロキシー)
- Satellite Proxy サーバーが HTTP プロキシーを使用して接続する場合は、corporate.proxy.example.com:3128 のように、プロキシーのホスト名とポート番号を入力します。
- Traceback email (トレースバックメール)
- エラー関連のトレースバックメッセージが送信されるメールアドレスのコンマで区切られている一覧です。通常は Satellite Proxy 管理者のメールです。
- Use SSL (SSL の使用)
- Enter キーを押すか、または
y
を入力し、SSL を使用するように Satellite Proxy を設定します。 - SSL Certificate (SSL 証明書)
- 有効な SSL サーバー証明書を生成するのに必要な詳細を入力します。例3.1「SSL 証明書の生成例」 は、この証明書を生成する方法を示しています。
例3.1 SSL 証明書の生成例
Regardless of whether you enabled SSL for the connection to the Satellite Proxy Parent Server, you will be prompted to generate an SSL certificate. This SSL certificate will allow client systems to connect to this Satellite Proxy securely. See the Satellite Proxy Installation Guide for more information. Organization: Example Company Organization Unit [proxy1.example.com]: Common Name: proxy1.example.com City: New York State: New York Country code: US Email [admin@example.com]:
Y
を選択します。
3.7. インストール後のタスクの実行
- SSL の設定
- 次に
configure-proxy.sh
プログラムによって SSL を設定します。この場合、SSL キーと公開証明書を生成する前に証明書認証局のパスワードを作成し、これを確認するよう求められます。例3.2 認証局 (CA) キーと公開証明書の生成例
Generating CA key and public certificate: CA password: ********* CA password confirmation: *********
- 設定チャンネルの作成
- インストールプログラムは、
configure-proxy.sh
の実行中に作成された設定ファイルに基づいて設定チャンネルを作成するかをどうか確認することも要求します。インストールプログラムは、システムの名前 (sysID
) に基づいて Satellite Server 設定チャンネルを作成します。ここには、Satellite Proxy がインストールされ (以下の例ではsysID
は 1000010000)、Satellite Proxy Server の設定チャンネルを構成するhttpd、
SSL、
squid、
およびjabberd
サーバーなどの各種ファイルが収集されます。この設定例は 例3.3「設定チャンネルの作成例」 に示されています。例3.3 設定チャンネルの作成例
Create and populate configuration channel rhn_proxy_config_1000010000? [Y]: Using server name satellite.example.com Red Hat Network username: admin Password: Creating config channel rhn_proxy_config_1000010000 Config channel rhn_proxy_config_1000010000 created using server name satserver.example.com Pushing to channel rhn_proxy_config_1000010001: Local file /etc/httpd/conf.d/ssl.conf -> remote file /etc/httpd/conf.d/ssl.conf Local file /etc/rhn/rhn.conf -> remote file /etc/rhn/rhn.conf Local file /etc/rhn/cluster.ini -> remote file /etc/rhn/cluster.ini Local file /etc/squid/squid.conf -> remote file /etc/squid/squid.conf Local file /etc/httpd/conf.d/cobbler-proxy.conf -> remote file /etc/httpd/conf.d/cobbler-proxy.conf Local file /etc/httpd/conf/httpd.conf -> remote file /etc/httpd/conf/httpd.conf Local file /etc/jabberd/c2s.xml -> remote file /etc/jabberd/c2s.xml Local file /etc/jabberd/sm.xml -> remote file /etc/jabberd/sm.xml
- サービスの再起動
- インストールプロセスの最終手順として、Satellite Proxy 関連のすべてのサービスを再起動します。インストールプログラムは、このステップが完了すると終了します。
例3.4 Satellite Proxy Server 関連のすべてのサービスの再起動
Enabling Satellite Proxy Shutting down rhn-proxy... Shutting down Jabber router: [ OK ] Stopping httpd: [ OK ] Stopping squid: [ OK ] Done. Starting rhn-proxy... init_cache_dir /var/spool/squid... Starting squid: . [ OK ] Starting httpd: [ OK ] Starting Jabber services [ OK ] Done.
3.8. Satellite Proxy Server インストールの自動化
configure-proxy.sh
スクリプトを使用してインストールプログラムのプロンプトに対して事前に指定された応答を含む回答ファイル (answer files) を作成できます。
SSL
および他の設定パラメーターに関する事前指定の回答を含む回答ファイルの例です。回答ファイルの作成と使用の詳細については、configure-proxy.sh
man ページ (man configure-proxy.sh
) を参照してください。
# example of answer file for configure-proxy.sh # for full list of possible option see # man configure-proxy.sh VERSION=5.8 RHN_PARENT=satellite.example.com TRACEBACK_EMAIL=jsmith@example.com USE_SSL=1 SSL_ORG="Red Hat" SSL_ORGUNIT="Satellite" SSL_CITY=Raleigh SSL_STATE=NC SSL_COUNTRY=US ENABLE_SCOUT=N CA_CHAIN=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT POPULATE_CONFIG_CHANNEL=Y
configure-proxy.sh
スクリプトで --answer-file
オプションを使用し、以下の例にあるように Satellite Proxy のインストールを自動化するために回答ファイル (answer file) を使用します。サンプルの answers_file.txt
ファイルの名前を回答ファイル (answer file) のパスに置き換えます。
# configure-proxy.sh --answer-file=/path/to/answers_file.txt
第4章 Custom Channel Package Manager
4.1. Custom Channel Package Manager の使用および Red Hat Network Proxy によるローカルパッケージの提供
spacewalk-proxy-package-manager
パッケージとその依存関係をインストールします。
*.rpm
) は Red Hat Satellite Proxy Server に格納されます。
/etc/rhn/rhn.conf
設定ファイルで定義される Proxy の設定と同じものを使用します。詳細については、rhn_package_manager
の man ページを参照してください。
- プライベートチャンネルを作成する。
- ローカルパッケージをそのチャンネルにアップロードする。
4.1.1. プライベートチャンネルの作成
- ネットワーク内のローカル Red Hat Satellite サーバーにログインします。
- 上部ナビゲーションバーのチャンネル をクリックします。左にあるナビゲーションバーに チャンネルの管理 (Manage Channels) オプションが表示されない場合には、このユーザーにチャンネルの編集パーミッションがあるかどうかを確認してください。 上部ナビゲーションバーから ユーザー カテゴリーにアクセスしてこれを確認することができます。
- 左にあるナビゲーションバーで、ソフトウェアチャンネルの管理 をクリックしてからページの右上部にある create new channel (チャンネルの作成) ボタンをクリックします。
- 親チャンネルとベースチャンネルのアーキテクチャーを選択して、新しいプライベートチャンネルの名前、ラベル、概要、説明を入力します。チャンネルラベルは少なくとも 6 文字以上の長さで英文字で始まらなければなりません。使用できるのは小文字、数字、ダッシュ(-)、ピリオド(.)のみになります。また、チャンネルの GPG キーの URL も入力します。ただし、このフィールドは必須ではありませんが、セキュリティー強化のため入力が推奨されるフィールドです。
- チャンネルの作成 をクリックします。
4.1.2. パッケージのアップロード
注記
rhn_package_manager -c "label_of_private_channel" pkg-list
/var/spool/rhn-proxy/rhn
にアップロードします。
pkg-list
はアップロードするパッケージ一覧です。代わりに、-d
オプションを使ってチャンネルに追加するパッケージを含むローカルディレクトリーを指定することもできます。このディレクトリーには含まれるべきパッケージ以外のファイルがないことを確認してください。Custom Channel Package Manager は標準入力からパッケージ一覧を読み取ることもできます (--stdin
を使用)。
rhn_package_manager -c "label_of_private_channel" --source pkg-list
>
-c
または --channel
を使用)、アップロードしたパッケージヘッダーはリストされるチャンネルすべてにリンクされます。
注記
rhn_package_manager -s -c "label_of_private_channel"
-s
オプションは、欠けているパッケージすべてを一覧表示します (Red Hat Satellite Server にアップロードされたがローカルディレクトリーに表示されないもの)。このコマンドを使用するには、組織管理者である必要があります。スクリプトにより Red Hat Satellite ユーザー名とパスワードの入力が求められます。
4.2. プロキシーのプリキャッシュ設定
yum
および anaconda
(キックスタートのインストールおよびプロビジョニングの場合) の RPM 要求を認識します。詳細は、rhn_package_manager
の man ページを参照してください。
rhn_package_manager
コマンドを使用して RPM ファイルを Proxy サーバーのキャッシュに手動で読み込んだり、rsync
コマンドを使用する cron
ジョブを作成してタスクを自動的に実行したりできます。
注記
4.2.1. RPM ファイルの 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 ファイルのインポートに使用できる他のメソッドに追加される機能になります。
/mnt/export
にマウントされます。
# rhn_package_manager --cache-locally --from-export /mnt/export --channel my-channel-1
--channel
オプションを省略します。
# rhn_package_manager --cache-locally --from-export /mnt/export
rhn_package_manager
コマンドを実行する前にそれらのイメージを Proxy 上でローカルにまとめる必要はありません。1 度に 1 つずつイメージをマウントし、それぞれに同じコマンドを実行します。
4.2.2. RPM ファイルの Proxy キャッシュへの自動読み込み
rsync
コマンドを使用して cron ジョブや同様のジョブを設定して、更新された RPM ファイルを Proxy キャッシュにダウンロードすることができます。この場合、Satellite サーバー上の すべての RPM ファイルを Proxy にダウンロードする必要があると仮定されます。Proxy サーバーでは root で cron ジョブおよび rsync
コマンドを実行する必要がありますが、その後 Satellite サーバーには RPM ストアへの読み取りアクセス (すべてのユーザーが持つアクセス) のあるユーザーとしてログインできます。
Proxy サーバーの root
ユーザーが Pパスワードを入力せずに Satellite サーバーの $user
への SSH 接続を確立できるようにするには、SSH キーペアをセットアップする必要があります。
重要
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 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
rsync
コマンドは毎日午前 3:01 に実行され、Satellite サーバー上にあるすべての RPM ファイルが Proxy キャッシュにダウンロードされます。/var/satellite
ディレクトリーはデフォルトの Satellite root ディレクトリーですが、これは設定可能なディレクトリーです。Satellite インストール上でこれを変更した場合、このコマンドを適宜調整します。
第5章 CNAME レコードを使用するための Satellite Proxy の設定
5.1. 前提条件
- 必要な CNAME レコードがサーバー用に設定されていることを確認する。
- CNAME レコードを Satellite Proxy サーバー設定に追加する。
- 複数ホスト対応の証明書を新たに作成し、Satellite Proxy にインストールする。
5.2. CNAME レコードの Satellite Proxy Server 設定への追加
注記
手順5.1 CNAME レコードを使用するために Satellite Proxy Server を設定する
- Proxy サーバーのシステム ID を判別します。この値は、Proxy サーバー上の
/etc/sysconfig/rhn/systemid
ファイルにあります。このファイルで以下のスタンザを見つけてください (実際のシステム ID はこの例とは異なります)。<member> <name>system_id</name> <value><string>ID-1036997498</string></value> </member>
システム ID は <string> タグ内にあります。実際のシステム ID の一部として「ID-」を含めないでください。 - 以下の行を
/etc/rhn/rhn.conf
ファイルに追加します。systemID を直前の手順の値に置き換えます。valid_cnames_sytemID= cname1,cname2,cname3
- Tomcat サービスを再起動するために次のコマンドを実行します。
# service rhn-proxy restart
5.3. 複数ホスト対応の SSL 証明書の生成と使用
rhn-ca-openssl.cnf
ファイルを更新する必要もあります。
手順5.2 複数ホスト対応の証明書を使用できるように SSL 設定ファイルを更新する
/root/ssl-build/rhn-ca-openssl.cnf
ファイルを編集し、[CA_default] セクションの場所を特定します。- エントリー
copy_extensions = copy
が存在し、コメントアウトされていないことを確認します。 - ファイルを保存してから閉じます。
重要
SSL_CNAME
を設定して configure-proxy.sh
を実行する必要があります。そうしないと、インストールが失敗します。
手順5.3 複数ホスト対応の証明書を使用できるように回答ファイル (Answers File) を更新する
- 初期の Satellite Proxy インストールで作成した
answers.txt
ファイルを編集します。ファイルを作成しなかった場合は、/usr/share/doc/spacewalk-setup-<version>/answers.txt
でサンプルのセットアップを見つけることができます。 - 次の行が存在し、コメントアウトされていないことを確認します。
SSL_CNAME = (cname01 cname02 cname03)
configure-proxy.sh
スクリプトを--answer-file
オプションを指定して実行し、複数ホスト対応の SSL 証明書を生成します。以下が例になります。# configure-proxy.sh --answer-file=</path/to/answers.txt>
注記
configure-proxy.sh
スクリプトを複数回実行し、必要に応じて設定のテストと更新を実行できます。
第6章 Satellite Proxy Server の負荷分散
- Red Hat Satellite Proxy A: IP アドレス
192.168.100.16
およびホスト名proxya.example.com
で表されます。 - Red Hat Satellite Proxy B: IP アドレス
192.168.100.17
およびホスト名proxyb.example.com
で表されます。 - ロードバランサー: ホスト名
lb.example.com
で表されます。 - Red Hat Satellite Proxy A および B が接続された Red Hat Satellite Server
- クライアントマシン: IP アドレス
192.168.100.19
で表されます。
6.1. Proxy サービスのロードバランサーへのインストール
# yum install spacewalk-proxy-installer -y # configure-proxy.sh
重要
rhn-tools-rhel-x86_64-server-6
チャンネルにサブスクライブさせて spacewalk-proxy-installer
パッケージにアクセスします。
httpd
パッケージおよびその依存関係をアンインストールします。
# yum remove httpd -y
6.2. Squid リバースプロキシーのインストール
# yum install squid
rhn-ssl-tool
を使用し、サーバー証明書を生成することができます。
lb.example.com
です。ホスト名をデプロイメントに適用される名前に置き換え、適切なビルドディレクトリーを入力します。以下のコマンドを Satellite サーバーで実行します。
$ rhn-ssl-tool --gen-server --set-hostname=lb.example.com -d /root/ssl-build
rhn-ssl-tool
は lb.example.com
の SSL ファイルを作成し、これらのファイルを /root/ssl-build
ディレクトリーに保存します。server.crt
、server.key
、および RHN-ORG-TRUSTED-SSL-CERT
CA 証明書を、dhcp
ディレクトリーから lb.example.com
ロードバランサーにコピーします。これらのファイルは、実際のロードバランサーの SSL をセットアップするために使用されます。RHN-ORG-TRUSTED-SSL-CERT
証明書により、ロードバランサーとプロキシー間の SSL 通信が可能になります。
lb.example.com
サーバーで /etc/squid/squid.conf
ファイルを変更し、リバースプロキシーモードをセットアップします。
例6.1 リバースプロキシーモードのセットアップ
# # SSL configuration # # Ensure you enter each configuration directive on a single line acl is_ssl port 443 https_port 443 cert=/etc/pki/tls/certs/lb.crt key=/etc/pki/tls/certs/lb.key accel vhost name=proxy_ssl cache_peer proxya.example.com parent 443 0 no-query originserver round-robin ssl name=proxya.example.com sslcafile=/etc/pki/tls/certs/squid-ca.crt cache_peer proxyb.example.com parent 443 0 no-query originserver round-robin ssl name=proxyb.example.com sslcafile=/etc/pki/tls/certs/squid-ca.crt cache_peer_access proxya.example.com allow is_ssl cache_peer_access proxya.example.com deny !is_ssl cache_peer_access proxyb.example.com allow is_ssl cache_peer_access proxyb.example.com deny !is_ssl http_access allow is_ssl # # Non-SSL configuration # # Ensure you enter each configuration directive on a single line acl nonssl port 80 http_port 80 accel name=proxy_nonssl defaultsite=dhcp16.example.com cache_peer 192.168.100.16 parent 80 0 no-query name=proxy_nonssl originserver cache_peer_access proxy_nonssl allow nonssl cache_peer_access proxy_nonssl deny !nonssl http_access allow nonssl sslpassword_program /bin/password.out forwarded_for on
server.crt
および server.key
ファイルの名前はそれぞれ lb.crt
および lb.key
(「load balancer (ロードバランサー) の省略) に変更され、識別が容易になりました。Satellite CA 証明書の名前は squid-ca.crt
に変更されます。cache_peer sslcafile
オプションはこのファイルを参照します。
squid
グループに追加します。
# chgrp squid /etc/pki/tls/certs/{lb.crt,lb.key,squid-ca.crt}
-rw-r--r--. 1 root squid 5450 Aug 23 21:23 lb.crt -rw-r--r--. 1 root squid 1675 Aug 23 21:23 lb.key -rw-r--r--. 1 root squid 5363 Aug 22 14:19 squid-ca.crt
cache_peer
ディレクティブはラウンドロビン形式で使用される 2 つのプロキシーをセットアップします。ロードバランサーがプロキシーと通信できるように CA 証明書を指定する必要があることに注意してください。また squid の acl is_ssl
および cache_peer
ディレクティブを使用して、ポート 443 のトラフィックのみがこれらのプロキシーにヒットするように設定されます。
defaultsite
ディレクティブを使用して、ポート 80 のすべてのトラフィックが 1 つのプロキシーにリダイレクトされ、dhcp16.example.com プロキシーにデフォルト設定されます。Acls は ssl ポートと同様にセットアップされます。
sslpassword_program
ディレクティブを使用すると、SSL キーのパスフレーズ (使用される場合、完了についての表示が出されます) を人の介入なしに起動時に squid に送信できます。password.out の内容は、SSL パスフレーズを echo する bash スクリプトです。forwarded_for
ディレクトリーは forwarded_for
ヘッダーをプロキシーに送信するようにロードバランサーを設定します。
重要
/etc/squid/squid.conf
を編集し、squid が通常リッスンするデフォルトポートの 3128 をコメントアウトします。
# Squid normally listens to port 3128 # http_port 3128
# service squid restart
6.3. クライアントのセットアップ
/etc/sysconfig/rhn/up2date
ファイルを修正する必要があります。
serverURL[comment]=Remote server URL (use FQDN) serverURL=https://lb.example.com/XMLRPC
6.4. 設定のテスト
ロードバランサーおよびプロキシーマシンを起動します。Satellite Proxy ログは最初の要求が送信されるまで作成されないことに注意してください (/var/log/rhn/
)。zsh などの RPM ファイルをインストールし、削除してみてください。
/var/log/squid/access.log
ファイルには、以下のような情報が含まれる必要があります。
1377540630.159 97 192.168.100.19 TCP_MISS/200 1515 POST https://lb.example.com/XMLRPC - ROUNDROBIN_PARENT/proxya.example.com text/base64 1377540630.733 529 192.168.100.19 TCP_MISS/200 1409 POST https://lb.example.com/XMLRPC - ROUNDROBIN_PARENT/proxyb.example.com text/xml 1377540639.968 87 192.168.100.19 TCP_MISS/200 3742 POST https://lb.example.com/XMLRPC - ROUNDROBIN_PARENT/proxya.example.com text/xml 1377540644.273 83 192.168.100.19 TCP_MEM_HIT/200 2238956 GET https://lb.example.com/XMLRPC/GET-REQ/rhel-x86_64-server-6/getPackage/zsh-4.3.10-5.el6.x86_64.rpm - NONE/- application/octet-stream 1377540646.765 100 192.168.100.19 TCP_MISS/200 1515 POST https://lb.example.com/XMLRPC - ROUNDROBIN_PARENT/proxyb.example.com text/base64 1377540647.291 485 192.168.100.19 TCP_MISS/200 1409 POST https://lb.example.com/XMLRPC - ROUNDROBIN_PARENT/proxya.example.com text/xml
yum
パッケージインストールは複数のプロキシーで共有されます。クライアント IP アドレスは 192.168.100.19 であり、2 つの異なる Satellite Proxy に対応する名前付きの proxya.example.com
および proxyb.example.com
キャッシュのピアが表示されます。
以下のログファイルを参照し、ロードバランサーのアクティビティーを監視します。
/var/log/squid/access.log
: クライアントから送信される要求の確認用/var/log/squid/cache.log
: SSL 起動の問題のデバッグおよびポート 80 および 443 のキャッシュピアの確認用
netstat
コマンドを使用して squid ロードバランサーが適切なポートでリッスンしていることを確認します。
# netstat -tulpn | grep squid | grep tcp tcp 0 0 :::80 :::* LISTEN 29120/(squid) tcp 0 0 :::443 :::* LISTEN 29120/(squid)
第7章 Red Hat Proxy Server インストールのアップグレード
7.1. 前提条件
- Red Hat Enterprise Linux 6 (64 ビットのみ)。
- 親 Satellite サーバーからこれまでの Proxy サーバーのシステムプロファイルを削除する。
7.2. Proxy インストールのアップグレード
- 既存の Proxy サーバーをバックアップします。該当する場合は、SSL ビルドディレクトリーをバックアップからディレクトリー
/root/ssl-build
に戻して SSL ビルドを復元します。 - Proxy を親 Satellite に登録します。Proxy が Red Hat Enterprise Linux Server のベースチャンネルと Red Hat Network Tools の子チャンネルの両方にサブスクライブしていることを確認します。
- Red Hat Network Tools の子チャンネルから
spacewalk-proxy-installer
パッケージをインストールします。# yum install spacewalk-proxy-installer
- 「Red Hat Satellite Proxy Server パッケージのインストール」 にあるように、最新バージョンのプロキシーをインストールします。
注記
Proxy サーバーが Red Hat Satellite に登録されており、かつこの Proxy が以前にカスタムチャンネルを管理していた場合、アップグレード前のバックアップからこのカスタムパッケージのリポジトリーを復元します。パーミッションと所有権も適切に設定する必要があります。# chmod 0750 /var/spool/rhn-proxy # chown apache:apache /var/spool/rhn-proxy # mkdir -m 0750 -p /var/spool/rhn-proxy/list # chown apache:apache /var/spool/rhn-proxy/list
デフォルトのカスタムパッケージのリポジトリーは通常/var/spool/rhn-proxy
です。 - インストール後に、サーバーを最新のエラータ更新に対してアップデートします。
# yum update
- Proxy Server サービスを再起動して、Proxy Server の機能をテストします。
# /usr/sbin/rhn-proxy restart
付録A サンプルの Satellite Proxy Server 設定ファイル
/etc/rhn/rhn.conf
設定ファイルを使用すると、管理者はキー設定を確立することができます。ただし、このファイルに設定エラーがあると Satellite Proxy の障害が発生する可能性があるので、変更を加える際には注意してください。
traceback_mail
および proxy.rhn_parent
パラメーターにとくに注意してください。詳細については、以下のサンプルとそのコメント (コメントは列 1 のハッシュマーク (#) で識別できる) を確認してください。
重要
use_ssl
オプションを rhn.conf
に追加することができます。値を 0 に設定すると Satellite Proxy と Satelllite サーバー間の SSL がオフになります。これを行うとセキュリティーの危険が大幅に高まることに注意してください。デフォルト値の 1 にオプションの設定を戻して SSL を再度有効にするか、または単に設定ファイルからその行を削除してください。
# Automatically generated RHN Management Proxy Server configuration file. # ------------------------------------------------------------------------- # SSL CA certificate location proxy.ca_chain = /usr/share/rhn/RHNS-CA-CERT # Corporate HTTP proxy, format: corp_gateway.example.com:8080 proxy.http_proxy = # Password for that corporate HTTP proxy proxy.http_proxy_password = # Username for that corporate HTTP proxy proxy.http_proxy_username = # Location of locally built, custom packages proxy.pkg_dir = /var/spool/rhn-proxy # Hostname of RHN Server or RHN Satellite proxy.rhn_parent = satellite.example.com # Destination of all tracebacks, etc. traceback_mail = user0@domain.com, user1@domain.com
付録B 用語集
- チャンネル
- チャンネルとはソフトウェアパッケージの一覧です。チャンネルには、ベースチャンネルと子チャンネルの 2 種類があります。ベースチャンネル は特定のアーキテクチャーと Red Hat リリースに基づくパッケージ一覧で構成されています。子チャンネル は ベースチャンネルに関連するチャンネルで、追加のパッケージが入っています。
- 組織管理者
- 組織管理者とは、組織の Red Hat Satellite アカウント全体にわたる最上位レベルのコントロールを備えたユーザーロールです。このロールを持つメンバーは他のユーザー、他のシステムおよびシステムグループを組織に追加したり削除したりすることができます。Red Hat Satellite の各組織には少なくとも 1 人の組織管理者が必要です。
- チャンネル管理者
- チャンネル管理者とは、チャンネル管理に関する機能すべてにアクセスできるユーザーロールになります。チャンネル管理者は、チャンネルの作成とチャンネルへのパッケージの割り当てができます。組織管理者は、Red Hat Satellite web サイトの ユーザー タブを使って、このロールを他のユーザーに割り当てることができます。
- Red Hat Update Agent
- Red Hat Update Agent は、ユーザーによる更新パッケージや新規パッケージの取得やクライアントシステムへのインストールを可能にするクライアントアプリケーションです。
- トレースバック
- トレースバックにはエラーについての詳細が記載されています。これは、Satellite Proxy のトラブルシューティングに役立ちます。重大なエラーが発生するとトレースバックファイルが自動的に生成され、Satellite Proxy の設定ファイルで指定されたユーザーにメールでこのトレースバックファイルが送信されます。
付録C 改訂履歴
改訂履歴 | |||
---|---|---|---|
改訂 1.1-0.1 | Fri Nov 17 2017 | Terry Chuang | |
| |||
改訂 1.1-0 | Wed Feb 1 2017 | Satellite Documentation Team | |
|