第2章 Capsule Server のインストール

Capsule Server をインストールする前に、お使いの環境がインストール要件を満たしていることを確認してください。詳細は、「システム要件」 を参照してください。

2.1. Satellite Server への登録

この手順を使用して、Capsule Server をインストールするベースシステムを Satellite Server に登録します。

前提条件

Satellite Server に登録する前に、Capsule のインストール先のベースシステムが次の条件を満たしていることを確認してください。

サブスクリプションのマニフェストの前提条件

  • Satellite Server にマニフェストをインストールし、Capsule が所属する組織に適したリポジトリーが含まれている必要がある。
  • マニフェストには、Capsule をインストールするベースシステムのリポジトリーと、Capsule に接続するクライアントが含まれている必要がある。
  • リポジトリーは、同期されている必要がある。

マニフェストとリポジトリーに関する詳しい情報は、『Red Hat Satellite コンテンツ管理ガイド』の「サブスクリプションの管理」を参照してください。

プロキシーとネットワークの前提条件

  • Satellite Server のベースシステムは、Capsule のベースシステムのホスト名を解決できる必要があり、Capsule のベースシステムは Satellite Server のベースシステムのホスト名を解決できる必要がある。
  • Capsule Server のインストール先のベースシステムには、Red Hat コンテンツ配信ネットワーク (CDN) への接続にプロキシーを使用しないように設定しておく。
  • 要件に合わせてホストとネットワークベースのファイアウォールを設定する必要がある。詳細は「ポートとファイアウォールの要件」を参照してください。
  • Satellite Server のユーザー名とパスワードが必要。詳細は『Red Hat Satellite の管理』の「外部認証の設定」を参照してください。

手順

Satellite Server にシステムを登録するには、以下の手順を実行します。

  1. Capsule をインストールするベースシステムに、katello-ca-consumer-latest.noarch.rpm パッケージをダウンロードします。コンシューマー RPM で、ホストが Red Hat Satellite で指定したコンテンツソースからコンテンツをダウンロードするように設定します。

    # curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
  2. katello-ca-consumer-latest.noarch.rpm パッケージをインストールします。

    # yum localinstall katello-ca-consumer-latest.noarch.rpm
  3. Capsule の所属先の環境で、Capsule のベースシステムを登録します。アクティベーションキーを使用して、環境の指定を簡素化します。

    # subscription-manager register --org=organization_name --activationkey=example_activation_key

2.2. Satellite Infrastructure サブスクリプションのアタッチ

Capsule Server の登録後に、サブスクリプションプール ID を特定して、利用可能なサブスクリプションをアタッチする必要があります。Red Hat Satellite Infrastructure のサブスクリプションを使用すると、Red Hat Satellite、Red Hat Enterprise Linux および Red Hat Software Collections (RHSCL) コンテンツにアクセスできるようになります。必要なサブスクリプションはこれだけです。

Red Hat Satellite Infrastructure は、Smart Management を提供するサブスクリプションすべてに含まれます。詳細は、Red Hat ナレッジベースソリューション「Satellite Infrastructure Subscriptions MCT3718 MCT3719」を参照してください。

サブスクリプションがシステムにアタッチされていない場合には、利用可能として分類されます。利用可能な Satellite サブスクリプションを見つけることができない場合は、Red Hat ナレッジベースソリューション 「How do I figure out which subscriptions have been consumed by clients registered under Red Hat Subscription Manager?」 を参照して、スクリプトを実行し、サブスクリプションが別のシステムで使用されているかどうかを確認できます。

手順

Satellite Infrastructure サブスクリプションをアタッチするには、以下の手順を実行します。

  1. Satellite Infrastructure サブスクリプションのプール ID を特定します。

    # subscription-manager list --all --available --matches 'Red Hat Satellite Infrastructure Subscription'

    このコマンドを実行すると、以下のような出力が表示されます。

    Subscription Name:   Red Hat Satellite Infrastructure Subscription
    Provides:            Red Hat Satellite
                          Red Hat Software Collections (for RHEL Server)
                          Red Hat CodeReady Linux Builder for x86_64
                          Red Hat Ansible Engine
                          Red Hat Enterprise Linux Load Balancer (for RHEL Server)
                          Red Hat
                          Red Hat Software Collections (for RHEL Server)
                          Red Hat Enterprise Linux Server
                          Red Hat Satellite Capsule
                          Red Hat Enterprise Linux for x86_64
                          Red Hat Enterprise Linux High Availability for x86_64
                          Red Hat Satellite
                          Red Hat Satellite 5 Managed DB
                          Red Hat Satellite 6
                          Red Hat Discovery
    SKU:                 MCT3719
    Contract:            11878983
    Pool ID:             8a85f99968b92c3701694ee998cf03b8
    Provides Management: No
    Available:           1
    Suggested:           1
    Service Level:       Premium
    Service Type:        L1-L3
    Subscription Type:   Standard
    Ends:                03/04/2020
    System Type:         Physical
  2. サブスクリプションプール IDを書き留めます。上記の例と、実際のサブスクリプションプール ID は異なります。
  3. Capsule Server の実行先のベースシステムに、Satellite Infrastructure サブスクリプションをアタッチします。

    # subscription-manager attach --pool=pool_id

    このコマンドを実行すると、以下のような出力が表示されます。

    サブスクリプションを正常に割り当てます: Red Hat Satellite Infrastructure サブスクリプション
  4. オプション: Satellite Infrastructure サブスクリプションが割り当てられていることを確認します。

    # subscription-manager list --consumed

2.3. リポジトリーの設定

この手順を使用して、Capsule Server のインストールに必要なリポジトリーを有効にします。

手順

必要なリポジトリーを設定するには、以下の手順を実行します。

  1. すべてのリポジトリーを無効にします。

    # subscription-manager repos --disable "*"
  2. 次のリポジトリーを有効にします。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-capsule-6.6-rpms \
    --enable=rhel-7-server-satellite-maintenance-6-rpms \
    --enable=rhel-7-server-satellite-tools-6.6-rpms \
    --enable=rhel-server-rhscl-7-rpms \
    --enable=rhel-7-server-ansible-2.8-rpms
    注記

    Red Hat Virtualization (RHV) がホストする仮想マシンとして、Capsule Server をインストールする場合は、Red Hat Common リポジトリーを有効にして、RHV ゲストエージェントとドライバーもインストールする必要があります。詳細は『仮想マシン管理ガイド』の「ゲストエージェントおよびドライバーのインストール」を参照してください。

  3. yum メタデータを消去します。

    # yum clean all
  4. オプション: 必要なリポジトリーが有効になっていることを確認します。

    # yum repolist enabled

2.4. chronyd とシステムクロックの同期

時間のずれを最小限に抑えるには、Capsule Server をインストールするベースシステムのシステムクロックを Network Time Protocol (NTP) サーバーと同期する必要があります。ベースシステムのクロックが正しく設定されていない場合には、証明書の検証に失敗する可能性があります。

chrony スイートに関する詳細は、『Red Hat Enterprise Linux 7 システム管理者ガイド』の「chrony スイートを使用した NTP の設定」を参照してください。

手順

システムクロックを同期するには、以下の手順を実行します。

  1. chrony パッケージをインストールします。

    # yum install chrony
  2. chronyd サービスを起動して、有効にします。

    # systemctl start chronyd
    # systemctl enable chronyd

2.5. Capsule Server パッケージのインストール

Capsule Server パッケージをインストールする前に、ベースシステムにインストールした全パッケージを更新する必要があります。

手順

Capsule Server をインストールするには、以下の手順を実行します。

  1. すべてのパッケージを更新します。

    # yum update
  2. satellite-capsule パッケージをインストールします。

    # yum install satellite-capsule

2.6. SSL 証明書を使用した Capsule Server の設定

Red Hat Satellite は SSL 証明書を使用して、Satellite Server、外部 Capsule Server、全ホストの間の暗号化通信を有効にします。組織の要件によっては、デフォルトの証明書またはカスタムの証明書で Capsule Server を設定する必要があります。

2.6.1. デフォルトの SSL 証明書を使用した Capsule Server の設定

本セクションを使用して、Satellite Server のデフォルトの証明局 (CA) が署名した SSL 証明書を使用して Capsule Server を設定します。

前提条件

デフォルトのサーバー証明書で Capsule Server を設定する前に、Capsule Server が以下の条件を満たすように確認してください。

手順

デフォルトのサーバー証明書で Capsule Server を設定するには、以下の手順を実行します。

  1. Satellite Server で Capsule Server の全ソース証明書ファイルを保存するには、root ユーザーのみがアクセスできるディレクトリーを作成します (例: /root/capsule_cert)。

    # mkdir /root/capsule_cert
  2. Satellite Server で、Capsule Server の /root/capsule_cert/capsule_certs.tar 証明書アーカイブを生成します。

    # capsule-certs-generate \
    --foreman-proxy-fqdn capsule.example.com \
    --certs-tar /root/capsule_cert/capsule_certs.tar

    capsule-certs-generate コマンドが返す satellite-installer コマンドのコピーをメモし、Capsule Server に証明書をデプロイします。

    capsule-certs-generate の出力例

    Installing             Done                                               [100%]
      Success!
    
      To finish the installation, follow these steps:
    
      If you do not have the Capsule registered to the Satellite instance, then please do the following:
    
      1. yum -y localinstall http://satellite.example.com.com/pub/katello-ca-consumer-latest.noarch.rpm
      2. subscription-manager register --org "Default_Organization"
    
      Once this is completed run the steps below to start the Capsule installation:
    
      1. Ensure that the satellite-capsule package is installed on the system.
      2. Copy the following file /root/capsule_cert/capsule_certs.tar to the system capsule.example.com at the following location /root/capsule_certs.tar
      scp /root/capsule_cert/capsule_certs.tar root@capsule.example.com:/root/capsule_certs.tar
      3. Run the following commands on the Capsule (possibly with the customized
         parameters, see satellite-installer --scenario capsule --help and
         documentation for more info on setting up additional services):
    
    satellite-installer \
    --scenario capsule \
    --certs-tar-file                              "/root/capsule_certs.tar"\
    --foreman-proxy-content-parent-fqdn           "satellite.example.com"\
    --foreman-proxy-register-in-foreman           "true"\
    --foreman-proxy-foreman-base-url              "https://satellite.example.com"\
    --foreman-proxy-trusted-hosts                 "satellite.example.com"\
    --foreman-proxy-trusted-hosts                 "capsule.example.com"\
    --foreman-proxy-oauth-consumer-key            "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f"\
    --foreman-proxy-oauth-consumer-secret         "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY"\
    --puppet-server-foreman-url                   "https://satellite.example.com"

  3. Satellite Server から、証明書アーカイブファイルを Capsule Server にコピーします。

    # scp /root/capsule.example.com-certs.tar
    root@capsule.example.com:/root/capsule.example.com-certs.tar
  4. Capsule Server で、証明書をデプロイするには、capsule-certs-generate コマンドにより返された satellite-installer コマンドを入力します。

    Satellite へのネットワーク接続やポートをまだ開いていない場合は、--foreman-proxy-register-in-foreman オプションを false に設定すると、Capsule が Satellite へ接続を試行しなくなり、エラー報告がなくなります。ネットワークとファイアウォールを適切に設定したら、このオプションを true にして再度インストーラーを実行します。

    重要

    証明書をデプロイした後に、証明書アーカイブを削除しないでください。このアーカイブは、Capsule Server のアップグレード時などに必要になります。

2.6.2. カスタム SSL 証明書を使用した Capsule Server の設定

Satellite Server がカスタムの SSL 証明書を使用するように設定する場合は、この設定時に、外部の各 Capsule Server も、異なるカスタム SSL 証明書で設定する必要があります。

カスタム証明書を使用して Capsule Server を設定するには、Capsule Server ごとに以下の手順を実行します。

2.6.2.1. Capsule Server のカスタム SSL 証明書の作成

Satellite Server で、Capsule Server 用にカスタムの証明書を作成します。Capsule Server 用のカスタムの SSL 証明書がすでにある場合には、以下の手順は省略してください。

カスタム証明書を使用して Satellite を設定する場合には、次の点を考慮してください。

  • SSL 証明書には、Privacy-Enhanced Mail (PEM) エンコードを使用する必要がある。
  • Satellite Server と Capsule Server の両方に、同じ証明書を使用できない。
  • 同じ証明局を使用して Satellite と Capsule の証明書を署名する必要がある。

手順

カスタムの SSL 証明書を作成するには、以下の手順を実行します。

  1. ソースの証明書ファイルすべてを保存するには、root ユーザーだけがアクセスできるディレクトリーを作成します。

    # mkdir /root/capsule_cert
  2. Certificate Signing Request (CSR) を署名する秘密鍵を作成します。

    秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。

    この Capsule Server の秘密鍵がすでにある場合は、この手順を省略します。

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
  3. 証明書署名要求 (CSR) 用の /root/capsule_cert/openssl.cnf 設定ファイルを作成して、以下のコンテンツを追加します。

    [ req ]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    x509_extensions = usr_cert
    prompt = no
    
    [ req_distinguished_name ] 1
    C  = Country Name (2 letter code)
    ST = State or Province Name (full name)
    L  = Locality Name (eg, city)
    O  = Organization Name (eg, company)
    OU = The division of your organization handling the certificate
    CN = capsule.example.com 2
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    subjectAltName = @alt_names
    
    [ usr_cert ]
    basicConstraints=CA:FALSE
    nsCertType = client, server, email
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    nsComment = "OpenSSL Generated Certificate"
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    [ alt_names ]
    DNS.1 = capsule.example.com 3
    1
    [ req_distinguished_name ] セクションに、貴社の組織の情報を入力します。
    2
    証明書のコモンネーム CN を、Capsule Server の完全修飾ドメイン名 (FQDN) と一致するように設定します。FQDN を確認するには、対象の Capsule Server で hostname -f コマンドを入力します。これは、katello-certs-check コマンドが証明書を正しく検証することを確認するために必要です。
    3
    サブジェクトの別名 (SAN: Subject Alternative Name) DNS.1 を、お使いのサーバーの完全修飾ドメイン名 (FQDN) に一致する用に設定します。
  4. 証明書署名要求 (CSR) を作成します。

    # openssl req -new \
    -key /root/capsule_cert/capsule_cert_key.pem \ 1
    -config /root/capsule_cert/openssl.cnf \ 2
    -out /root/capsule_cert/capsule_cert_csr.pem 3
    1
    秘密鍵へのパス
    2
    設定ファイルへのパス
    3
    生成する CSRへのパス
  5. 証明局に証明書署名要求を送信します。同じ証明局が Satellite Server と Capsule Server の証明書に署名する必要があります。

    要求を送信する場合は、証明書の有効期限を指定してください。証明書要求を送信する方法は異なるため、推奨の方法について認証局にお問い合わせください。要求への応答で、認証局バンドルと署名済み証明書を別々のファイルで受け取ることになります。

2.6.2.2. カスタムの SSL 証明書の Capsule Server へのデプロイ

この手順を使用して、証明局が署名したカスタムの SSL 証明書で、Capsule Server を設定します。capsule-certs-generate コマンドにより返される、satellite-installer コマンドは、Capsule Server ごとに一意となっています。複数の Capsule Server に同じコマンドを使用しないでください。

前提条件

カスタムのサーバー証明書で Capsule Server を設定する前に、Satellite Server と Capsule Server が以下の条件を満たすように確認してください。

手順

カスタムの SSL 証明書で Capsule Server を設定するには、以下の手順を実行します。

  1. Satellite Server で、カスタムの SSL 証明書の入力ファイルを検証します。

    # katello-certs-check \
    -c /root/capsule_cert/capsule_cert.pem \      1
    -k /root/capsule_cert/capsule_cert_key.pem \  2
    -b /root/capsule_cert/ca_cert_bundle.pem      3
    1
    認証局が署名した Capsule Server の証明書ファイルへのパス
    2
    Capsule Server 証明書の署名に使用した秘密鍵へのパス
    3
    認証局バンドルへのパス

    このコマンドに成功すると、capsule-certs-generate コマンド 2 つが返されます。このうちのいずれか 1 つを、Capsule Server の証明書アーカイブの生成に使用する必要があります。

    katello-certs-check の出力例

    Validation succeeded.
    
    To use them inside a NEW $CAPSULE, run this command:
    
    capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \
        --certs-tar  "~/$CAPSULE-certs.tar" \
        --server-cert "/root/capsule_cert/capsule_cert.pem" \
        --server-key "/root/capsule_cert/capsule_cert_key.pem" \
        --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \
    
    To use them inside an EXISTING $CAPSULE, run this command INSTEAD:
    
      capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \
        --certs-tar  "~/$CAPSULE-certs.tar" \
        --server-cert "/root/capsule_cert/capsule_cert.pem" \
        --server-key "/root/capsule_cert/capsule_cert_key.pem" \
        --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \
        --certs-update-server

  2. Satellite Server で、katello-certs-check コマンドの出力をもとに、要件に合わせて、capsule-certs-generate コマンドを入力し、新規または既存の Capsule の証明書を生成します。このコマンドでは、$CAPSULE は、お使いの Capsule Server の FQDN に置き換えます。
  3. capsule-certs-generate コマンドが返す satellite-installer コマンドのコピーをメモし、Capsule Server に証明書をデプロイします。

    capsule-certs-generate の出力例

    Installing             Done                                               [100%]
      Success!
    
      To finish the installation, follow these steps:
    
      If you do not have the Capsule registered to the Satellite instance, then please do the following:
    
      1. yum -y localinstall http://satellite.example.com.com/pub/katello-ca-consumer-latest.noarch.rpm
      2. subscription-manager register --org "Default_Organization"
    
      Once this is completed run the steps below to start the Capsule installation:
    
      1. Ensure that the satellite-capsule package is installed on the system.
      2. Copy the following file /root/capsule_cert/capsule_certs.tar to the system capsule.example.com at the following location /root/capsule_certs.tar
      scp /root/capsule_cert/capsule_certs.tar root@capsule.example.com:/root/capsule_certs.tar
      3. Run the following commands on the Capsule (possibly with the customized
         parameters, see satellite-installer --scenario capsule --help and
         documentation for more info on setting up additional services):
    
    satellite-installer \
    --scenario capsule \
    --certs-tar-file                              "/root/capsule_certs.tar"\
    --foreman-proxy-content-parent-fqdn           "satellite.example.com"\
    --foreman-proxy-register-in-foreman           "true"\
    --foreman-proxy-foreman-base-url              "https://satellite.example.com"\
    --foreman-proxy-trusted-hosts                 "satellite.example.com"\
    --foreman-proxy-trusted-hosts                 "capsule.example.com"\
    --foreman-proxy-oauth-consumer-key            "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f"\
    --foreman-proxy-oauth-consumer-secret         "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY"\
    --puppet-server-foreman-url                   "https://satellite.example.com"

  4. Satellite Server から、証明書アーカイブファイルを Capsule Server にコピーします。

    # scp /root/capsule.example.com-certs.tar \
    root@capsule.example.com:/root/capsule.example.com-certs.tar
  5. Capsule Server で、証明書をデプロイするには、capsule-certs-generate コマンドにより返された satellite-installer コマンドを入力します。

    Satellite へのネットワーク接続やポートをまだ開いていない場合は、--foreman-proxy-register-in-foreman オプションを false に設定すると、Capsule が Satellite へ接続を試行しなくなり、エラー報告がなくなります。ネットワークとファイアウォールを適切に設定したら、このオプションを true にして再度インストーラーを実行します。

    重要

    証明書をデプロイした後に、証明書アーカイブを削除しないでください。このアーカイブは、Capsule Server のアップグレード時などに必要になります。

2.6.2.3. ホストへの カスタム SSL 証明書のデプロイ

Capsule Server がカスタムの SSL 証明書を使用するよう設定した後に、Capsule Server に登録されている全ホストに katello-ca-consumer パッケージもインストールする必要があります。

BZ#1683835 が解決されるまで、katello-ca-consumer パッケージはアップグレードできません。以前のパッケージを削除して、新しいパッケージをインストールする必要があります。katello-ca-consumer パッケージをアップグレードすると、subscription.rhsm.redhat.combaseurl 設定が元に戻るため、アップグレードに失敗します。

手順

各ホストで、以下の手順を実行し、katello-ca-consumer パッケージをインストールします。

  1. ホストで現行の katello-ca-consumer パッケージを削除します。

    # yum remove 'katello-ca-consumer*'
  2. ホストに katello-ca-consumer パッケージをインストールします。

    # yum localinstall \
    http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm