第3章 Capsule Server での追加設定の実行

3.1. Katello エージェントのインストール

クライアントのリモートアップデートを許可するために、katello エージェントをインストールすることが推奨されます。Capsule Server のベースシステムは Satellite Server のクライアントであるため、katello エージェントがインストールされている必要があります。

作業を開始する前に

  • Satellite Server で Satellite Tools リポジトリーが有効にされている必要があります。
  • Satellite Server で Satellite Tools リポジトリーが同期されている必要があります。

katello-agent のインストール手順:

  1. システムにログインします。
  2. 現行バージョンの Satellite の Satellite Tools リポジトリーを有効にします。

    # subscription-manager repos \
    --enable=rhel-7-server-satellite-tools-6.4-rpms
  3. パッケージをインストールします。

    # yum install katello-agent

3.2. Capsule Server でリモート実行の有効化

Capsule Server のホストでコマンドを実行する場合は、リモート実行が有効である必要があります。

注記

デフォルトでは、外部の Capsule はリモート実行機能が無効になっています。Capsule Server でリモート実行を使用するには、以下のコマンドを実行して、これを有効にする必要があります。

# satellite-installer --scenario capsule \
--enable-foreman-proxy-plugin-remote-execution-ssh

3.3. Capsule Server へのライフサイクル環境の追加

Capsule Server でコンテンツ機能が有効な場合は、1 つ以上のライフサイクル環境を追加する必要があります。環境を追加すると、Capsule Server で Satellite Server のコンテンツを同期し、コンテンツをホストシステムに提供できます。

Red Hat では、1 つ以上のライフサイクル環境を作成して、Capsule Server に割り当てることを推奨しています。こうすることで、Capsule は各ライフサイクル環境にプロモートされたコンテンツビューに含まれているリポジトリーのみから受け取ることになり、システムリソースの使用が最適化されます。

注記

ライブラリーライフサイクル環境を Capsule Server に割り当てると、リポジトリーが CDN から更新されるたびに自動で Capsule が同期されるようになるので、これは避けてください。自動同期では、Capsule 上の複数のシステムリソースや Satellite と Capsule 間のネットワーク帯域幅、および Capsule 上の利用可能なディスク領域が消費されます。

Capsule Server は、Satellite Server 上で Hammer CLI を使用するか、Web UI で設定できます。

Hammer CLI を使用した Capsule Server へのライフサイクル環境の追加

  1. root として Satellite Server CLI にログインします。
  2. すべての Capsule Server のリストを表示し、ID をメモします。

    # hammer capsule list
  3. その ID を使用して、Capsule Server の詳細を確認します。

    # hammer capsule info --id capsule_id_number
  4. 利用可能なライフサイクル環境を確認し、環境 ID を書き留めます。

    # hammer capsule content available-lifecycle-environments \
    --id capsule_id_number

    利用可能なライフサイクル環境は Capsule Server で利用可能ですが、この段階ではアタッチされていません。

  5. ライフサイクル環境を Capsule Server に追加します。

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id_number --environment-id environment_id_number
  6. Capsule Server に追加する各ライフサイクル環境に対して手順を繰り返します。
  7. Satellite Server 環境のすべてのコンテンツを Capsule Server と同期するには、以下のコマンドを実行します。

    # hammer capsule content synchronize --id capsule_id_number
  8. Satellite Server 環境の特定のライフサイクル環境を Capsule Server と同期するには、以下のコマンドを実行します。

    # hammer capsule content synchronize --id external_capsule_id_number \
    --environment-id environment_id_number

ライフサイクル環境での作業に関する詳細は、『Red Hat Satellite コンテンツ管理ガイド』「アプリケーションライフサイクルの作成」を参照してください。

Web UI を使用した Capsule Server へのライフサイクル環境の追加

  1. Satellite Web UI で、インフラストラクチャー > カプセル に移動し、カプセルを選択します。
  2. 編集 をクリックします。
  3. ライフサイクル環境タブで Env を選択します。
  4. カプセルのコンテンツを同期するには、概要タブの 同期 ボタンをクリックします。
  5. 2 つのオプションから 1 つ選択します。

    • 最適同期
    • 完全同期

3.4. 管理対象ホスト上での電源管理の有効化

Capsule Server でベースボード管理コントローラー (BMC) を有効にすると、IPMI (Intelligent Platform Management Interface) または類似したプロトコルを使用して管理対象ホストで電源管理コマンドを使用できます。

Satellite Capsule サーバー上の BMC サービスを使用すると、さまざまな電源管理タスクを実行できます。この機能の基礎となるプロトコルは IPMI です (BMC 機能とも呼ばれます)。IPMI は、ホストの CPU から独立して実行する専用プロセッサーに接続された管理対象ハードウェア上で、特別なネットワークインターフェースを使用します。多くのインスタンスでは、BMC 機能はシャーシ管理の一部としてシャーシベースのシステムに組み込まれます (シャーシの専用モジュール)。

BMC サービスの詳細は『ホストの管理』「追加のネットワークインターフェースの設定」を参照してください。

作業を開始する前に

  • すべての管理対象ホストに BMC タイプのネットワークインターフェースが搭載されている必要があります。Satellite はこの NIC を使用して適切な認証情報をホストに渡します。

管理対象ホスト上での電源管理の有効化

  1. オプションを使用してインストーラーを実行し、BMC を有効にします。

    # satellite-installer --scenario capsule \
    --foreman-proxy-bmc "true" \
    --foreman-proxy-bmc-default-provider "freeipmi"

3.5. Capsule Server で DNS、DHCP、および TFTP の設定

Capsule Server で DNS、DHCP、および TFTP を設定できます。

Capsule Server が外部 DNS および DHCP サービスを使用するよう設定することもできます。詳細については、「外部サービスの設定」を参照してください。

設定可能な全オプションを表示するには、satellite-installer --scenario capsule --help コマンドを実行します。

作業を開始する前に

  • DNS サーバーの適切なネットワーク名 (dns-interface) が用意されている必要があります。
  • DHCP サーバーの適切なインターフェース名 (dhcp-interface) が用意されている必要があります。

Capsule Server での DNS、DHCP、および TFTP の設定

  1. ご使用の環境に該当するオプションを使用して Capsule インストーラーを実行します。

    以下の例は、完全なプロビジョニングサービスを示してます。

    # satellite-installer --scenario capsule \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-managed true \
    --foreman-proxy-dns-interface eth0 \
    --foreman-proxy-dns-zone example.com \
    --foreman-proxy-dns-forwarders 172.17.13.1 \
    --foreman-proxy-dns-reverse 13.17.172.in-addr.arpa \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-interface eth0 \
    --foreman-proxy-dhcp-range "172.17.13.100 172.17.13.150" \
    --foreman-proxy-dhcp-gateway 172.17.13.1 \
    --foreman-proxy-dhcp-nameservers 172.17.13.2 \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true \
    --foreman-proxy-tftp-servername $(hostname)

DHCP、DNS および TFTP サービスの情報は、『プロビジョニングガイド』「ネットワークサービスの設定」セクションを参照してください。

3.6. カスタムサーバー証明書を使用した Capsule Server の設定

Red Hat Satellite 6 には、Satellite Server、Capsule Server、およびすべてのホスト間で暗号化された通信を可能にするデフォルトの SSL 証明書が含まれます。必要な場合は、デフォルト証明書をカスタム証明書に置き換えることができます。たとえば、会社のセキュリティーポリシーで、SSL 証明書を特定の認証局から取得することが規定されていることがあります。

前提条件

各 Capsule サーバー上のカスタム証明書を使用するには、以下の手順を実行します。

3.6.1. Capsule Server 向けの SSL 証明書の取得

重要

この手順では、PEM エンコードの証明書が生成されます。SSL 証明書には、PEM エンコードのみを使用してください。

注記
  • 各サーバーの証明書は一意であるため、Satellite Server の証明書は Capsule Server で使用しないでください
  1. root ユーザーのみがアクセスできる、すべてのソース証明書ファイルを含むディレクトリーを作成します。

    # mkdir /root/capsule_cert
    # cd /root/capsule_cert

    これらの例では、ディレクトリーに /root/capsule_cert が使用されています。Capsule Server が複数ある場合は、ディレクトリーが一致するように名前を指定します。たとえば、capsule_apaccapsule_emea という名前の Capsule Server がある場合は、それぞれ capsule_apaccapsule_emea という名前のディレクトリーを作成できます。これは必須ではありませんが、特定の Capsule Server のファイルを別の Capsule Server で使用するリスクが軽減されます。

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

    注記

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

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
  3. Certificate Signing Request (CSR) を作成します。

    Certificate Signing Request は、証明書を要求しているサーバーの詳細を含むテキストファイルです。このコマンドを使用する場合は、(前の手順で出力された) 秘密鍵を提供し、Capsule Server に関するいくつかの質問に答えます。その結果、Certificate Signing Request がファイルに保管されます。

    注記

    証明書の Common Name (CN) は、証明書が使用されるサーバーの完全修飾ドメイン名 (FQDN) に一致する必要があります。

    サーバーの FQDN を確認するために、サーバーでコマンド hostname -f を実行します。

    # openssl req -new \
      -key /root/capsule_cert/capsule_cert_key.pem \ 1
      -out /root/capsule_cert/capsule_cert_csr.pem   2
    1
    証明書を署名するために使用される Capsule サーバーの秘密鍵
    2
    Certificate Signing Request ファイル

    Certificate Signing Request セッションの例

    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    
    Country Name (2 letter code) [XX]:AU
    State or Province Name (full name) []:Queensland
    Locality Name (eg, city) [Default City]:Brisbane
    Organization Name (eg, company) [Default Company Ltd]:Example
    Organizational Unit Name (eg, section) []:Sales
    Common Name (eg, your name or your server's hostname) []:capsule.example.com
    Email Address []:example@example.com
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:password
    An optional company name []:Example

  4. 証明書署名要求を認証局に送信します。

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

3.6.2. Capsule Server の SSL 証明書の検証

Satellite Server で、katello-certs-check コマンドを使用して Capsule Server の証明書入力ファイルを検証します。このプロセスでは、Capsule Server の鍵、CSR、および SSL 証明書が Capsule Server から Satellite Server にコピーされている必要があります。

# 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 サーバー証明書ファイル
2
証明書を署名するために使用される Capsule サーバーの秘密鍵
3
認証局により提供された認証局バンドル

証明書が正常に検証された場合、出力には以下の情報が含まれます。

Check private key matches the certificate: [OK]
Check ca bundle verifies the cert file: [OK]

katello-certs-check コマンドの出力である capsule-certs-generate コマンドをメモして、以下の手順で使用します。

「Capsule サーバーの証明書アーカイブファイルの作成」 に進みます。

3.6.3. Capsule サーバーの証明書アーカイブファイルの作成

Capsule サーバーのインストーラーでは、サーバーの証明書がアーカイブファイルで必要になります。このファイルを作成するには、Satellite Server で capsule-certs-generate コマンドを使用します。

capsule-certs-generate コマンドは、各外部 Capsule Server に対して 1 回だけ実行する必要があります。これらの例では、capsule.example.com が FQDN の例であり、capsule_certs.tar がアーカイブファイル名の例です。これらを、ご使用の環境に適切な値に置き換えます。既存の証明書アーカイブファイルを上書きしないように注意してください。たとえば、capsule1capsule2 という名前の Capsule Server がある場合は、証明書アーカイブファイルの名前として capsule1_certs.tarcapsule2_certs.tar を指定できます。

Satellite Server で実行すると、パラメーターなど capsule-certs-generate コマンドが katello-certs-check で出力されます。詳しい情報は、『オンラインネットワークからの Satellite Server のインストール』「カスタムサーバー証明書での Satellite Server の設定」を参照してください。

  1. エディターで capsule-certs-generate コマンドのコピーを準備します。
  2. Capsule Server の FQDN に一致するよう --foreman-proxy-fqdn の値を編集し、証明書アーカイブファイルのファイルパスおよび名前に一致するよう --certs-tar の値を編集します。
  3. Capsule Server をインストールしていない場合は、--certs-update-server パラメーターを削除します。これは、既存の Capsule Server の証明書を更新するためにのみ使用されます。
  4. 編集した capsule-certs-generate コマンドをテキストエディターから端末にコピーします。
  5. 編集した capsule-certs-generate コマンドを実行します。

    capsule-certs-generate コマンドの例

    # capsule-certs-generate --foreman-proxy-fqdn capsule.example.com \
    --certs-tar  /root/capsule_cert/capsule_certs.tar \
    --server-cert /root/capsule_cert/capsule_cert.pem \
    --server-cert-req /root/capsule_cert/capsule_cert_csr.pem \
    --server-key /root/capsule_cert/capsule_cert_key.pem \
    --server-ca-cert /root/sat_cert/ca_cert_bundle.pem \
    --certs-update-server

  6. Satellite サーバーで、証明書アーカイブファイルを Capsule サーバーにコピーします。要求された場合は root ユーザーのパスワードを提供します。

    この例では、アーカイブファイルを root ユーザーのホームディレクトリーにコピーしていますが、別の場所にコピーすることもできます。

    # scp /root/capsule_cert/capsule_certs.tar root@capsule.example.com:

capsule-certs-generate コマンドの出力である satellite-installer コマンドをメモして、以下の手順で使用します。

「Capsule Server のカスタム証明書のインストール」 に進みます。

3.6.4. Capsule Server のカスタム証明書のインストール

警告

この手順は、Capsule サーバーで完了してください。

Capsule サーバーのカスタム証明書をインストールするには、satellite-installer スクリプトをカスタムパラメーターで実行します。コマンドとパラメーターは、「Capsule サーバーの証明書アーカイブファイルの作成」capsule-certs-generate コマンドで得た出力を使用します。

  1. エディターで satellite-installer コマンドのコピーを準備をします。
  2. --foreman-proxy-content-certs-tar の値を、証明書アーカイブファイルの場所に変更します。
  3. Capsule サーバーで追加機能を有効にする場合は、それらのパラメーターを satellite-installer コマンドに追加します。インストーラーの全パラメーターを確認するには、satellite-installer --scenario capsule --help コマンドを実行してください。
  4. 編集した satellite-installer コマンドをテキストエディターから端末にコピーします。
  5. 編集した satellite-installer コマンドを実行します。

    カスタム satellite-installer コマンドの例

    # satellite-installer --scenario capsule \
    --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 "FeQsbASvCjvvaqE6duKH6SoYZWg4jwjg" \
    --foreman-proxy-oauth-consumer-secret "7UhPXFPDBongvdTbNixbsWR5WFZsKEgF" \
    --foreman-proxy-content-pulp-oauth-secret "VpQ9587tVmYeuY4Du6VitmZpZE5vy9ac" \
    --foreman-proxy-content-certs-tar "/root/capsule_certs.tar"

注記

satellite-installer コマンドの値は、capsule-certs-generate コマンドの出力からも分かるように、各 Capsule Server に対して一意です。したがって、複数の Capsule Server で同じコマンドを使用しないでください

証明書が関連するすべてのホストにデプロイされた後であっても、証明書アーカイブファイル (.tar ファイル) は削除しないでください。このファイルは、たとえば、Capsule サーバーをアップグレードする際に必要になります。証明書アーカイブファイルがインストーラーによって検出されない場合は、以下のようなメッセージが出て失敗します。

[ERROR YYYY-MM-DD hh:mm:ss main]  tar -xzf /var/tmp/srvcapsule01.tar returned 2 instead of one of [0]

「すべてのホストへの Capsule Server の新しい証明書のインストール」 に進みます。

3.6.5. すべてのホストへの Capsule Server の新しい証明書のインストール

外部の Capsule サーバーに接続するホストにはサーバーのカスタム証明書が必要です。すべての Capsule サーバーのホストで以下のコマンドを実行します。

注記

Satellite Server のホスト名ではなく、Capsule サーバーのホスト名を使用します。

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

3.7. mongod へのアクセスの制限

データ損失の危険を減らすために、MongoDB データベースデーモン mongod へのアクセスは apache ユーザーと root ユーザーにだけ許可する必要があります。

Satellite Server と Capsule Server で mongod へのアクセスを制限するには、以下のコマンドを使用します。

  1. ファイヤーウォールを設定します。

    # firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 27017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 27017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 28017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 28017 -j DROP
  2. 変更を永続化します。

    # firewall-cmd --runtime-to-permanent