機械翻訳について

第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.com

    Oracle 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ソフトウェアを次のようにインストールします:

  1. 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.confexcludeディレクティブにjtaパッケージを追加します。次に例を示し:

    exclude=jta*
  2. システム・ファイアウォールを構成します。

    次の例は、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
  3. Spacewalkサーバーに存在しない場合、SpacewalkクライアントおよびSpacewalkサーバー用のソフトウェア・チャネルを作成し、次のようにSpacewalkプロキシ・システムをこれらのチャネルにサブスクライブします:

    1. Spacewalkクライアント・チャネルを、インストール済バージョンがOracle LinuxのOracle Linux 6ベース・チャネルまたはOracle Linux 7ベース・チャネルの子として作成します。

    2. 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クライアント・リポジトリを作成します。

    3. Spacewalk ClientリポジトリをSpacewalk Clientチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。

    4. 適宜、インストール済バージョンのOracle Linuxに、Oracle Linux 6またはOracle Linux 7ベース・チャネルの子としてSpacewalkサーバー・チャネルを作成します。

    5. 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リポジトリを作成します。

    6. Spacewalk ServerリポジトリをSpacewalk Serverチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。

    7. Spacewalk内のSpacewalkサーバーのチャネル・サブスクリプションを、以前のバージョンからリリース2.7のSpacewalkサーバー・チャネルに変更します。

    8. Spacewalkクライアントおよびサーバー・チャネルに対するSpacewalkプロキシをサブスクライブします。

  4. Spacewalk Clientソフトウェアおよびopenssh-clientsパッケージをインストールします。

    # yum install rhn-client-tools rhn-check rhn-setup rhnsd \
    m2crypto yum-rhn-plugin openssh-clients
  5. Spacewalkプロキシとして動作するSpacewalkサーバーのクライアントとしてシステムを登録します。

    ノート

    サーバーを登録する前に、すでにクライアント・アクティベーション・キーを作成している必要があります。 有効な場合、汎用デフォルト・キーを使用できます。 ただし、固有のアクティブ化キーの使用をお薦めします。

    次のステップでは、SSLを使用して、クライアントとSpacewalkサーバー間のすべての通信を暗号化します。 この構成はmandatoryです。 プロキシはSSLを使用してサーバーと通信する必要があります。 そうしないと、jabberdは機能しません。

    1. CA証明書ファイルRHN-ORG-TRUSTED-SSL-CERTをサーバーにダウンロードします。

      ブラウザのタブでhttp://swksvr_FQDN/pubに移動します。swksvr_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
    2. 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サーバーまたはプロキシを完全修飾ドメイン名で指定します。

    3. /etc/sysconfig/rhn/up2dateファイルのSpacewalkサーバーへのアクセスに使用されている設定が正しいことを確認します。

      1. serverURLがSpacewalkサーバーURLに設定されていることを確認します(例:https://swksvr.mydom.com/XMLRPC :

        # grep ^serverURL= /etc/sysconfig/rhn/up2date 
        serverURL=https://swksvr.mydom.com/XMLRPC
      2. 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オプションを指定してください。

  6. Spacewalk Proxyインストーラ・パッケージをインストールします。

    # yum -y install spacewalk-proxy-installer

  7. /root/ssl-buildディレクトリを作成します。

    # mkdir /root/ssl-build
  8. 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
  9. /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: cert_passwd
    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]: Y
    Spacewalk username: []: sw_user
    Password: sw_passwd
    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]: Y
    Writing proxy-answers.txt.NtM1Y

    Spacewalkユーザー名とパスワード(sw_usersw_passwd)は、Spacewalkサーバー管理者のユーザー名とパスワードです。

    ノート

    指定した情報は、必要に応じてproxy-answers.txt.UIDという名前のファイルに記録されます。UIDは一意の識別子です。 次の例に示すように、このファイルを使用してSpacewalkプロキシの構成を自動化できます:

    # configure-proxy.sh --non-interactive --answer-file=proxy-answers.txt.NtM1Y
  10. 自己署名SSL証明書の代わりにサードパーティのCA署名SSL証明書を使用する場合は、1.6.1項、「自己署名付きSSL証明書の置換」に記載されている手順に従ってください。

    ノート

    クライアントを登録する前に、自己署名SSL証明書を置き換えることをお薦めします。 それ以外の場合は、既存の各クライアントに個別にログオンし、新しいSSL証明書を使用するように構成する必要があります。 これはSpacewalkサーバーからは実行できません。

  11. 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プロキシを次のようにアップグレードします:

  1. Spacewalkサーバーに存在しない場合は、Spacewalkクライアントおよびリリース2.7のSpacewalkサーバー用のソフトウェア・チャネルを作成し、次のようにSpacewalkプロキシ・システムをこれらのチャネルにサブスクライブします:

    1. Spacewalkクライアント・チャネルを、Oracle Linux 6ベース・チャネルの子として作成します。

    2. Oracle Linux 6と同じGPG設定を使用して、Oracle Linux yumサーバー(https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/client/x86_64/)のSpacewalkクライアント・チャネルにアクセスするSpacewalkクライアント・リポジトリを作成します。

    3. Spacewalk ClientリポジトリをSpacewalk Clientチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。

    4. Oracle Linux 6ベース・チャネルの子としてSpacewalkサーバー・チャネルを作成します。

    5. Oracle Linux 6と同じGPG設定を使用して、Oracle Linux yumサーバー(https://yum.oracle.com/repo/OracleLinux/OL6/spacewalk27/server/x86_64/)上のSpacewalk ServerチャネルにアクセスするSpacewalk Serverリポジトリを作成します。

    6. Spacewalk ServerリポジトリをSpacewalk Serverチャネルに関連付けて、Oracle Linux yumサーバーからリポジトリ・パッケージを同期します。

    7. Spacewalk内のSpacewalkサーバーのチャネル・サブスクリプションを、以前のリリースからリリース2.7のSpacewalkサーバー・チャネルに変更してください。

    8. リリース2.6のSpacewalk Serverおよびクライアント・チャネルではなく、リリース2.7のために、SpacewalkクライアントおよびSpacewalk Serverのチャネルに対してSpacewalkプロキシをサブスクライブします。

  2. /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
  3. yum updateコマンドを実行して、システム上のすべてのパッケージを更新します。

    # yum update
  4. 必要に応じて、バックアップ・ファイルからCAキー、SSL証明書、およびopenSSL構成ファイルを/root/ssl-buildに抽出します:

    # cd /root/ssl-build
    # tar -xvf /tmp/sslcerts.tar
  5. 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 プロキシ・キャッシュのクリア

パッケージ・プロビジョニングの問題を解決する必要がある場合は、次のようにプロキシ・キャッシュをクリアすることができます:

  1. httpdsquidサービスを停止します。

    Oracle Linux 6の場合は、次のコマンドを入力します:

    # service httpd stop
    # service squid stop

    Oracle Linux 7の場合は、次のコマンドを入力します:

    # systemctl stop httpd
    # systemctl stop squid
  2. 次のようにキャッシュの内容を削除します:

    # rm -Rf /var/cache/rhn/*
  3. squidおよびhttpdサービスを再起動します。

    Oracle Linux 6の場合は、次のコマンドを入力します:

    # service squid start
    # service httpd start

    Oracle Linux 7の場合は、次のコマンドを入力します:

    # systemctl start squid
    # systemctl start httpd