第2章 Spacewalkプロキシのインストールとアップグレード
Spacewalkプロキシは、SpacewalkクライアントとSpacewalkサーバーの間の仲介役として機能します。 Spacewalkプロキシの主な目的は、Spacewalkサーバーの負荷を軽減し、Spacewalkクライアントのダウンロード時間を短縮することです。
この章では、Spacewalkプロキシをインストールまたはアップグレードする方法について説明します。
2.1 Spacewalkプロキシ要件
Oracleでは、Oracle Linux 6 (x86_64)またはOracle Linux 7 (x86_64)で稼働しているSpacewalkのプロキシがサポートされます。 Oracle Linuxは、Oracle Linux yumサーバーで使用可能な最新のパッケージで更新することをお薦めします。
SpacewalkプロキシをULNに登録しないでください。 Spacewalkプロキシを自身のクライアントとして登録したり、更新を受け取るSpacewalkサーバーのクライアントとして登録することができます。
次の追加要件に注意してください:
-
Oracle Linux 6またはOracle Linux 7は、「最小」または「基本的なサーバー」ソフトウェア・セットを使用してインストールできます。 インストール中に追加のパッケージ・グループを選択する場合は、
jta
をインストールする前にjta
パッケージを削除してください。このパッケージはSpacewalkサービスの起動に失敗するためです。 -
Oracle Linux yumサーバー(https://yum.oracle.com)からOracleによって提供されるパッケージのみを使用してSpacewalkをインストールします。
-
Oracle Linux 6またはOracle Linux 7にSpacewalkをインストールするためにサードパーティのパッケージ・レポジトリは必要ありません。 必要なパッケージはすべて、Oracle Linux yumサーバーのSpacewalkリポジトリにあります。
2.2 Spacewalkプロキシの記憶域要件
Spacewalkプロキシの記憶域要件は次のとおりです:
-
Spacewalkプロキシには、最低4 GBのメモリーが必要です。
-
通常、プロキシ・キャッシュには、Oracle Linuxリリースとアーキテクチャの組み合わせごとに10 GBの記憶域が必要です。
-
デフォルトでは、Spacewalkプロキシはパッケージを
/var/spool/squid
ディレクトリ階層の下にキャッシュし、このディレクトリ階層を含むファイル・システムの空き領域の最大60%を使用するように制限されています。
2.3 Spacewalkプロキシのネットワーク要件
Spacewalkプロキシのネットワーク要件は次のとおりです:
-
完全修飾ドメイン名を構成
Spacewalkプロキシの完全修飾ドメイン名(FQDN)を構成する必要があります。 Spacewalkでは、
.local
および.localdomain
を有効なドメイン名とはみなしません。 Spacewalkクライアントは、DNSのフォワードとリバース・ルック・アップの両方について、SpacewalkプロキシFQDNを解決できる必要があります。 これらの条件が満たされないと、証明書の検証とPXE起動が機能せず、クライアントはSpacewalkサーバーに登録できません。次の例に示すように、
/etc/sysconfig/network
で定義さhostnameコマンドとHOSTNAME
の値によって返されたホスト名が同一であることを確認し、このホスト名は、順方向の両方にDNSシステムに対して定義されたFQDNと一致していること、およびルックアップを逆#
hostname
swkproxy.us.mydom.com #grep HOSTNAME /etc/sysconfig/network
HOSTNAME=swkproxy.us.mydom.comOracle Linux 6の場合は、hostコマンドを使用して次の情報を確認することもできます:
#
host swkproxy.us.mydom.com
swkproxy.us.mydom.com has address 10.0.0.24 #host 10.0.0.24
24.0.0.10.in-addr.arpa domain name pointer swkproxy.us.mydom.com.次の例に示すように、
/etc/hosts
ファイルを編集し、ループバック・アドレス(127.0.0.1
)ではなく、FQDNとホスト名の実際のIPアドレスを構成します:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.24 swkproxy.us.mydom.com swkproxy
-
Spacewalkプロキシのポート番号
次の表では、Spacewalkプロキシが使用するネットワーク・ポートをその構成に応じて説明します。
Port/Protocol
方向 用途
80
/tcp
インバウンドおよびアウトバウンド
HTTPアクセス
443
/tcp
インバウンドおよびアウトバウンド
HTTPSアクセス
5222
/tcp
インバウンド
Spacewalkクライアントへのサポートをプッシュ(必要な場合)
5269
/tcp
インバウンド
Spacewalkプロキシへのサポートをプッシュする(必要な場合)
-
Webプロキシを構成
SpacewalkプロキシがWebプロキシ経由で接続する必要がある場合は、インストール中にWebプロキシを構成できます。
-
「ネットワーク時間の同期を構成」
Spacewalkサーバー、プロキシ、およびクライアントをNTPまたはPTPに構成します。 Spacewalkでは、SSLベースの接続を確立するために、これらのシステムのシステム時間が120秒以内に一致する必要があります。
2.4 Spacewalkプロキシのインストール
Spacewalkプロキシは、Spacewalkクライアント全体で構成し、Spacewalkサーバーに登録する必要があります。
Spacewalk Proxyソフトウェアを次のようにインストールします:
-
jta
パッケージがインストールされていないことを確認し、Spacewalkのインストール時にこのパッケージがインストールされないようにします。jta
パッケージがインストールされているかどうかを確認します:#
yum list installed | grep jta
jta
パッケージを削除します:#
yum remove jta
jta
パッケージが後でインストールされないようにするには、Oracle Linux 6またはOracle Linux 7アドオン・チャネル([ol6_addons]
または[ol7_addons]
)を無効にするか、yum構成ファイル/etc/yum.conf
のexclude
ディレクティブにjta
パッケージを追加します。次に例を示し:exclude=jta*
-
システム・ファイアウォールを構成します。
次の例は、Oracle Linux 6用のシステム・ファイアウォールを構成する方法を示しています:
#
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
#iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 5222 -j ACCEPT
#iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 5269 -j ACCEPT
#iptables -I OUTPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#iptables -I OUTPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
#iptables -I OUTPUT -p tcp -m state --state NEW -m tcp --dport 4545 -j ACCEPT
#service iptables save
Oracle Linux 7の場合は、次のようにシステム・ファイアウォールを構成します:
#
firewall-cmd --permanent --add-port=80/tcp
#firewall-cmd --permanent --add-port=443/tcp
#firewall-cmd --permanent --add-port=5222/tcp
#firewall-cmd --permanent --add-port=5269/tcp
#systemctl reload firewalld
-
Spacewalkサーバーに存在しない場合、SpacewalkクライアントおよびSpacewalkサーバー用のソフトウェア・チャネルを作成し、次のようにSpacewalkプロキシ・システムをこれらのチャネルにサブスクライブします:
-
Spacewalkクライアント・チャネルを、インストール済バージョンがOracle LinuxのOracle Linux 6ベース・チャネルまたはOracle Linux 7ベース・チャネルの子として作成します。
-
Oracle Linux 6またはOracle Linux 7と同じGPG設定を使用して、Oracle Linux yumサーバー(
https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/client/x86_64/
、https://yum.oracle.com/repo/OracleLinux/OL7/spacewalk27/client/x86_64/
)で適切なSpacewalkクライアント・チャネルにアクセスするSpacewalkクライアント・リポジトリを作成します。 -
Spacewalk ClientリポジトリをSpacewalk Clientチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。
-
適宜、インストール済バージョンのOracle Linuxに、Oracle Linux 6またはOracle Linux 7ベース・チャネルの子としてSpacewalkサーバー・チャネルを作成します。
-
Oracle Linux 6またはOracle Linux 7の設定と同じGPG設定を使用して、Oracle Linux yumサーバー(
https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/server/x86_64/
、https://yum.oracle.com/repo/OracleLinux/OL7/spacewalk27/server/x86_64/
)で適切なSpacewalk ServerチャネルにアクセスするSpacewalk Serverリポジトリを作成します。 -
Spacewalk ServerリポジトリをSpacewalk Serverチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。
-
Spacewalk内のSpacewalkサーバーのチャネル・サブスクリプションを、以前のバージョンからリリース2.7のSpacewalkサーバー・チャネルに変更します。
-
Spacewalkクライアントおよびサーバー・チャネルに対するSpacewalkプロキシをサブスクライブします。
-
-
Spacewalk Clientソフトウェアおよび
openssh-clients
パッケージをインストールします。#
yum install rhn-client-tools rhn-check rhn-setup rhnsd
\m2crypto yum-rhn-plugin openssh-clients
-
Spacewalkプロキシとして動作するSpacewalkサーバーのクライアントとしてシステムを登録します。
ノートサーバーを登録する前に、すでにクライアント・アクティベーション・キーを作成している必要があります。 有効な場合、汎用デフォルト・キーを使用できます。 ただし、固有のアクティブ化キーの使用をお薦めします。
次のステップでは、SSLを使用して、クライアントとSpacewalkサーバー間のすべての通信を暗号化します。 この構成はmandatoryです。 プロキシはSSLを使用してサーバーと通信する必要があります。 そうしないと、
jabberd
は機能しません。-
CA証明書ファイル
RHN-ORG-TRUSTED-SSL-CERT
をサーバーにダウンロードします。ブラウザのタブで
http://
に移動します。swksvr_FQDN
/pubswksvr_FQDN
はSpacewalkサーバーの完全修飾ドメイン名で、CA証明書ファイルRHN-ORG-TRUSTED-SSL-CERT
を/usr/share/rhn
にダウンロードします。または、次のようにコマンドラインからwgetを使用します。
#
wget -q -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
\http://
swksvr_FQDN
/pub/RHN-ORG-TRUSTED-SSL-CERT -
rhnreg_ksコマンドを使用してSpacewalkにシステムを登録し、--sslCACertオプションを使用してCA証明書のパスを指定します。
#
rhnreg_ks --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
\--serverUrl=https://
swksvr_FQDN
/XMLRPC --activationkey=activation_key
Spacewalkサーバーまたはプロキシを完全修飾ドメイン名で指定します。
-
/etc/sysconfig/rhn/up2date
ファイルのSpacewalkサーバーへのアクセスに使用されている設定が正しいことを確認します。-
serverURL
がSpacewalkサーバーURLに設定されていることを確認します(例:https://swksvr.mydom.com/XMLRPC
:#
grep ^serverURL= /etc/sysconfig/rhn/up2date
serverURL=https://swksvr.mydom.com/XMLRPC -
sslCACert
が正しいCA証明書ファイルに設定されていることを確認します。たとえば、/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
:#
grep ^sslCACert= /etc/sysconfig/rhn/up2date
sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
ノート設定が正しくない場合は、rhnreg_ksコマンドを使用してシステムを登録するときに間違いを犯した可能性があります。 rhnreg_ksコマンドを再度実行して、CA証明書のパスとSpacewalkサーバーURLを正しく指定していることを確認します。 また、以前の設定を上書きするには、--forceオプションを指定してください。
-
-
-
Spacewalk Proxyインストーラ・パッケージをインストールします。
#
yum -y install spacewalk-proxy-installer
-
/root/ssl-build
ディレクトリを作成します。#
mkdir /root/ssl-build
-
SpacewalkサーバーのCAキーと公開証明書ファイルを
/root/ssl-build
にコピーします。#
scp 'root@
\spacewalk_server
:/root/ssl-build/{RHN-ORG-PRIVATE-SSL-KEY,RHN-ORG-TRUSTED-SSL-CERT,rhn-ca-openssl.cnf}' /root/ssl-build
RHN-ORG-PRIVATE-SSL-KEY 100% 1751 1.7KB/s 00:00 RHN-ORG-TRUSTED-SSL-CERT 100% 5316 5.2KB/s 00:00 rhn-ca-openssl.cnf 100% 2186 2.1KB/s 00:00 -
/usr/sbin/configure-proxy.shスクリプトを実行して、Spacewalkプロキシを構成します。
次の例は、対話型構成を示しています。
#
/usr/sbin/configure-proxy.sh
Using RHN parent (from /etc/sysconfig/rhn/up2date): swksvr.mydom.com Using CA Chain (from /etc/sysconfig/rhn/up2date): /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT HTTP Proxy []:[Enter]
Proxy version to activate [2.7]:[Enter]
Traceback email []:my.email@mydom.com
Use SSL [Y/n]:Y
Regardless of whether you enabled SSL for the connection to the Spacewalk Parent Server, you will be prompted to generate an SSL certificate. This SSL certificate will allow client systems to connect to this Spacewalk Proxy securely. Refer to the Spacewalk Proxy Installation Guide for more information. Organization []:Company Demo
Organization Unit [swkproxy.us.mydom.com]:[Enter]
Common Name [swkproxy.us.mydom.com]:[Enter]
City []:Redwood Shores
State []:CA
Country code []:US
Email [my.email@mydom.com]:[Enter]
Cname aliases (separated by space) []:[Enter]
Spacewalk Proxy successfully activated. Loaded plugins: rhnplugin This system is receiving updates from RHN Classic or Red Hat Satellite. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package spacewalk-proxy-management.noarch... will be installed ... Transaction Summary ================================================================================ Install 42 Package(s) Total download size: 13 M Installed size: 32 M Is this ok [y/N]:y
Downloading Packages: (1/42): apr... | 122 kB 00:00 ... Using CA key at /root/ssl-build/RHN-ORG-PRIVATE-SSL-KEY. Generating distributable RPM for CA public certificate: Copying CA public certificate to /var/www/html/pub for distribution to clients: Generating SSL key and public certificate: CA password:
Installing SSL certificate for Apache and Jabberd: Preparing packages for installation... rhn-org-httpd-ssl-key-pair-swkproxy-1.0-1 Create and populate configuration channel rhn_proxy_config_1000010000? [Y/n]:cert_passwd
Y
Spacewalk username: []:
Password:sw_user
Using server name swksvr.mydom.com Creating config channel rhn_proxy_config_1000010000 Config channel rhn_proxy_config_1000010000 created Using server name swksvr.mydom.com Pushing to channel rhn_proxy_config_1000010000: 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/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 Enabling Spacewalk Proxy. Shutting down rhn-proxy... Terminating jabberd processes ... Stopping s2s: [FAILED] Stopping c2s: [FAILED] Stopping sm: [FAILED] Stopping router: [FAILED] Stopping httpd: [FAILED] Stopping squid: [FAILED] Done. Starting rhn-proxy... init_cache_dir /var/spool/squid... Starting squid: . [ OK ] Starting httpd: [ OK ] Initializing jabberd processes ... Starting router: [ OK ] Starting sm: [ OK ] Starting c2s: [ OK ] Starting s2s: [ OK ] Done. There were some answers you had to enter manually. Would you like to have written those into file formatted as answers file? [Y/n]:sw_passwd
Y
Writing proxy-answers.txt.NtM1YSpacewalkユーザー名とパスワード(
sw_user
とsw_passwd
)は、Spacewalkサーバー管理者のユーザー名とパスワードです。ノート指定した情報は、必要に応じて
proxy-answers.txt.
という名前のファイルに記録されます。UID
UID
は一意の識別子です。 次の例に示すように、このファイルを使用してSpacewalkプロキシの構成を自動化できます:#
configure-proxy.sh --non-interactive --answer-file=proxy-answers.txt.NtM1Y
-
自己署名SSL証明書の代わりにサードパーティのCA署名SSL証明書を使用する場合は、1.6.1項、「自己署名付きSSL証明書の置換」に記載されている手順に従ってください。
ノートクライアントを登録する前に、自己署名SSL証明書を置き換えることをお薦めします。 それ以外の場合は、既存の各クライアントに個別にログオンし、新しいSSL証明書を使用するように構成する必要があります。 これはSpacewalkサーバーからは実行できません。
-
Spacewalkプロキシが正しく動作していることを確認するには、次の例に示すように、Spacewalkクライアントを登録するときにプロキシのURLを指定
rhnreg_ks --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
\--serverUrl=https://
swkproxy_FQDN
/XMLRPC --activationkey=activation_key
クライアントをサブスクライブしたら、サーバー上のソフトウェア・チャネルにサブスクライブし、クライアントからパッケージを更新できることを確認します。
2.5 Spacewalkプロキシのアップグレード
Spacewalkプロキシを次のようにアップグレードします:
-
Spacewalkサーバーに存在しない場合は、Spacewalkクライアントおよびリリース2.7のSpacewalkサーバー用のソフトウェア・チャネルを作成し、次のようにSpacewalkプロキシ・システムをこれらのチャネルにサブスクライブします:
-
Spacewalkクライアント・チャネルを、Oracle Linux 6ベース・チャネルの子として作成します。
-
Oracle Linux 6と同じGPG設定を使用して、Oracle Linux yumサーバー(
https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/client/x86_64/
)のSpacewalkクライアント・チャネルにアクセスするSpacewalkクライアント・リポジトリを作成します。 -
Spacewalk ClientリポジトリをSpacewalk Clientチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。
-
Oracle Linux 6ベース・チャネルの子としてSpacewalkサーバー・チャネルを作成します。
-
Oracle Linux 6と同じGPG設定を使用して、Oracle Linux yumサーバー(
https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/server/x86_64/
)上のSpacewalk ServerチャネルにアクセスするSpacewalk Serverリポジトリを作成します。 -
Spacewalk ServerリポジトリをSpacewalk Serverチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。
-
Spacewalk内のSpacewalkサーバーのチャネル・サブスクリプションを、以前のリリースからリリース2.7のSpacewalkサーバー・チャネルに変更してください。
-
リリース2.6のSpacewalk Serverおよびクライアント・チャネルではなく、リリース2.7のために、SpacewalkクライアントおよびSpacewalk Serverのチャネルに対してSpacewalkプロキシをサブスクライブします。
-
-
/root/ssl-build
にCAキー、SSL証明書、およびopenSSL構成ファイルをバックアップします。たとえば、次のようにtarコマンドを使用してバックアップを作成できます:
#
cd /root/ssl-build
#tar -cvf /tmp/sslcerts.tar RHN-ORG-PRIVATE-SSL-KEY RHN-ORG-TRUSTED-SSL-CERT rhn-ca-openssl.cnf
-
yum updateコマンドを実行して、システム上のすべてのパッケージを更新します。
#
yum update
-
必要に応じて、バックアップ・ファイルからCAキー、SSL証明書、およびopenSSL構成ファイルを
/root/ssl-build
に抽出します:#
cd /root/ssl-build
#tar -xvf /tmp/sslcerts.tar
-
configure-proxy.shスクリプトを実行して、Spacewalkプロキシを構成します。
次の例では、以前のインストールから保存された
proxy-answers.txt.
ファイルを使用して構成を実行します:UID
#
configure-proxy.sh --non-interactive --answer-file=proxy-answers.txt.NtM1Y
コマンドライン・オプションを省略して対話形式でこのコマンドを実行することもできます。
2.6 Spacewalk Proxyインストールの問題のトラブルシューティング
次の情報は、Spacewalkプロキシで発生する可能性がある問題の診断と解決方法を説明しています。
その他の既知の問題および回避策の詳細は、『Spacewalk for Oracle® Linux: リリース・ノートforリリース2.7』を参照してください。
「rhn-proxyステータス」コマンドを使用して、正しく動作していないSpacewalkプロキシ・サービスを確認します。 サービスが正常に開始されない場合、問題は通常、インストール中に誤った構成情報が提供されたために発生します。
/etc/sysconfig/rhn/systemid
ファイルがroot:apache
によって所有され、そのモードが640に設定されていることを確認します。
次のログファイルでエラーを確認します:
-
/var/log/httpd/*
-
httpd
サービスのログファイルですか?。 -
/var/log/rhn/rhn_proxy_broker.log
-
プロキシ仲介サービスのログファイルです。
-
/var/log/rhn/rhn_proxy_redirect.log
-
プロキシSSLリダイレクト・サービスのログファイルです。
-
/var/log/squid/*
-
squidプロキシ・ログファイルですか?。
-
/var/log/yum.log
-
Yumログ・ファイルです。
2.6.1 プロキシ・キャッシュのクリア
パッケージ・プロビジョニングの問題を解決する必要がある場合は、次のようにプロキシ・キャッシュをクリアすることができます:
-
httpd
とsquid
サービスを停止します。Oracle Linux 6の場合は、次のコマンドを入力します:
#
service httpd stop
#service squid stop
Oracle Linux 7の場合は、次のコマンドを入力します:
#
systemctl stop httpd
#systemctl stop squid
-
次のようにキャッシュの内容を削除します:
#
rm -Rf /var/cache/rhn/*
-
squid
およびhttpd
サービスを再起動します。Oracle Linux 6の場合は、次のコマンドを入力します:
#
service squid start
#service httpd start
Oracle Linux 7の場合は、次のコマンドを入力します:
#
systemctl start squid
#systemctl start httpd