ロードバランサーを使用した Capsule の設定


Red Hat Satellite 6.16

Capsules 間での負荷分散

Red Hat Satellite Documentation Team

概要

このガイドでは、ロードバランサーを使用して Capsule Server 間で負荷を分散するように Red Hat Satellite を設定する方法を説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。

フィードバックを提供するには、Red Hat Jira の Create Issue フォームを使用します。Jira の課題が Red Hat Satellite Jira プロジェクトに作成され、その進捗状況を追跡できます。

前提条件

手順

  1. Create Issue にアクセスします。Jira でログインエラーが表示された場合は、フォームにリダイレクトされた後、ログインして続行します。
  2. Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
  3. Create をクリックします。

第1章 Satellite における負荷分散の概要

ロードバランサーを使用してホスト要求とネットワーク負荷を複数の Capsule Server に分散するように Satellite 環境を設定できます。これにより、Capsule Server のパフォーマンスが向上し、Satellite へのホスト接続のパフォーマンスと安定性が向上します。負荷分散の設定では、計画的または計画外のメンテナンスで、Capsule Server が 1 台停止した場合でも、負荷分散用にサポートされている Capsule 機能は期待どおりに動作し続けます。

1.1. 負荷分散設定のコンポーネント

Satellite 環境における負荷分散設定は、次のコンポーネントで構成されます。

  • Satellite Server
  • Capsule Server 2 台以上
  • ロードバランサー 1 つ
  • 複数のホスト

ホストは TCP ロードバランサーにリクエストを送信します。ロードバランサーはリクエストを受信し、どの Capsule Server がリクエストを処理するかを判断して、最適なパフォーマンスと可用性を確保します。

図1.1 負荷分散設定のコンポーネント

1.2. 負荷分散設定でサポートされるサービスと機能

Satellite のロードバランサーは、次のサービスと機能に対してのみ負荷を分散します。

  • ホストの登録
  • ホストへのコンテンツの提供
  • Puppet を使用したホストの設定

プロビジョニング、virt-who、リモート実行などの他の Satellite サービスは、これらのサービスが実行されている個々の Capsule を直接経由します。

1.3. ロードバランシングに必要な追加メンテナンス

ロードバランサーを使用するように Capsule を設定すると、環境が複雑になり、新たなメンテナンスが必要になります。

ロードバランシングには、次の追加手順が必要です。

  • すべての Capsule の内容が同じであることを確認する必要があります。コンテンツビューのバージョンを Satellite に公開する場合は、それをすべての Capsule Server に同期します。
  • 各 Capsule を順にアップグレードする必要があります。

第2章 負荷分散のための Capsule Server の準備

Satellite には、既存の Capsule Server をロードバランシング用に設定するサポートはありません。この目的で、新規の Capsule Server を作成する必要があります。

2.1. Satellite Server への登録

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

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

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

マニフェストおよびリポジトリーに関する詳細は コンテンツ管理Red Hat サブスクリプションの管理 を参照してください。

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

  • Satellite Server のベースシステムは、Capsule のベースオペレーティングシステムのホスト名を解決できる必要があり、Capsule のベースシステムは Satellite Server のベースオペレーティングシステムのホスト名を解決できる必要がある。
  • Capsule Server と Satellite Server の間でクライアント証明書認証を使用した HTTPS 接続が可能であることを確認します。Capsule Server と Satellite Server 間の HTTP プロキシーはサポートされていません。
  • 要件に合わせてホストとネットワークベースのファイアウォールを設定する必要がある。詳細は、Capsule Server のインストールポートとファイアウォールの要件 を参照してください。Satellite Web UI、Hammer CLI、または Satellite API のホスト登録機能を使用して、Satellite にホストを登録できます。詳細は、ホストの管理ホストの登録とホスト統合の設定 を参照してください。

前提条件

手順

  1. Satellite Web UI で、Hosts > Register Host に移動します。
  2. Capsule ドロップダウンリストから、負荷分散用に設定された Capsule Server を選択します。
  3. 以前に Capsule Server に登録されていたホストを登録するには、Force を選択します。
  4. Activation Keys リストから、ホストに割り当てるアクティベーションキーを選択します。
  5. Generate をクリックして登録コマンドを作成します。
  6. ファイル アイコンをクリックして、コマンドをクリップボードにコピーします。
  7. SSH を使用してホストに接続し、登録コマンドを実行します。
  8. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

CLI 手順

  1. Hammer CLI を使用してホスト登録コマンドを生成します。

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key"
    Copy to Clipboard Toggle word wrap

    ホストが Satellite Server の SSL 証明書を信頼しない場合は、登録コマンドに --insecure フラグを追加して SSL 検証を無効にすることができます。

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key" \
    --insecure true
    Copy to Clipboard Toggle word wrap

    --smart-proxy-id My_Capsule_ID オプションを含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。

    以前に Capsule Server に登録されていたホストを登録するには、--force オプションを追加します。

  2. SSH を使用してホストに接続し、登録コマンドを実行します。
  3. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

API の手順

  1. Satellite API を使用してホスト登録コマンドを生成します。

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"] }}'
    Copy to Clipboard Toggle word wrap

    ホストが Satellite Server の SSL 証明書を信頼しない場合は、登録コマンドに --insecure フラグを追加して SSL 検証を無効にすることができます。

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"], "insecure": true }}'
    Copy to Clipboard Toggle word wrap

    アクティベーションキーを使用すると、その環境を簡単に指定できます。詳細は、コンテンツの管理アクティベーションキーの管理 を参照してください。

    { "smart_proxy_id": My_Capsule_ID } を含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。

    以前に Capsule Server に登録されていたホストを登録するには、{ "force": true } を追加します。

    コマンドライン引数としてパスワードを入力するには、username:password 構文を使用します。これにより、パスワードがシェル履歴に保存される可能性があることに注意してください。または、パスワードの代わりに一時的なパーソナルアクセストークンを使用することもできます。Satellite Web UI でトークンを生成するには、My Account > Personal Access Tokens に移動します。

  2. SSH を使用してホストに接続し、登録コマンドを実行します。
  3. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

2.2. リポジトリーの設定

前提条件

手順

インストールするオペレーティングシステムとバージョンを選択します。

2.2.1. Red Hat Enterprise Linux 9

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

    # subscription-manager repos --disable "*"
    Copy to Clipboard Toggle word wrap
  2. 以下のリポジトリーを有効にします。

    # subscription-manager repos \
    --enable=rhel-9-for-x86_64-baseos-rpms \
    --enable=rhel-9-for-x86_64-appstream-rpms \
    --enable=satellite-capsule-6.16-for-rhel-9-x86_64-rpms \
    --enable=satellite-maintenance-6.16-for-rhel-9-x86_64-rpms
    Copy to Clipboard Toggle word wrap

検証

  • 必要なリポジトリーが有効になっていることを確認します。

    # dnf repolist enabled
    Copy to Clipboard Toggle word wrap

2.2.2. Red Hat Enterprise Linux 8

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

    # subscription-manager repos --disable "*"
    Copy to Clipboard Toggle word wrap
  2. 以下のリポジトリーを有効にします。

    # subscription-manager repos \
    --enable=rhel-8-for-x86_64-baseos-rpms \
    --enable=rhel-8-for-x86_64-appstream-rpms \
    --enable=satellite-capsule-6.16-for-rhel-8-x86_64-rpms \
    --enable=satellite-maintenance-6.16-for-rhel-8-x86_64-rpms
    Copy to Clipboard Toggle word wrap
  3. モジュールを有効にします。

    # dnf module enable satellite-capsule:el8
    Copy to Clipboard Toggle word wrap

検証

  • 必要なリポジトリーが有効になっていることを確認します。

    # dnf repolist enabled
    Copy to Clipboard Toggle word wrap

関連情報

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

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

手順

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

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

    # dnf upgrade
    Copy to Clipboard Toggle word wrap
  2. Capsule Server パッケージをインストールします。

    # dnf install satellite-capsule
    Copy to Clipboard Toggle word wrap

2.4. 関連情報

第3章 ロードバランシングのためにデフォルトの SSL 証明書を使用した Capsule Server の設定

ロードバランシングにデフォルトの SSL 証明書を使用する 1 つ以上の Capsule Server を設定できます。

Satellite デプロイメントで Puppet を使用する場合、設定手順は異なります。5章デフォルト SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用する)を参照してください。

3.1. 前提条件

ロードバランシング用に設定する各 Capsule Server に、Katello 証明書をインストールします。

手順

  1. Satellite Server で、Capsule Server の Katello 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar "/root/capsule.example.com-certs.tar" \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule.example.com
    Copy to Clipboard Toggle word wrap

    capsule-certs-generate コマンドの出力である satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

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

    # scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  3. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --certs-cname "loadbalancer.example.com" \
    --enable-foreman-proxy-plugin-remote-execution-script
    Copy to Clipboard Toggle word wrap
  4. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "capsule.example.com-certs.tar" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com"
    Copy to Clipboard Toggle word wrap

第4章 ロードバランシングのためにカスタム SSL 証明書を使用した残りの Capsule Server の設定

ロードバランシングのためにカスタム SSL 証明書を使用する 1 つ以上の Capsule Server を設定できます。そのためには、ロードバランシングに使用する各 Capsule Server に証明書を設定し、インストールします。

Satellite デプロイメントで Puppet を使用する場合、設定手順は異なります。6章カスタム SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用する)を参照してください。

4.1. 前提条件

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

ロードバランシングを設定する各 Capsule Server で、証明書署名要求の設定ファイルを作成し、ロードバランサーと Capsule Server をサブジェクト別名 (SAN) として含めます。

手順

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

    # mkdir /root/capsule_cert
    Copy to Clipboard Toggle word wrap
  2. 証明書署名要求 (CSR) に署名する秘密鍵を作成します。

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

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

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
    Copy to Clipboard Toggle word wrap
  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 ]
    commonName = capsule.example.com 
    1
    
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth
    subjectAltName = @alt_names
    
    [alt_names] 
    2
    
    DNS.1 = loadbalancer.example.com
    DNS.2 = capsule.example.com
    Copy to Clipboard Toggle word wrap
    1
    証明書の共通名は、Capsule Server の FQDN と一致する必要があります。ロードバランシング用に設定する各 Capsule Server でコマンドを実行するたびに、必ず変更します。ワイルドカードの値 * を設定することもできます。ワイルドカードの値を設定しており、katello-certs-check コマンドを使用する場合には、-t capsule オプションを追加する必要があります。
    2
    [alt_names] で、ロードバランサーの FQDN は DNS.1、Capsule Server の FQDN は DNS.2 として追加します。

    [ v3_req ] パラメーターとその目的の詳細は、RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile を参照してください。

  4. オプション: CSR に識別名 (DN) の詳細を追加する場合は、[ req_distinguished_name ] セクションに次の情報を追加します。

    [req_distinguished_name]
    CN = capsule.example.com
    countryName = My_Country_Name 
    1
    
    stateOrProvinceName = My_State_Or_Province_Name 
    2
    
    localityName = My_Locality_Name 
    3
    
    organizationName = My_Organization_Or_Company_Name
    organizationalUnitName = My_Organizational_Unit_Name 
    4
    Copy to Clipboard Toggle word wrap
    1
    2 文字コード
    2
    Full name
    3
    フルネーム (例: ニューヨーク)
    4
    証明書を担当する部門 (例:IT 部門)
  5. 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
    Copy to Clipboard Toggle word wrap
    1
    秘密鍵へのパス
    2
    設定ファイルへのパス
    3
    生成する CSR へのパス
  6. 認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。

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

  7. 認証局バンドル、認証局から受け取る Capsule Server の証明書ファイル、Capsule Server の秘密鍵を、Satellite Server にコピーします。
  8. Satellite Server で、Capsule 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
    Copy to Clipboard Toggle word wrap
    1
    認証局により提供された Capsule Server 証明書ファイル
    2
    証明書の署名に使用した Capsule Server の秘密鍵
    3
    認証局により提供された認証局バンドル

    commonName= をワイルドカードの値 * に設定する場合には、-t capsule オプションを katello-certs-check コマンドに追加する必要があります。

    katello-certs-check コマンドの出力である capsule-certs-generate コマンドの例をメモして、この Capsule Server の認証アーカイブファイルを作成します。

ロードバランシング用に設定する各 Capsule Server に、Katello 証明書をインストールします。

手順

  1. katello-certs-check コマンドの出力から取得する capsule-certs-generate コマンドに次のオプションを追加します。

    --foreman-proxy-cname loadbalancer.example.com
    Copy to Clipboard Toggle word wrap
  2. Satellite Server で、capsule-certs-generate コマンドを入力して Capsule 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar /root/capsule_cert/capsule.tar \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule.example.com \
    --server-ca-cert /root/capsule_cert/ca_cert_bundle.pem \
    --server-cert /root/capsule_cert/capsule.pem \
    --server-key /root/capsule_cert/capsule.pem
    Copy to Clipboard Toggle word wrap

    出力からの satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

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

    # scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  4. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --certs-cname "loadbalancer.example.com" \
    --enable-foreman-proxy-plugin-remote-execution-script
    Copy to Clipboard Toggle word wrap
  5. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "capsule.example.com-certs.tar" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com"
    Copy to Clipboard Toggle word wrap

Satellite 設定で Puppet を使用する場合は、負荷分散にデフォルトの SSL 証明書を使用する 1 つ以上の Capsule Server を設定できます。

そのためには、Capsule Server のいずれかに Puppet 証明書署名を設定します。次に、証明書を使用するように負荷分散に使用する残りの各 Puppet Capsule を設定します。最初の Capsule Server は、ロードバランシング用に設定された残りの Capsule の Puppet 証明書を生成し、署名します。

5.1. 前提条件

他のすべての負荷分散 Capsule Server の Puppet 証明書を生成する Capsule Server で、Puppet 証明書の生成と署名を設定します。

手順

  1. Satellite Server で、Puppet 証明書を生成し、署名するように Capsule Server を設定するシステムの Katello 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar "/root/capsule-ca.example.com-certs.tar" \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule-ca.example.com
    Copy to Clipboard Toggle word wrap

    capsule-certs-generate コマンドの出力である satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

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

    # scp /root/capsule-ca.example.com-certs.tar root@capsule-ca.example.com:capsule-ca.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  3. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --certs-cname "loadbalancer.example.com" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-puppetca "true" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "true"
    Copy to Clipboard Toggle word wrap
  4. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "capsule-ca.example.com-certs.tar" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --enable-puppet \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-puppetca "true" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule-ca.example.com" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server true \
    --puppet-server-ca "true"
    Copy to Clipboard Toggle word wrap
  5. Puppetserver 認証局である Capsule Server で、Puppet サーバーを停止します。

    # systemctl stop puppetserver
    Copy to Clipboard Toggle word wrap
  6. ロードバランシングを設定する他のすべての Capsule Server に対して Puppet 証明書を生成します。ただし、Puppet 証明書署名を最初に設定したシステムを除きます。

    # puppetserver ca generate \
    --ca-client \
    --certname capsule.example.com \
    --subject-alt-names loadbalancer.example.com
    Copy to Clipboard Toggle word wrap

    このコマンドは、以下のファイルを作成します。

    • /etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem
    • /etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem
    • /etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem
    • /etc/puppetlabs/puppetserver/ca/signed/capsule.example.com.pem
  7. Puppet サーバーを起動します。

    # systemctl start puppetserver
    Copy to Clipboard Toggle word wrap

Puppet 証明書に署名するように設定された Capsule Server を除く各負荷分散 Capsule Server で、Puppet 証明書を使用するようにシステムを設定します。

手順

  1. Satellite Server で、Capsule Server の Katello 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar "/root/capsule.example.com-certs.tar" \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule.example.com
    Copy to Clipboard Toggle word wrap

    capsule-certs-generate コマンドの出力である satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

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

    # scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  3. Capsule Server で、puppetserver パッケージをインストールします。

    # satellite-maintain packages install puppetserver
    Copy to Clipboard Toggle word wrap
  4. Capsule Server で、Puppet 証明書用のディレクトリーを作成します。

    # mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \
    /etc/puppetlabs/puppet/ssl/private_keys/ \
    /etc/puppetlabs/puppet/ssl/public_keys/
    Copy to Clipboard Toggle word wrap
  5. Capsule Server で、Capsule Server を設定するシステムから、対象の Capsule Server の Puppet 証明書をコピーして、Puppet 証明書を署名します。

    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/ca.pem /etc/puppetlabs/puppet/ssl/certs/ca.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem
    Copy to Clipboard Toggle word wrap
  6. Capsule Server で、/etc/puppetlabs/puppet/ssl/ ディレクトリーの所有権をユーザー puppet およびグループ puppet に変更します。

    # chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/
    Copy to Clipboard Toggle word wrap
  7. Capsule Server で、/etc/puppetlabs/puppet/ssl/ ディレクトリーの SELinux コンテキストを設定します。

    # restorecon -Rv /etc/puppetlabs/puppet/ssl/
    Copy to Clipboard Toggle word wrap
  8. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --certs-cname "loadbalancer.example.com" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-puppetca "false" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "false"
    Copy to Clipboard Toggle word wrap
  9. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "capsule.example.com-certs.tar" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-puppetca "false" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "false"
    Copy to Clipboard Toggle word wrap

5.4. Satellite での負荷分散による Puppet の制限の管理

Puppet を使用する場合、Puppet 証明書署名は、設定する最初の Capsule に割り当てられます。最初の Capsule がダウンした場合、ホストは Puppet コンテンツを取得できません。

Puppet 認証局 (CA) の管理では、負荷分散型の設定における証明書署名をサポートしていません。Puppet CA では、シリアル番号カウンターや CRL などの証明書情報がファイルシステムに保存されます。複数の書き込みプロセスで同一のデータを使用しようとすると、データが破損する可能性があります。

Puppet のこの制限を管理するには、次の手順を実行します。

  1. Capsule Server 1 台 (通常、ロードバランシング用に Capsule Server を設定する最初のシステム) に Puppet 証明書署名を設定します。
  2. ロードバランサー上のポート 8141 に CA 要求を送信するようにクライアントを設定します。
  3. Puppet 証明書に署名するために Capsule Server を設定したシステムで、ポート 8141 からポート 8140 に CA 要求をリダイレクトするようにロードバランサーを設定します。

問題をトラブルシュートするには、ロードバランサーを使用せずに Capsule ごとに問題を再現します。このソリューションでは、すべての Capsule で 1 つの状態を維持するために Pacemaker または他の同様の HA ツールを使用しません。

ロードバランシングのためにカスタム SSL 証明書を使用する 1 つ以上の Capsule Server を設定できます。

6.1. 前提条件

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

ロードバランシングを設定する各 Capsule Server で、証明書署名要求の設定ファイルを作成し、ロードバランサーと Capsule Server をサブジェクト別名 (SAN) として含めます。

手順

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

    # mkdir /root/capsule_cert
    Copy to Clipboard Toggle word wrap
  2. 証明書署名要求 (CSR) に署名する秘密鍵を作成します。

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

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

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
    Copy to Clipboard Toggle word wrap
  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 ]
    commonName = capsule.example.com 
    1
    
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth
    subjectAltName = @alt_names
    
    [alt_names] 
    2
    
    DNS.1 = loadbalancer.example.com
    DNS.2 = capsule.example.com
    Copy to Clipboard Toggle word wrap
    1
    証明書の共通名は、Capsule Server の FQDN と一致する必要があります。ロードバランシング用に設定する各 Capsule Server でコマンドを実行するたびに、必ず変更します。ワイルドカードの値 * を設定することもできます。ワイルドカードの値を設定しており、katello-certs-check コマンドを使用する場合には、-t capsule オプションを追加する必要があります。
    2
    [alt_names] で、ロードバランサーの FQDN は DNS.1、Capsule Server の FQDN は DNS.2 として追加します。

    [ v3_req ] パラメーターとその目的の詳細は、RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile を参照してください。

  4. オプション: CSR に識別名 (DN) の詳細を追加する場合は、[ req_distinguished_name ] セクションに次の情報を追加します。

    [req_distinguished_name]
    CN = capsule.example.com
    countryName = My_Country_Name 
    1
    
    stateOrProvinceName = My_State_Or_Province_Name 
    2
    
    localityName = My_Locality_Name 
    3
    
    organizationName = My_Organization_Or_Company_Name
    organizationalUnitName = My_Organizational_Unit_Name 
    4
    Copy to Clipboard Toggle word wrap
    1
    2 文字コード
    2
    Full name
    3
    フルネーム (例: ニューヨーク)
    4
    証明書を担当する部門 (例:IT 部門)
  5. 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
    Copy to Clipboard Toggle word wrap
    1
    秘密鍵へのパス
    2
    設定ファイルへのパス
    3
    生成する CSR へのパス
  6. 認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。

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

  7. 認証局バンドル、認証局から受け取る Capsule Server の証明書ファイル、Capsule Server の秘密鍵を、Satellite Server にコピーします。
  8. Satellite Server で、Capsule 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
    Copy to Clipboard Toggle word wrap
    1
    認証局により提供された Capsule Server 証明書ファイル
    2
    証明書の署名に使用した Capsule Server の秘密鍵
    3
    認証局により提供された認証局バンドル

    commonName= をワイルドカードの値 * に設定する場合には、-t capsule オプションを katello-certs-check コマンドに追加する必要があります。

    katello-certs-check コマンドの出力である capsule-certs-generate コマンドの例をメモして、この Capsule Server の認証アーカイブファイルを作成します。

他のすべての負荷分散 Capsule Server の Puppet 証明書を生成する Capsule Server で、Puppet 証明書の生成と署名を設定します。

手順

  1. katello-certs-check コマンドの出力から取得する capsule-certs-generate コマンドに次のオプションを追加します。

    --foreman-proxy-cname loadbalancer.example.com
    Copy to Clipboard Toggle word wrap
  2. Satellite Server で、capsule-certs-generate コマンドを入力して Capsule 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar /root/capsule_cert/capsule-ca.tar \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule-ca.example.com \
    --server-ca-cert /root/capsule_cert/ca_cert_bundle.pem \
    --server-cert /root/capsule_cert/capsule-ca.pem \
    --server-key /root/capsule_cert/capsule-ca.pem
    Copy to Clipboard Toggle word wrap

    出力からの satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

  3. 証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
  4. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-puppetca "true" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "true"
    Copy to Clipboard Toggle word wrap
  5. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "certs.tgz" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --enable-puppet \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-puppetca "true" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule-ca.example.com" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server true \
    --puppet-server-ca "true"
    Copy to Clipboard Toggle word wrap
  6. Puppetserver 認証局である Capsule Server で、Puppet サーバーを停止します。

    # systemctl stop puppetserver
    Copy to Clipboard Toggle word wrap
  7. ロードバランシングを設定する他のすべての Capsule Server に対して Puppet 証明書を生成します。ただし、Puppet 証明書署名を最初に設定したシステムを除きます。

    # puppetserver ca generate \
    --ca-client \
    --certname capsule.example.com \
    --subject-alt-names loadbalancer.example.com
    Copy to Clipboard Toggle word wrap

    このコマンドは、以下のファイルを作成します。

    • /etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem
    • /etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem
    • /etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem
    • /etc/puppetlabs/puppetserver/ca/signed/capsule.example.com.pem
  8. Puppet サーバーを起動します。

    # systemctl start puppetserver
    Copy to Clipboard Toggle word wrap

Puppet 証明書に署名するように設定された Capsule Server を除く各負荷分散 Capsule Server で、Puppet 証明書を使用するようにシステムを設定します。

手順

  1. katello-certs-check コマンドの出力から取得する capsule-certs-generate コマンドに次のオプションを追加します。

    --foreman-proxy-cname loadbalancer.example.com
    Copy to Clipboard Toggle word wrap
  2. Satellite Server で、capsule-certs-generate コマンドを入力して Capsule 証明書を生成します。

    # capsule-certs-generate \
    --certs-tar /root/capsule_cert/capsule.tar \
    --foreman-proxy-cname loadbalancer.example.com \
    --foreman-proxy-fqdn capsule.example.com \
    --server-ca-cert /root/capsule_cert/ca_cert_bundle.pem \
    --server-cert /root/capsule_cert/capsule.pem \
    --server-key /root/capsule_cert/capsule.pem
    Copy to Clipboard Toggle word wrap

    出力からの satellite-installer コマンド例のコピーを保持し、Capsule Server 証明書をインストールします。

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

    # scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  4. Capsule Server で、puppetserver パッケージをインストールします。

    # satellite-maintain packages install puppetserver
    Copy to Clipboard Toggle word wrap
  5. Capsule Server で、Puppet 証明書用のディレクトリーを作成します。

    # mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \
    /etc/puppetlabs/puppet/ssl/private_keys/ \
    /etc/puppetlabs/puppet/ssl/public_keys/
    Copy to Clipboard Toggle word wrap
  6. Capsule Server で、Capsule Server を設定するシステムから、対象の Capsule Server の Puppet 証明書をコピーして、Puppet 証明書を署名します。

    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/certs/capsule.example.com.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/certs/ca.pem /etc/puppetlabs/puppet/ssl/certs/ca.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/private_keys/capsule.example.com.pem
    # scp root@capsule-ca.example.com:/etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem /etc/puppetlabs/puppet/ssl/public_keys/capsule.example.com.pem
    Copy to Clipboard Toggle word wrap
  7. Capsule Server で、/etc/puppetlabs/puppet/ssl/ ディレクトリーの所有権をユーザー puppet およびグループ puppet に変更します。

    # chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/
    Copy to Clipboard Toggle word wrap
  8. Capsule Server で、/etc/puppetlabs/puppet/ssl/ ディレクトリーの SELinux コンテキストを設定します。

    # restorecon -Rv /etc/puppetlabs/puppet/ssl/
    Copy to Clipboard Toggle word wrap
  9. capsule-certs-generate コマンドの出力から取得する satellite-installer コマンドに次のオプションを追加します。

    --certs-cname "loadbalancer.example.com" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-puppetca "false" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "false"
    Copy to Clipboard Toggle word wrap
  10. Capsule Server で、satellite-installer コマンドを入力します。

    # satellite-installer --scenario capsule \
    --certs-cname "loadbalancer.example.com" \
    --certs-tar-file "capsule.example.com-certs.tar" \
    --enable-foreman-proxy-plugin-remote-execution-script \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-oauth-consumer-key "oauth key" \
    --foreman-proxy-oauth-consumer-secret "oauth secret" \
    --foreman-proxy-puppetca "false" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com" \
    --puppet-ca-server "capsule-ca.example.com" \
    --puppet-dns-alt-names "loadbalancer.example.com" \
    --puppet-server-ca "false"
    Copy to Clipboard Toggle word wrap

6.5. Satellite での負荷分散による Puppet の制限の管理

Puppet を使用する場合、Puppet 証明書署名は、設定する最初の Capsule に割り当てられます。最初の Capsule がダウンした場合、ホストは Puppet コンテンツを取得できません。

Puppet 認証局 (CA) の管理では、負荷分散型の設定における証明書署名をサポートしていません。Puppet CA では、シリアル番号カウンターや CRL などの証明書情報がファイルシステムに保存されます。複数の書き込みプロセスで同一のデータを使用しようとすると、データが破損する可能性があります。

Puppet のこの制限を管理するには、次の手順を実行します。

  1. Capsule Server 1 台 (通常、ロードバランシング用に Capsule Server を設定する最初のシステム) に Puppet 証明書署名を設定します。
  2. ロードバランサー上のポート 8141 に CA 要求を送信するようにクライアントを設定します。
  3. Puppet 証明書に署名するために Capsule Server を設定したシステムで、ポート 8141 からポート 8140 に CA 要求をリダイレクトするようにロードバランサーを設定します。

問題をトラブルシュートするには、ロードバランサーを使用せずに Capsule ごとに問題を再現します。このソリューションでは、すべての Capsule で 1 つの状態を維持するために Pacemaker または他の同様の HA ツールを使用しません。

第7章 ロードバランシング設定での Capsule Server のアップグレード

Capsule Server を 6.15 から 6.16 にアップグレードするには、オンラインの Red Hat Satellite の 6.16 へのアップグレード を参照してください。ロードバランシング設定の Capsule Server では、他に必要な手順はありません。

第8章 ホスト登録用ロードバランサーの設定

ホスト登録機能を使用する場合、ロードバランサーを介してクライアントを登録するように Satellite を設定できます。

Capsule の代わりにロードバランサーにホストを登録できるようになります。ロードバランサーは、リクエスト時にホストを登録する Capsule を決定します。登録時に、ホスト上のサブスクリプションマネージャーがロードバランサーを介してコンテンツを管理するように設定されます。

前提条件

手順

  1. すべての Capsule Server で、satellite-installer を使用して登録 URL とテンプレート URL を設定します。

    # satellite-installer \
    --foreman-proxy-registration-url "https://loadbalancer.example.com:9090" \
    --foreman-proxy-template-url "http://loadbalancer.example.com:8000"
    Copy to Clipboard Toggle word wrap
  2. Satellite Web UI で、Infrastructure > Capsules に移動します。
  3. 各 Capsule について、Actions 列のドロップダウンメニューをクリックし、Refresh を選択します。

第9章 ロードバランサーのインストール

次の例は、Red Hat Enterprise Linux 9 または Red Hat Enterprise Linux 8 を使用して HAProxy ロードバランサーを設定するための一般的なガイダンスを示しています。ただし、適切なロードバランシングソフトウェアソリューションをインストールして、TCP 転送をサポートすることができます。

手順

  1. HAProxy をインストールします。

    # dnf install haproxy
    Copy to Clipboard Toggle word wrap
  2. semanage ツールが含まれる、次のパッケージをインストールします。

    # dnf install policycoreutils-python-utils
    Copy to Clipboard Toggle word wrap
  3. SELinux で HAProxy がどのポートでもバインドできるように設定します。

    # semanage boolean --modify --on haproxy_connect_any
    Copy to Clipboard Toggle word wrap
  4. 表9.1「ロードバランサー用のポート設定」 の説明に従って、ポートのネットワーク負荷を分散するようにロードバランサーを設定します。たとえば、HAProxy のポートを設定するには、/etc/haproxy/haproxy.cfg ファイルを表に合わせて編集します。詳細は、Red Hat ナレッジベースConfiguration example for haproxy.cfg for HAProxy load balancer with Satellite 6 を参照してください。

    Expand
    表9.1 ロードバランサー用のポート設定
    Serviceポートモードバランスモード宛先

    HTTP

    80

    TCP

    roundrobin

    すべての Capsule Server のポート 80

    HTTPS および RHSM

    443

    TCP

    source

    すべての Capsule Server のポート 443

    テンプレート取得用の Anaconda

    8000

    TCP

    roundrobin

    すべての Capsule Server のポート 8000

    Puppet (オプション)

    8140

    TCP

    roundrobin

    すべての Capsule Server のポート 8140

    PuppetCA (オプション)

    8141

    TCP

    roundrobin

    Puppet 証明書に署名するように Capsule Server を設定するシステムだけのポート 8140

    ホスト登録用および OpenSCAP (オプション) 用の Capsule HTTPS

    9090

    TCP

    roundrobin

    すべての Capsule Server のポート 9090

  5. SSL オフロードを無効にして、クライアント側の SSL 証明書がバックエンドサーバーにパススルーできるようにロードバランサーを設定します。クライアントから Capsule Server への通信はクライアント側の SSL 証明書に依存するので、この設定が必要です。
  6. HAProxy サービスを起動し、有効にします。

    # systemctl enable --now haproxy
    Copy to Clipboard Toggle word wrap

第10章 ロードバランシング設定の確認

この手順を使用して、各 Capsule Server のロードバランシング設定を確認します。

手順

  1. Capsule Server のベースオペレーティングシステムをシャットダウンします。
  2. この Capsule に登録されているクライアントでコンテンツまたは Subscription Management 機能が利用できることを確認します。たとえば、クライアントで subscription-manager refresh コマンドを入力します。
  3. Capsule Server のベースオペレーティングシステムを再起動します。

第11章 ロードバランサーへのクライアントの登録

クライアントからのネットワークトラフィックの負荷を分散するには、クライアントをロードバランサーに登録する必要があります。

クライアントを登録するには、次のいずれかの手順を実行します。

11.1. ホスト登録機能を使用したクライアントの登録

Satellite Web UI、Hammer CLI、または Satellite API のホスト登録機能を使用して、Satellite にホストを登録できます。詳細は、ホストの管理ホストの登録とホスト統合の設定 を参照してください。

前提条件

手順

  1. Satellite Web UI で、Hosts > Register Host に移動します。
  2. Capsule ドロップダウンリストから、負荷分散用に設定された Capsule Server を選択します。
  3. 以前に Capsule Server に登録されていたホストを登録するには、Force を選択します。
  4. Activation Keys リストから、ホストに割り当てるアクティベーションキーを選択します。
  5. Generate をクリックして登録コマンドを作成します。
  6. ファイル アイコンをクリックして、コマンドをクリップボードにコピーします。
  7. SSH を使用してホストに接続し、登録コマンドを実行します。
  8. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

CLI 手順

  1. Hammer CLI を使用してホスト登録コマンドを生成します。

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key"
    Copy to Clipboard Toggle word wrap

    ホストが Satellite Server の SSL 証明書を信頼しない場合は、登録コマンドに --insecure フラグを追加して SSL 検証を無効にすることができます。

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key" \
    --insecure true
    Copy to Clipboard Toggle word wrap

    --smart-proxy-id My_Capsule_ID オプションを含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。

    以前に Capsule Server に登録されていたホストを登録するには、--force オプションを追加します。

  2. SSH を使用してホストに接続し、登録コマンドを実行します。
  3. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

API の手順

  1. Satellite API を使用してホスト登録コマンドを生成します。

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"] }}'
    Copy to Clipboard Toggle word wrap

    ホストが Satellite Server の SSL 証明書を信頼しない場合は、登録コマンドに --insecure フラグを追加して SSL 検証を無効にすることができます。

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"], "insecure": true }}'
    Copy to Clipboard Toggle word wrap

    アクティベーションキーを使用すると、その環境を簡単に指定できます。詳細は、コンテンツの管理アクティベーションキーの管理 を参照してください。

    { "smart_proxy_id": My_Capsule_ID } を含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。

    以前に Capsule Server に登録されていたホストを登録するには、{ "force": true } を追加します。

    コマンドライン引数としてパスワードを入力するには、username:password 構文を使用します。これにより、パスワードがシェル履歴に保存される可能性があることに注意してください。または、パスワードの代わりに一時的なパーソナルアクセストークンを使用することもできます。Satellite Web UI でトークンを生成するには、My Account > Personal Access Tokens に移動します。

  2. SSH を使用してホストに接続し、登録コマンドを実行します。
  3. /etc/yum.repos.d/redhat.repo ファイルをチェックして、適切なリポジトリーが有効であることを確認します。

11.2. (非推奨) ブートストラップスクリプトを使用したクライアントの登録

クライアントを登録するには、クライアント上で次のコマンドを入力します。クライアントごとに登録の手順を実行する必要があります。

前提条件

手順

  • Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。

    # /usr/libexec/platform-python bootstrap.py \
    --activationkey="My_Activation_Key" \
    --enablerepos=satellite-client-6-for-rhel-8-<arch>-rpms \ 
    1
    
    --force \ 
    2
    
    --hostgroup="My_Host_Group" \
    --location="My_Location" \
    --login=admin \
    --organization="My_Organization" \
    --puppet-ca-port 8141 \ 
    3
    
    --server loadbalancer.example.com
    Copy to Clipboard Toggle word wrap
    1
    <arch> をクライアントアーキテクチャー (x86 など) に置き換えます。
    2
    スタンドアロンの Capsule に以前に登録されていたクライアントを登録するには、--force オプションを追加します。
    3
    Puppet を使用している場合は、--puppet-ca-port 8141 オプションを含めます。
  • Red Hat Enterprise Linux 7 の場合は、以下のコマンドを入力します。

    # python bootstrap.py --login=admin \
    --activationkey="My_Activation_Key" \
    --enablerepos=rhel-7-server-satellite-client-6-rpms \
    --force \ 
    1
    
    --hostgroup="My_Host_Group" \
    --location="My_Location" \
    --organization="My_Organization" \
    --puppet-ca-port 8141 \ 
    2
    
    --server loadbalancer.example.com
    Copy to Clipboard Toggle word wrap
    1
    スタンドアロンの Capsule に以前に登録されていたクライアントを登録するには、--force オプションを追加します。
    2
    Puppet を使用している場合は、--puppet-ca-port 8141 オプションを含めます。

このスクリプトでは、--login オプションで入力した Satellite ユーザー名に対応するパスワードの入力が求められます。

第12章 ロードバランサーを介した SCAP コンテンツの伝播

OpenSCAP を使用してクライアントのセキュリティーコンプライアンスを管理する場合は、ARF レポートを Capsule ではなくロードバランサーに送信するように SCAP クライアントを設定する必要があります。設定手順は、コンプライアンスポリシーをデプロイするために選択した方法によって異なります。

12.1. Ansible デプロイメントを使用した SCAP コンテンツの伝播

この手順を使用すると、Ansible デプロイメント方法の範囲内で、ロードバランサーを介して Security Content Automation Protocol (SCAP) コンテンツをプロモートできます。

前提条件

手順

  1. Satellite Web UI で、Configure > Ansible > Variables に移動します。
  2. foreman_scap_client_port 変数を検索し、その名前をクリックします。
  3. Default Behavior エリアで、Override チェックボックスを選択します。
  4. Parameter Type リストで、integer を選択します。
  5. Default Value フィールドに、9090 と入力します。
  6. Specify Matchers エリアで、デフォルト値をオーバーライドするすべてのマッチャーを削除します。
  7. Submit をクリックします。
  8. foreman_scap_client_server 変数を検索し、その名前をクリックします。
  9. Default Behavior エリアで、Override チェックボックスを選択します。
  10. Parameter Type リストで、string を選択します。
  11. Default Value フィールドに、ロードバランサーの FQDN (loadbalancer.example.com など) を入力します。
  12. Specify Matchers エリアで、デフォルト値をオーバーライドするすべてのマッチャーを削除します。
  13. Submit をクリックします。
  14. Ansible を使用したコンプライアンスポリシーのデプロイに進みます。詳細は以下を参照してください。

検証

  • クライアント上で、/etc/foreman_scap_client/config.yaml ファイルに次の行が含まれていることを確認します。

    # Foreman proxy to which reports should be uploaded
    :server: 'loadbalancer.example.com'
    :port: 9090
    Copy to Clipboard Toggle word wrap

12.2. Puppet デプロイメントを使用した SCAP コンテンツの伝播

この手順を使用すると、Puppet デプロイメント方法の範囲内で、ロードバランサーを介して Security Content Automation Protocol (SCAP) コンテンツをプロモートできます。

前提条件

手順

  1. Satellite Web UI で、Configure > Puppet ENC > Classes に移動します。
  2. foreman_scap_client をクリックします。
  3. Smart Class Parameter タブをクリックします。
  4. Smart Class Parameter ウィンドウの左側のペインで、port をクリックします。
  5. Default Behavior エリアで、Override チェックボックスを選択します。
  6. Key Type の一覧から integer を選択します。
  7. Default Value フィールドに、9090 と入力します。
  8. Smart Class Parameter ウィンドウの左側のペインで、server をクリックします。
  9. Default Behavior エリアで、Override チェックボックスを選択します。
  10. Key Type の一覧から string を選択します。
  11. Default Value フィールドに、ロードバランサーの FQDN (loadbalancer.example.com など) を入力します。
  12. Smart Class Parameter ウィンドウの左下のペインで、Submit をクリックします。
  13. Puppet を使用したコンプライアンスポリシーのデプロイに進みます。詳細は以下を参照してください。

検証

  • クライアント上で、/etc/foreman_scap_client/config.yaml ファイルに次の行が含まれていることを確認します。

    # Foreman proxy to which reports should be uploaded
    :server: 'loadbalancer.example.com'
    :port: 9090
    Copy to Clipboard Toggle word wrap

付録A DNF モジュールのトラブルシューティング

DNF モジュールを有効にできない場合は、間違ったモジュールが有効になっている可能性があります。その場合は、次のように依存関係を手動で解決する必要があります。有効なモジュールをリストします。

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

A.1. Ruby

Ruby モジュールを有効にできない場合は、間違ったモジュールが有効になっている可能性があります。その場合は、次のように依存関係を手動で解決する必要があります。

有効なモジュールをリストします。

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

Ruby 2.5 モジュールがすでに有効になっている場合は、モジュールのリセットを実行します。

# dnf module reset ruby
Copy to Clipboard Toggle word wrap

A.2. PostgreSQL

PostgreSQL モジュールを有効にできない場合は、間違ったモジュールが有効になっている可能性があります。その場合は、次のように依存関係を手動で解決する必要があります。

有効なモジュールをリストします。

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

PostgreSQL 10 モジュールがすでに有効になっている場合は、モジュールのリセットを実行します。

# dnf module reset postgresql
Copy to Clipboard Toggle word wrap

PostgreSQL 10 データベースを作成した場合は、アップグレードを実行します。

  1. DNF モジュールを有効にします。

    # dnf module enable satellite-capsule:el8
    Copy to Clipboard Toggle word wrap
  2. PostgreSQL アップグレードパッケージをインストールします。

    # dnf install postgresql-upgrade
    Copy to Clipboard Toggle word wrap
  3. アップグレードを実行します。

    # postgresql-setup --upgrade
    Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat