ロードバランサーを使用した Capsule の設定
Capsules 間での負荷分散
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
フィードバックを提供するには、Red Hat Jira の Create Issue フォームを使用します。Jira の問題が Red Hat Satellite Jira プロジェクトに作成され、その進捗状況を追跡できます。
前提条件
- Red Hat アカウント が登録されている。
手順
- Create Issue にアクセスします。Jira でログインエラーが表示された場合は、フォームにリダイレクトされた後、ログインして続行します。
- Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
- Create をクリックします。
第1章 ロードバランシングソリューションのアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Satellite Server がロードバランサーを使用して複数の Capsule Server 間でクライアント要求とネットワーク負荷を分散するように設定できます。このように設定すると、Capsule Server の全体的なパフォーマンスが向上します。
このガイドでは、ロードバランシングを使用できるように Satellite Server と Capsule Server を準備する方法を概説し、負荷分散型のセットアップで、クライアントを登録する方法やロードバランサーを設定する方法についてガイドラインを提供します。
負荷分散型のセットアップは、次のコンポーネントで構成されます。
- Satellite Server
- Capsule Server 2 台以上
- ロードバランサー 1 つ
- クライアント複数台
図1.1 Satellite ロードバランシングソリューションのアーキテクチャー
負荷分散型の設定では、予定されたメンテナンスや予定外のメンテナンスで、Capsule Server が 1 台停止しても、ほぼすべての Capsule 機能は想定どおりに動作し続けます。ロードバランサーは、以下のサービスおよび機能と連携します。
-
subscription-managerでの登録 -
yumリポジトリーでのコンテンツ管理 - オプション: Puppet
負荷分散の設定では、ロードバランサーは上記のサービスと機能に対してのみ負荷を分散します。プロビジョニングや virt-who などの他のサービスが個別の Capsule で実行されている場合は、ロードバランサーではなく Capsule から直接アクセスする必要があります。
Puppet の制限の管理
Puppet 認証局 (CA) の管理では、負荷分散型の設定における証明書署名をサポートしていません。Puppet CA では、シリアル番号カウンターや CRL などの証明書情報がファイルシステムに保存されます。複数の書き込みプロセスで同一のデータを使用しようとすると、データが破損する可能性があります。
Puppet のこの制限を管理するには、次の手順を実行します。
- Capsule Server 1 台 (通常、ロードバランシング用に Capsule Server を設定する最初のシステム) に Puppet 証明書署名を設定します。
- ロードバランサー上のポート 8141 に CA 要求を送信するようにクライアントを設定します。
- Puppet 証明書に署名するために Capsule Server を設定したシステムで、ポート 8141 からポート 8140 に CA 要求をリダイレクトするようにロードバランサーを設定します。
第2章 ロードバランシングに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
複数の Capsule Server 間で負荷を分散すると、1 つの Capsule が単一障害点になることを防ぎます。ロードバランサーを使用するように Capsule を設定すると、予定および予定外のシステム停止に適応できるので、可用性および応答性が向上します。
ロードバランシングを設定する場合は、次のガイドラインを考慮します。
- Puppet を使用する場合、Puppet 証明書署名は、設定する最初の Capsule に割り当てられます。最初の Capsule が停止していると、クライアントは Puppet コンテンツを取得できません。
- このソリューションでは、すべての Capsule で 1 つの状態を維持するために Pacemaker または他の同様の HA ツールを使用しません。問題をトラブルシュートするには、ロードバランサーを使用せずに Capsule ごとに問題を再現します。
ロードバランシングに必要な追加メンテナンス
ロードバランサーを使用するように Capsule を設定すると、環境が複雑になり、新たなメンテナンスが必要になります。
ロードバランシングには、次の追加手順が必要です。
- すべての Capsule に同じコンテンツビューがあることを確認し、すべての Capsule を同一のコンテンツビューバージョンに同期する必要があります。
- 各 Capsule を順にアップグレードする必要があります。
- 設定した Capsule ごとに定期的にバックアップする必要があります。
ロードバランシング設定の Capsule Server のアップグレード
Capsule Servers 6.13 から 6.14 にアップグレードするには、Red Hat Satellite 6.14 へのアップグレード の Capsule Server のアップグレード の手順を実行します。ロードバランシング設定の Capsule Server では、他に必要な手順はありません。
第3章 ロードバランシング用に Capsule Server を設定するための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Capsule Server をロードバランシング用に設定するには、Capsule Server のインストール に記載の以下の手順を実行します。Satellite には、既存の Capsule Server をロードバランシング用に設定するサポートはありません。
第4章 Capsule Server のロードバランシング用の設定 リンクのコピーリンクがクリップボードにコピーされました!
この章では、ロードバランシング用に Capsule Server を設定する方法を概説します。お使いの Satellite Server の設定に合わせて、次のいずれかのセクションに進んでください。
作成する Katello 証明書には、Capsule Server ごとに異なるファイル名を使用します。たとえば、Capsule Server FQDN を使用して証明書アーカイブファイルに名前を付けます。
4.1. デフォルト SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用しない) リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、Puppet を使用せず、デフォルト SSL 証明書を使用する Capsule Server をロードバランシング用に設定する方法を説明します。この手順は、ロードバランシング用に設定する Capsule Server ごとに実行します。
手順
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
# capsule-certs-generate \ --certs-tar "/root/capsule.example.com-certs.tar" \ --foreman-proxy-cname loadbalancer.example.com \ --foreman-proxy-fqdn capsule.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力であるsatellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tar
# scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力から取得するsatellite-installerコマンドに次のオプションを追加します。--certs-cname "loadbalancer.example.com" \ --enable-foreman-proxy-plugin-remote-execution-script
--certs-cname "loadbalancer.example.com" \ --enable-foreman-proxy-plugin-remote-execution-scriptCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. デフォルト SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用する) リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、Puppet を使用し、デフォルト SSL 証明書を使用する Capsule Server をロードバランシング用に設定する方法を説明します。
Satellite 設定で Puppet を使用する場合は、次の手順を実行する必要があります。
4.2.1. Puppet 証明書を生成および署名するためのデフォルトの SSL 証明書を使用した Capsule Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順は、ロードバランシング用に設定した他の Capsule Server すべてに、Puppet 証明書を生成して署名するように Capsule Server を設定するシステムにのみ、実行してください。
手順
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
# capsule-certs-generate \ --certs-tar "/root/capsule-ca.example.com-certs.tar" \ --foreman-proxy-cname loadbalancer.example.com \ --foreman-proxy-fqdn capsule-ca.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力であるsatellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
scp /root/capsule-ca.example.com-certs.tar root@capsule-ca.example.com:capsule-ca.example.com-certs.tar
# scp /root/capsule-ca.example.com-certs.tar root@capsule-ca.example.com:capsule-ca.example.com-certs.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力から取得するsatellite-installerコマンドに次のオプションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Puppetserver 認証局である Capsule Server で、Puppet サーバーを停止します。
systemctl stop puppetserver
# systemctl stop puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow ロードバランシングを設定する他のすべての Capsule Server に対して Puppet 証明書を生成します。ただし、Puppet 証明書署名を最初に設定したシステムを除きます。
puppetserver ca generate \ --ca-client \ --certname capsule.example.com \ --subject-alt-names loadbalancer.example.com
# puppetserver ca generate \ --ca-client \ --certname capsule.example.com \ --subject-alt-names loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のファイルを作成します。
-
/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
-
Puppet サーバーを再起動します。
systemctl start puppetserver
# systemctl start puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. ロードバランシング向けにデフォルトの SSL 証明書を使用した残りの Capsule Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順は、Capsule Server が Puppet 証明書を署名するように設定するシステムを除き、各 Capsule Server で実行します。
手順
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
# capsule-certs-generate \ --certs-tar "/root/capsule.example.com-certs.tar" \ --foreman-proxy-cname loadbalancer.example.com \ --foreman-proxy-fqdn capsule.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力であるsatellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tar
# scp /root/capsule.example.com-certs.tar root@capsule.example.com:/root/capsule.example.com-certs.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
puppetserverパッケージをインストールします。satellite-maintain packages install puppetserver
# satellite-maintain packages install puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、Puppet 証明書用のディレクトリーを作成します。
mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \ /etc/puppetlabs/puppet/ssl/private_keys/ \ /etc/puppetlabs/puppet/ssl/public_keys/
# mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \ /etc/puppetlabs/puppet/ssl/private_keys/ \ /etc/puppetlabs/puppet/ssl/public_keys/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
/etc/puppetlabs/puppet/ssl/ディレクトリーの所有権をユーザーpuppetおよびグループpuppetに変更します。chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/
# chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
/etc/puppetlabs/puppet/ssl/ディレクトリーの SELinux コンテキストを設定します。restorecon -Rv /etc/puppetlabs/puppet/ssl/
# restorecon -Rv /etc/puppetlabs/puppet/ssl/Copy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力から取得するsatellite-installerコマンドに次のオプションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. カスタム SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用しない) リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、Puppet を使用せず、カスタム SSL 証明書を使用する Capsule Server をロードバランシング用に設定する方法を説明します。
4.3.1. Capsule Server のカスタム SSL 証明書の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Certificate Signing Request (CSR) の設定ファイルを作成して、Subject Alternative Names (SAN) としてロードバランサーと Capsule Server を追加する方法を説明します。この手順は、ロードバランシング用に設定する Capsule Server ごとに実行します。
手順
ソースの証明書ファイルすべてを保存するには、
rootユーザーだけがアクセスできるディレクトリーを作成します。mkdir /root/capsule_cert
# mkdir /root/capsule_certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書署名要求 (CSR) に署名する秘密鍵を作成します。
秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。
この Capsule Server の秘密鍵がすでにある場合は、この手順を省略します。
openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
# openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 用の
/root/capsule_cert/openssl.cnf設定ファイルを作成して、以下のコンテンツを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [ v3_req ]パラメーターとその目的に関する詳細は、RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile を参照してください。オプション: CSR に識別名 (DN) の詳細を追加する場合は、
[ req_distinguished_name ]セクションに次の情報を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR を生成します。
openssl req -new \ -key /root/capsule_cert/capsule_cert_key.pem \ -config /root/capsule_cert/openssl.cnf \ -out /root/capsule_cert/capsule_cert_csr.pem
# 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.pem3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。
要求を送信する場合は、証明書の有効期限を指定してください。証明書要求の送信方法にはさまざまなものがあるため、推奨される方法を CA にお問い合わせください。要求すると、CA バンドルと署名済み証明書を別々のファイルで受け取ることになります。
- 認証局バンドル、認証局から受け取る Capsule Server の証明書ファイル、Capsule Server の秘密鍵を、Satellite Server にコピーします。
- Satellite Server で、Capsule Server 証明書入力ファイルを検証します。
katello-certs-check \
-c /root/{cert-name}_cert/{cert-name}_cert.pem \
-k /root/{cert-name}_cert/{cert-name}_cert_key.pem \
-b /root/{cert-name}_cert/ca_cert_bundle.pem
# katello-certs-check \
-c /root/{cert-name}_cert/{cert-name}_cert.pem \
-k /root/{cert-name}_cert/{cert-name}_cert_key.pem \
-b /root/{cert-name}_cert/ca_cert_bundle.pem
4.3.2. カスタム SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用しない) リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、Puppet を使用せず、カスタム SSL 証明書を使用する Capsule Server をロードバランシング用に設定する方法を説明します。この手順は、ロードバランシング用に設定する Capsule Server ごとに実行します。
手順
katello-certs-checkコマンドの出力から取得するcapsule-certs-generateコマンドに次のオプションを追加します。--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite Server で、
capsule-certs-generateコマンドを入力して Capsule 証明書を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力からの
satellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tar
# scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力から取得するsatellite-installerコマンドに次のオプションを追加します。--certs-cname "loadbalancer.example.com" \ --enable-foreman-proxy-plugin-remote-execution-script
--certs-cname "loadbalancer.example.com" \ --enable-foreman-proxy-plugin-remote-execution-scriptCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. カスタム SSL 証明書を使用する Capsule Server のロードバランシング用の設定 (Puppet を使用する) リンクのコピーリンクがクリップボードにコピーされました!
Satellite 設定で Puppet を使用する場合は、次の手順を実行する必要があります。
4.4.1. Capsule Server のカスタム SSL 証明書の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Certificate Signing Request (CSR) の設定ファイルを作成して、Subject Alternative Names (SAN) としてロードバランサーと Capsule Server を追加する方法を説明します。この手順は、ロードバランシング用に設定する Capsule Server ごとに実行します。
手順
ソースの証明書ファイルすべてを保存するには、
rootユーザーだけがアクセスできるディレクトリーを作成します。mkdir /root/capsule_cert
# mkdir /root/capsule_certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書署名要求 (CSR) に署名する秘密鍵を作成します。
秘密鍵は暗号化する必要がないことに注意してください。パスワードで保護された秘密鍵を使用する場合は、秘密鍵のパスワードを削除します。
この Capsule Server の秘密鍵がすでにある場合は、この手順を省略します。
openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
# openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 用の
/root/capsule_cert/openssl.cnf設定ファイルを作成して、以下のコンテンツを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [ v3_req ]パラメーターとその目的に関する詳細は、RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile を参照してください。オプション: CSR に識別名 (DN) の詳細を追加する場合は、
[ req_distinguished_name ]セクションに次の情報を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR を生成します。
openssl req -new \ -key /root/capsule_cert/capsule_cert_key.pem \ -config /root/capsule_cert/openssl.cnf \ -out /root/capsule_cert/capsule_cert_csr.pem
# 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.pem3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証局 (CA) に証明書署名要求を送信します。Satellite Server と Capsule Server の証明書には同じ CA が署名する必要があります。
要求を送信する場合は、証明書の有効期限を指定してください。証明書要求の送信方法にはさまざまなものがあるため、推奨される方法を CA にお問い合わせください。要求すると、CA バンドルと署名済み証明書を別々のファイルで受け取ることになります。
- 認証局バンドル、認証局から受け取る Capsule Server の証明書ファイル、Capsule Server の秘密鍵を、Satellite Server にコピーします。
- Satellite Server で、Capsule Server 証明書入力ファイルを検証します。
katello-certs-check \
-c /root/{cert-name}_cert/{cert-name}_cert.pem \
-k /root/{cert-name}_cert/{cert-name}_cert_key.pem \
-b /root/{cert-name}_cert/ca_cert_bundle.pem
# katello-certs-check \
-c /root/{cert-name}_cert/{cert-name}_cert.pem \
-k /root/{cert-name}_cert/{cert-name}_cert_key.pem \
-b /root/{cert-name}_cert/ca_cert_bundle.pem
4.4.2. Puppet 証明書を生成および署名するためのカスタム SSL 証明書を使用した Capsule Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順は、ロードバランシング用に設定した他の Capsule Server すべてに、Puppet 証明書を生成するように Capsule Server を設定するシステムにのみ、実行してください。
手順
katello-certs-checkコマンドの出力から取得するcapsule-certs-generateコマンドに次のオプションを追加します。--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite Server で、
capsule-certs-generateコマンドを入力して Capsule 証明書を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力からの
satellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。- 証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
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"
--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 Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Puppetserver 認証局である Capsule Server で、Puppet サーバーを停止します。
systemctl stop puppetserver
# systemctl stop puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow ロードバランシングを設定する他のすべての Capsule Server に対して Puppet 証明書を生成します。ただし、Puppet 証明書署名を最初に設定したシステムを除きます。
puppetserver ca generate \ --ca-client \ --certname capsule.example.com \ --subject-alt-names loadbalancer.example.com
# puppetserver ca generate \ --ca-client \ --certname capsule.example.com \ --subject-alt-names loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のファイルを作成します。
-
/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
-
Puppet サーバーを再起動します。
systemctl start puppetserver
# systemctl start puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3. ロードバランシング向けにカスタム SSL 証明書を使用した残りの Capsule Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順は、Puppet 証明書に署名するために Capsule Server を設定するシステムを除き、各 Capsule Server で実行します。
手順
katello-certs-checkコマンドの出力から取得するcapsule-certs-generateコマンドに次のオプションを追加します。--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite Server で、
capsule-certs-generateコマンドを入力して Capsule 証明書を生成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力からの
satellite-installerコマンド例のコピーを保持し、Capsule Server 証明書をインストールします。証明書アーカイブファイルを Satellite Server から Capsule Server にコピーします。
scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tar
# scp /root/capsule.example.com-certs.tar root@capsule.example.com:capsule.example.com-certs.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
puppetserverパッケージをインストールします。satellite-maintain packages install puppetserver
# satellite-maintain packages install puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、Puppet 証明書用のディレクトリーを作成します。
mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \ /etc/puppetlabs/puppet/ssl/private_keys/ \ /etc/puppetlabs/puppet/ssl/public_keys/
# mkdir -p /etc/puppetlabs/puppet/ssl/certs/ \ /etc/puppetlabs/puppet/ssl/private_keys/ \ /etc/puppetlabs/puppet/ssl/public_keys/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
/etc/puppetlabs/puppet/ssl/ディレクトリーの所有権をユーザーpuppetおよびグループpuppetに変更します。chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/
# chown -R puppet:puppet /etc/puppetlabs/puppet/ssl/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
/etc/puppetlabs/puppet/ssl/ディレクトリーの SELinux コンテキストを設定します。restorecon -Rv /etc/puppetlabs/puppet/ssl/
# restorecon -Rv /etc/puppetlabs/puppet/ssl/Copy to Clipboard Copied! Toggle word wrap Toggle overflow capsule-certs-generateコマンドの出力から取得するsatellite-installerコマンドに次のオプションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Capsule Server で、
satellite-installerコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 ホスト登録用ロードバランサーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ホスト登録機能を使用する場合、ロードバランサーを介してクライアントを登録するように Satellite を設定できます。
Capsule の代わりにロードバランサーにホストを登録できるようになります。ロードバランサーは、リクエスト時にホストを登録する Capsule を決定します。登録時に、ホスト上のサブスクリプションマネージャーがロードバランサーを介してコンテンツを管理するように設定されます。
前提条件
- すべての Capsule Server で SSL 証明書を設定した。詳細は、4章Capsule Server のロードバランシング用の設定 を参照してください。
すべての Capsule Server で登録プラグインおよびテンプレートプラグインを有効にしている。
satellite-installer --scenario capsule \ --foreman-proxy-registration true \ --foreman-proxy-templates true
# satellite-installer --scenario capsule \ --foreman-proxy-registration true \ --foreman-proxy-templates trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
すべての Capsule Server で、
satellite-installerを使用して登録 URL とテンプレート URL を設定します。satellite-installer --scenario capsule \ --foreman-proxy-registration-url "https://loadbalancer.example.com:9090" \ --foreman-proxy-template-url "http://loadbalancer.example.com:8000"
# satellite-installer --scenario capsule \ --foreman-proxy-registration-url "https://loadbalancer.example.com:9090" \ --foreman-proxy-template-url "http://loadbalancer.example.com:8000"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite Web UI で、Infrastructure > Capsules に移動します。
- 各 Capsule について、Actions 列のドロップダウンメニューをクリックし、Refresh を選択します。
第6章 ロードバランサーのインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、Red Hat Enterprise Linux 8 サーバーを使用して HAProxy ロードバランサーを設定するための一般的なガイダンスを提供します。ただし、適切なロードバランシングソフトウェアソリューションをインストールして、TCP 転送をサポートすることができます。
手順
HAProxy をインストールします。
dnf install haproxy
# dnf install haproxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow semanageツールが含まれる、次のパッケージをインストールします。dnf install policycoreutils-python-utils
# dnf install policycoreutils-python-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux で HAProxy がどのポートでもバインドできるように設定します。
semanage boolean --modify --on haproxy_connect_any
# semanage boolean --modify --on haproxy_connect_anyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 表6.1「ロードバランサー用のポート設定」 の説明に従って、ポートのネットワーク負荷を分散するようにロードバランサーを設定します。たとえば、HAProxy のポートを設定するには、
/etc/haproxy/haproxy.cfgファイルを表に合わせて編集します。詳細は、Red Hat ナレッジベース の Configuration example for haproxy.cfg for HAProxy load balancer with Satellite 6 を参照してください。Expand 表6.1 ロードバランサー用のポート設定 サービス ポート モード バランスモード 宛先 HTTP
80
TCP
roundrobin
すべての Capsule Server のポート 80
HTTPS および RHSM
443
TCP
source
すべての Capsule Server のポート 443
AMQP
5647
TCP
roundrobin
すべての Capsule Server のポート 5647
テンプレート取得用の 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
- SSL オフロードを無効にして、クライアント側の SSL 証明書がバックエンドサーバーにパススルーできるようにロードバランサーを設定します。クライアントから Capsule Server への通信はクライアント側の SSL 証明書に依存するので、この設定が必要です。
HAProxy サービスを起動し、有効にします。
systemctl enable --now haproxy
# systemctl enable --now haproxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 ロードバランシング設定の確認 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用して、各 Capsule Server のロードバランシング設定を確認します。
手順
- Capsule Server のベースオペレーティングシステムをシャットダウンします。
-
この Capsule に登録されているクライアントでコンテンツまたは Subscription Management 機能が利用できることを確認します。たとえば、クライアントで
subscription-manager refreshコマンドを入力します。 - Capsule Server のベースオペレーティングシステムを再起動します。
第8章 ロードバランサーへのクライアントの登録 リンクのコピーリンクがクリップボードにコピーされました!
クライアントからのネットワークトラフィックの負荷を分散するには、クライアントをロードバランサーに登録する必要があります。
クライアントを登録するには、次のいずれかの手順を実行します。
8.1. ホスト登録機能を使用したクライアントの登録 リンクのコピーリンクがクリップボードにコピーされました!
Satellite Web UI、Hammer CLI、または Satellite API のホスト登録機能を使用して、Satellite にホストを登録できます。詳細は、ホストの管理 の ホストの登録 を参照してください。
前提条件
- ホスト登録用のロードバランサーを設定している。詳細は、5章ホスト登録用ロードバランサーの設定 を参照してください。
手順
- Satellite Web UI で、Hosts > Register Host に移動します。
- Capsule ドロップダウンリストから、ロードバランサーを選択します。
- 以前に Capsule Server に登録されていたホストを登録するには、Force を選択します。
- Activation Keys リストから、ホストに割り当てるアクティベーションキーを選択します。
- Generate をクリックして登録コマンドを作成します。
- ファイル アイコンをクリックして、コマンドをクリップボードにコピーします。
- SSH を使用してホストに接続し、登録コマンドを実行します。
-
/etc/yum.repos.d/redhat.repoファイルをチェックして、適切なリポジトリーが有効であることを確認します。
CLI 手順
Hammer CLI を使用してホスト登録コマンドを生成します。
hammer host-registration generate-command \ --activation-keys "My_Activation_Key"
# hammer host-registration generate-command \ --activation-keys "My_Activation_Key"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストが Satellite Server の SSL 証明書を信頼しない場合は、登録コマンドに
--insecureフラグを追加して SSL 検証を無効にすることができます。hammer host-registration generate-command \ --activation-keys "My_Activation_Key" \ --insecure true
# hammer host-registration generate-command \ --activation-keys "My_Activation_Key" \ --insecure trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow --smart-proxy-id My_Capsule_IDオプションを含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。以前に Capsule Server に登録されていたホストを登録するには、
--forceオプションを追加します。- SSH を使用してホストに接続し、登録コマンドを実行します。
-
/etc/yum.repos.d/redhat.repoファイルをチェックして、適切なリポジトリーが有効であることを確認します。
API の手順
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"] }}'# 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 Copied! Toggle word wrap Toggle overflow ホストが 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 }}'# 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 Copied! Toggle word wrap Toggle overflow アクティベーションキーを使用すると、その環境を簡単に指定できます。詳細は、コンテンツの管理 の アクティベーションキーの管理 を参照してください。
{ "smart_proxy_id": My_Capsule_ID }を含めます。ホスト登録のロードバランシング用に設定した任意の Capsule Server の ID を使用できます。Satellite はロードバランサーを登録コマンドに自動的に適用します。以前に Capsule Server に登録されていたホストを登録するには、
{ "force": true }を追加します。コマンドライン引数としてパスワードを入力するには、
username:password構文を使用します。これにより、パスワードがシェル履歴に保存される可能性があることに注意してください。または、パスワードの代わりに一時的なパーソナルアクセストークンを使用することもできます。Satellite Web UI でトークンを生成するには、My Account > Personal Access Tokens に移動します。- SSH を使用してホストに接続し、登録コマンドを実行します。
-
/etc/yum.repos.d/redhat.repoファイルをチェックして、適切なリポジトリーが有効であることを確認します。
8.2. (非推奨) ブートストラップスクリプトを使用したクライアントの登録 リンクのコピーリンクがクリップボードにコピーされました!
クライアントを登録するには、クライアント上で次のコマンドを入力します。クライアントごとに登録の手順を実行する必要があります。
前提条件
- クライアントにブートストラップスクリプトをインストールし、スクリプトのファイル権限を実行可能に変更していることを確認している。詳細は、ホストの管理 ガイドの ブートストラップスクリプトを使用した Red Hat Satellite へのホストの登録 を参照してください。
手順
Red Hat Enterprise Linux 8 の場合は、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 7 または 6 の場合は、以下のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このスクリプトでは、--login オプションで入力した Satellite ユーザー名に対応するパスワードの入力が求められます。
8.3. (非推奨) katello-ca-consumer RPM を使用したクライアントの手動登録 リンクのコピーリンクがクリップボードにコピーされました!
クライアントを手動で登録するには、登録する各クライアントで次の手順を実行します。
手順
katello-ca-consumerパッケージがインストールされている場合は削除します。dnf remove 'katello-ca-consumer*'
# dnf remove 'katello-ca-consumer*'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロードバランサーから
katello-ca-consumerパッケージをインストールします。dnf install http://loadbalancer.example.com/pub/katello-ca-consumer-latest.noarch.rpm
# dnf install http://loadbalancer.example.com/pub/katello-ca-consumer-latest.noarch.rpmCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントを登録し、
--serverurlと--baseurlのオプションを追加します。subscription-manager register \ --activationkey="My_Activation_Key" \ --baseurl=https://loadbalancer.example.com/pulp/content/ \ --org="My_Organization" \ --serverurl=https://loadbalancer.example.com/rhsm
# subscription-manager register \ --activationkey="My_Activation_Key" \ --baseurl=https://loadbalancer.example.com/pulp/content/ \ --org="My_Organization" \ --serverurl=https://loadbalancer.example.com/rhsmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 ロードバランサーを介した SCAP コンテンツの伝播 リンクのコピーリンクがクリップボードにコピーされました!
OpenSCAP を使用してクライアントのセキュリティーコンプライアンスを管理する場合は、ARF レポートを Capsule ではなくロードバランサーに送信するように SCAP クライアントを設定する必要があります。設定手順は、コンプライアンスポリシーをデプロイするために選択した方法によって異なります。
9.1. Ansible デプロイメントを使用した SCAP コンテンツの伝播 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用すると、Ansible デプロイメント方法の範囲内で、ロードバランサーを介して Security Content Automation Protocol (SCAP) コンテンツをプロモートできます。
前提条件
- コンプライアンスポリシーの Ansible デプロイメント向けに Satellite を設定している。詳細は、セキュリティーコンプライアンスの管理 の コンプライアンスポリシーのデプロイ方法の設定 を参照してください。
手順
- Satellite Web UI で、Configure > Variables に移動します。
-
foreman_scap_client_port変数を検索し、その名前をクリックします。 - Default Behavior エリアで、Override チェックボックスを選択します。
-
Parameter Type リストで、
integerを選択します。 -
Default Value フィールドに、
9090と入力します。 - Specify Matchers エリアで、デフォルト値をオーバーライドするすべてのマッチャーを削除します。
- Submit をクリックします。
-
foreman_scap_client_server変数を検索し、その名前をクリックします。 - Default Behavior エリアで、Override チェックボックスを選択します。
-
Parameter Type リストで、
stringを選択します。 -
Default Value フィールドに、ロードバランサーの FQDN (
loadbalancer.example.comなど) を入力します。 - Specify Matchers エリアで、デフォルト値をオーバーライドするすべてのマッチャーを削除します。
- Submit をクリックします。
Ansible を使用したコンプライアンスポリシーのデプロイに進みます。詳細は以下を参照してください。
- セキュリティーコンプライアンスの管理 の Ansible を使用したホストグループへのポリシーのデプロイ
- セキュリティーコンプライアンスの管理 の Ansible を使用したホストへのポリシーのデプロイ
検証
クライアント上で、
/etc/foreman_scap_client/config.yamlファイルに次の行が含まれていることを確認します。# Foreman proxy to which reports should be uploaded :server: 'loadbalancer.example.com' :port: 9090
# Foreman proxy to which reports should be uploaded :server: 'loadbalancer.example.com' :port: 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2. Puppet デプロイメントを使用した SCAP コンテンツの伝播 リンクのコピーリンクがクリップボードにコピーされました!
この手順を使用すると、Puppet デプロイメント方法の範囲内で、ロードバランサーを介して Security Content Automation Protocol (SCAP) コンテンツをプロモートできます。
前提条件
- コンプライアンスポリシーの Puppet デプロイメント向けに Satellite を設定している。詳細は、セキュリティーコンプライアンスの管理 の コンプライアンスポリシーのデプロイ方法の設定 を参照してください。
手順
-
Satellite Web UI で Configure > Classes に移動して、
foreman_scap_clientをクリックします。 - Smart Class Parameter タブをクリックします。
-
Smart Class Parameter ウィンドウの左側のペインで、
portをクリックします。 - Default Behavior エリアで、Override チェックボックスを選択します。
-
Key Type の一覧から
integerを選択します。 -
Default Value フィールドに、
9090と入力します。 -
Smart Class Parameter ウィンドウの左側のペインで、
serverをクリックします。 - Default Behavior エリアで、Override チェックボックスを選択します。
-
Key Type の一覧から
stringを選択します。 -
Default Value フィールドに、ロードバランサーの FQDN (
loadbalancer.example.comなど) を入力します。 - Smart Class Parameter ウィンドウの左下のペインで、Submit をクリックします。
Puppet を使用したコンプライアンスポリシーのデプロイに進みます。詳細は以下を参照してください。
- セキュリティーコンプライアンスの管理 の Puppet を使用したホストグループへのポリシーのデプロイ
- セキュリティーコンプライアンスの管理 の Puppet を使用したホストへのポリシーのデプロイ
検証
クライアント上で、
/etc/foreman_scap_client/config.yamlファイルに次の行が含まれていることを確認します。# Foreman proxy to which reports should be uploaded :server: 'loadbalancer.example.com' :port: 9090
# Foreman proxy to which reports should be uploaded :server: 'loadbalancer.example.com' :port: 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow