使用 Load Balancer 配置胶囊
向红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
使用 Red Hat JIRA 中的 Create Issue 表单提供您的反馈。JIRA 问题在 Red Hat Satellite Jira 项目中创建,您可以在其中跟踪其进度。
前提条件
- 确保您已注册了 红帽帐户。
流程
- 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 负载均衡解决方案架构 复制链接链接已复制到粘贴板!
您可以将卫星服务器配置为使用负载平衡器来在多个胶囊服务器之间分发客户端请求和网络负载。这会在胶囊服务器上实现整体性能改进。
本指南概述了如何为卫星服务器和胶囊式服务器准备负载平衡,并提供如何配置负载平衡器并在负载平衡设置中注册客户端的说明。
负载均衡设置由以下组件组成:
- Satellite Server
- 两个或多个胶囊服务器
- 负载均衡器
- 多个客户端
图 1.1. Satellite Load Balancing 解决方案架构
在负载平衡设置中,当一个胶囊式服务器停机时,几乎所有的胶囊功能都能继续按预期工作,以进行计划或计划外的维护。负载均衡器与以下服务和功能一起工作:
-
使用
subscription-manager进行注册 -
使用
yum软件仓库进行内容管理 - 可选:Puppet
在负载均衡设置中,负载均衡器只为上述服务和功能分发负载。如果置备或 virt-who 等其他服务正在单独的胶囊上运行,则必须直接通过 Capsules 访问它们,而不是通过负载均衡器访问。
管理 Puppet 限制
Puppet 证书颁发机构(CA)管理不支持负载平衡设置中的证书签名请求。Puppet CA 将证书信息(如序列号计数器和 CRL)存储在文件系统中。尝试使用相同数据的多个写入器进程可能会损坏。
要管理此 Puppet 限制,请完成以下步骤:
- 在一个胶囊服务器上配置 Puppet 证书签名请求,通常是您要配置胶囊式服务器进行负载平衡的第一个系统。
- 配置客户端,将 CA 请求发送到负载均衡器上的端口 8141。
- 配置负载平衡器,以将来自端口 8141 的 CA 请求重定向到您配置一台的系统上的端口 8140,以签署 Puppet 证书。
第 2 章 负载均衡注意事项 复制链接链接已复制到粘贴板!
在几个胶囊服务器之间分布负载可防止任何一个胶囊成为单一故障点。将胶囊配置为使用负载均衡器可提供针对计划和计划外中断的弹性。这提高了可用性和响应能力。
在配置负载平衡时请考虑以下指南:
- 如果使用 Puppet,则 Puppet 证书签名请求将分配给您配置的第一个胶囊。如果第一个胶囊为 down,客户端无法获取 Puppet 内容。
- 这个解决方案不使用 Pacemaker 或其他类似的 HA 工具来在所有胶囊中维护一个状态。若要对问题进行故障排除,请绕过负载平衡器,在每个胶囊上重现问题。
负载均衡需要额外的维护
配置胶囊以使用负载均衡器会导致更复杂的环境,需要额外的维护。
负载平衡需要以下附加步骤:
- 您必须确保所有 Capsules 具有相同的内容视图,并将所有胶囊同步到相同的内容视图版本
- 您必须按顺序升级每个胶囊
- 您必须备份您定期配置的每个胶囊
在负载平衡配置中升级胶囊服务器
要将 Capsule 服务器从 6.12 升级到 6.13,请完成 升级和更新 Red Hat Satellite 中的 升级 胶囊服务器 流程。在负载平衡配置中,名称服务器不需要额外的步骤。
第 3 章 为负载平衡配置胶囊式服务器的先决条件 复制链接链接已复制到粘贴板!
要为负载平衡配置 Capsule 服务器,请完成以下步骤,请参阅安装 Capsule 服务器。Satellite 不支持为负载平衡配置现有胶囊服务器。
第 4 章 为负载平衡配置胶囊服务器 复制链接链接已复制到粘贴板!
本章概述了如何配置胶囊服务器以进行负载平衡。根据您的 Satellite 服务器配置,继续以下部分之一:
为 Katello 证书使用不同的文件名,用于每个胶囊服务器创建。例如,将证书存档文件命名为 FQDN。
4.1. 使用默认 SSL 证书为无 Puppet 负载平衡配置胶囊服务器 复制链接链接已复制到粘贴板!
下面的部分论述了如何配置使用默认 SSL 证书进行负载平衡的胶囊式服务器,而无需 Puppet。在您要为负载平衡配置的每个胶囊服务器上完成这个步骤。
流程
在 Satellite 服务器中,为 Capsule 服务器生成 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 保留示例
satellite-installer命令的副本,它由 Capsule-certs-generate命令输出,用于安装 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 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. 使用默认 SSL 证书配置 Capsule 服务器,以使用 Puppet 负载平衡 复制链接链接已复制到粘贴板!
下面的部分论述了如何配置使用默认 SSL 证书进行负载平衡的胶囊式服务器。
如果在 Satellite 配置中使用 Puppet,您必须完成以下步骤:
4.2.1. 配置具有默认 SSL 证书的 Capsule 服务器,以生成和签名 Puppet 证书 复制链接链接已复制到粘贴板!
仅针对您要配置胶囊服务器的系统完成此步骤,并为您配置用于负载平衡的所有其他胶囊服务器生成和签署 Puppet 证书。
流程
在卫星服务器上,为您要配置胶囊式服务器的系统生成 Katello 证书,以生成和签署 Puppet 证书:
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 保留示例
satellite-installer命令的副本,它由 Capsule-certs-generate命令输出,用于安装 Capsule Server 证书。将证书存档文件从 Satellite 服务器复制到 Capsule 服务器:
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-installerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Capsule 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在作为 Puppetserver 证书颁发机构的 Capsule 服务器上,停止 Puppet 服务器:
systemctl stop puppetserver
# systemctl stop puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您配置的所有其他胶囊服务器生成 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 服务器 复制链接链接已复制到粘贴板!
在每个胶囊服务器上完成此步骤,排除您配置胶囊式服务器的系统以签署 Puppet 证书。
流程
在 Satellite 服务器中,为 Capsule 服务器生成 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 保留示例
satellite-installer命令的副本,它由 Capsule-certs-generate命令输出,用于安装 Capsule Server 证书。将证书存档文件从 Satellite 服务器复制到 Capsule 服务器:
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 服务器上,安装
puppetserver软件包:satellite-maintain packages install puppetserver
# satellite-maintain packages install puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在胶囊服务器上,为 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 在胶囊服务器上,从您配置胶囊式服务器的系统中复制此胶囊服务器的 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 服务器上,将
/etc/puppetlabs/puppet/ssl/目录所有权改为 userpuppet和 grouppuppet: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 服务器上,为
/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-installerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Capsule 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 使用自定义 SSL 证书为无 Puppet 负载平衡配置胶囊服务器 复制链接链接已复制到粘贴板!
下面的部分论述了如何配置使用自定义 SSL 证书进行负载平衡的胶囊式服务器,而无需 Puppet。
4.3.1. 为胶囊服务器创建自定义 SSL 证书 复制链接链接已复制到粘贴板!
此流程概述了如何为证书签名请求创建配置文件,并将负载均衡器和胶囊服务器作为主题备用名称(SAN)。在您要为负载平衡配置的每个胶囊服务器上完成这个步骤。
流程
要存储所有源证书文件,请创建一个只能被
root用户访问的目录:mkdir /root/capsule_cert
# mkdir /root/capsule_certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用于签署证书签名请求(CSR)的私钥。
请注意,私钥必须未加密。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已有此胶囊服务器的私钥,请跳过这一步。
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 可选:如果要在 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)。同一 CA 必须为 Satellite 服务器和胶囊服务器签名证书。
提交请求时,指定证书的期限。发送证书请求的方法会有所不同,因此请查阅 CA 了解首选方法。根据请求,您可以预期在单独的文件中接收 CA 捆绑包和签名证书。
- 将您收到的证书颁发机构捆绑包和胶囊式服务器证书文件和胶囊式服务器私钥复制到卫星服务器。
- 在管理门户中,验证 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 证书为无 Puppet 负载平衡配置胶囊服务器 复制链接链接已复制到粘贴板!
下面的部分论述了如何配置使用自定义 SSL 证书进行负载平衡的胶囊式服务器,而无需 Puppet。在您要为负载平衡配置的每个胶囊服务器上完成这个步骤。
流程
在 Capsule
-certs-generate命令中附加以下选项,您从katello-certs-check命令的输出中获取:--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器上,输入
evince-certs-generate命令以生成 Capsule 证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从安装 Capsule 服务器证书的输出中保留示例
satellite-installer命令的副本。将证书存档文件从 Satellite 服务器复制到 Capsule 服务器:
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 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 使用自定义 SSL 证书配置使用 Puppet 负载平衡的胶囊式服务器 复制链接链接已复制到粘贴板!
如果在 Satellite 配置中使用 Puppet,则必须完成以下步骤:
4.4.1. 为胶囊服务器创建自定义 SSL 证书 复制链接链接已复制到粘贴板!
此流程概述了如何为证书签名请求创建配置文件,并将负载均衡器和胶囊服务器作为主题备用名称(SAN)。在您要为负载平衡配置的每个胶囊服务器上完成这个步骤。
流程
要存储所有源证书文件,请创建一个只能被
root用户访问的目录:mkdir /root/capsule_cert
# mkdir /root/capsule_certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用于签署证书签名请求(CSR)的私钥。
请注意,私钥必须未加密。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已有此胶囊服务器的私钥,请跳过这一步。
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 可选:如果要在 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)。同一 CA 必须为 Satellite 服务器和胶囊服务器签名证书。
提交请求时,指定证书的期限。发送证书请求的方法会有所不同,因此请查阅 CA 了解首选方法。根据请求,您可以预期在单独的文件中接收 CA 捆绑包和签名证书。
- 将您收到的证书颁发机构捆绑包和胶囊式服务器证书文件和胶囊式服务器私钥复制到卫星服务器。
- 在管理门户中,验证 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. 配置带有自定义 SSL 证书的 Capsule 服务器,以生成和签名 Puppet 证书 复制链接链接已复制到粘贴板!
仅针对您要配置胶囊服务器的系统完成此流程,以便为您配置用于负载均衡的所有其他胶囊服务器生成 Puppet 证书。
流程
在 Capsule
-certs-generate命令中附加以下选项,您从katello-certs-check命令的输出中获取:--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器上,输入
evince-certs-generate命令以生成 Capsule 证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从安装 Capsule 服务器证书的输出中保留示例
satellite-installer命令的副本。- 将证书存档文件从卫星服务器复制到胶囊服务器。
在从 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 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在作为 Puppetserver 证书颁发机构的 Capsule 服务器上,停止 Puppet 服务器:
systemctl stop puppetserver
# systemctl stop puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为您配置的所有其他胶囊服务器生成 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 服务器 复制链接链接已复制到粘贴板!
为每个胶囊服务器完成此步骤,不包括您配置胶囊式服务器以签署 Puppet 证书的系统。
流程
在 Capsule
-certs-generate命令中附加以下选项,您从katello-certs-check命令的输出中获取:--foreman-proxy-cname loadbalancer.example.com
--foreman-proxy-cname loadbalancer.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器上,输入
evince-certs-generate命令以生成 Capsule 证书:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从安装 Capsule 服务器证书的输出中保留示例
satellite-installer命令的副本。将证书存档文件从卫星服务器复制到胶囊服务器。
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 服务器上,安装
puppetserver软件包:satellite-maintain packages install puppetserver
# satellite-maintain packages install puppetserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在胶囊服务器上,为 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 在胶囊服务器上,从您配置胶囊式服务器的系统中复制此胶囊服务器的 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 服务器上,将
/etc/puppetlabs/puppet/ssl/目录所有权改为 userpuppet和 grouppuppet: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 服务器上,为
/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-installerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Capsule 服务器上,输入
satellite-installer命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 为主机注册设置负载平衡器 复制链接链接已复制到粘贴板!
您可以使用主机注册功能,将 Satellite 配置为通过负载平衡器注册客户端。
您将能够将主机注册到负载平衡器,而非胶囊。负载平衡器将决定通过哪个胶囊在请求时注册主机。注册后,主机上的订阅管理器将被配置为通过负载均衡器管理内容。
前提条件
- 在所有胶囊服务器上配置了 SSL 证书。如需更多信息,请参阅 第 4 章 为负载平衡配置胶囊服务器。
在所有胶囊服务器上启用了注册和模板插件:
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
流程
在所有胶囊服务器上,使用
satellite-installer设置注册和模板 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。
- 对于每个胶囊,单击 Actions 栏中的下拉菜单,再选择 Refresh。
第 6 章 安装 Load Balancer 复制链接链接已复制到粘贴板!
以下示例提供有关使用 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 “Load Balancer 的端口配置” 所述。例如,要为 HAProxy 配置端口,请编辑
/etc/haproxy/haproxy.cfg文件,使其与表对应。如需更多信息,请参阅红帽知识库中的 带有 Satellite 6 的 HAProxy 负载均衡器的 haproxy.cfg 配置示例。Expand 表 6.1. Load Balancer 的端口配置 服务 端口 模式 平衡模式 目的地 HTTP
80
TCP
roundrobin
所有胶囊服务器上的端口 80
HTTPS 和 RHSM
443
TCP
source
所有胶囊服务器上的端口 443
AMQP
5647
TCP
roundrobin
所有胶囊服务器上的端口 5647
用于模板检索的 Anaconda
8000
TCP
roundrobin
所有胶囊服务器上的端口 8000
Puppet (可选)
8140
TCP
roundrobin
所有胶囊服务器上的端口 8140
PuppetCA (可选)
8141
TCP
roundrobin
端口 8140 仅在您配置胶囊服务器以签署 Puppet 证书的系统上
用于主机注册和可选 OpenSCAP 的 Capsule HTTPS
9090
TCP
roundrobin
所有胶囊服务器上的端口 9090
- 配置负载均衡器以禁用 SSL 卸载并允许客户端 SSL 证书传递给后端服务器。这是必要的,因为从客户端到胶囊服务器的通信取决于客户端 SSL 证书。
启动并启用 HAProxy 服务:
systemctl enable --now haproxy
# systemctl enable --now haproxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 7 章 验证负载平衡配置 复制链接链接已复制到粘贴板!
使用这个流程验证每个 Capsule 服务器的负载平衡配置。
流程
- 关闭用于您的胶囊服务器的基础操作系统。
-
验证内容或订阅管理功能是否在注册到此 Capsule 的客户端中可用。例如,在客户端上输入
subscription-manager refresh命令。 - 重启您的胶囊式服务器的基本操作系统。
第 8 章 将客户端注册到负载均衡器 复制链接链接已复制到粘贴板!
要平衡来自客户端的网络流量的负载,您必须将客户端注册到负载均衡器。
要注册客户端,请执行以下步骤之一:
8.1. 使用主机注册注册客户端 复制链接链接已复制到粘贴板!
您可以使用 Satellite Web UI、hammer CLI 或 Satellite API 中的主机注册功能,将主机注册到 Satellite。如需更多信息, 请参阅管理主机中的 注册主机。
前提条件
- 您已为主机注册设置了负载均衡器。如需更多信息,请参阅 第 5 章 为主机注册设置负载平衡器。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Register Host。
- 从 胶囊 下拉列表中,选择负载平衡器。
- 选择 Force 来注册之前注册到 Capsule Server 的主机。
- 从 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 服务器的 SSL 证书,您可以通过在 registration 命令中添加
--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 Capsule_ID选项。您可以使用您为主机注册负载平衡配置的任何胶囊服务器的 ID。Satellite 将自动应用负载平衡器到注册命令。包含
--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 服务器的 SSL 证书,您可以通过在 registration 命令中添加
--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": Capsule_ID }。您可以使用您为主机注册负载平衡配置的任何胶囊服务器的 ID。Satellite 将自动应用负载平衡器到注册命令。包含
{ "force": true }以注册之前注册到 Capsule 服务器的主机。要将密码作为命令行参数输入,请使用
username:password语法。请记住,这可以将密码保存在 shell 历史记录中。或者,您可以使用临时个人访问令牌而不是密码。要在 Satellite Web UI 中生成令牌,请导航到 My Account > Personal Access Tokens。- 使用 SSH 连接到您的主机并运行注册命令。
-
检查
/etc/yum.repos.d/redhat.repo文件,并确保启用了适当的软件仓库。
8.2. (已弃用) 使用启动脚本注册客户端 复制链接链接已复制到粘贴板!
要注册客户端,在客户端上输入以下命令。您必须为每个客户端完成注册过程。
前提条件
- 确保在客户端上安装 bootstrap 脚本,并将脚本的文件权限更改为可执行。如需更多信息,请参阅管理主机中的 使用启动脚本将主机注册到 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 章 通过 Load Balancer 传播 SCAP 内容 复制链接链接已复制到粘贴板!
如果使用 OpenSCAP 来管理客户端的安全合规性,您必须将 SCAP 客户端配置为将 ARF 报告发送到负载均衡器而不是 Capsule。配置过程取决于您选择部署合规策略的方法。
9.1. 使用 Ansible 部署传播 SCAP 内容 复制链接链接已复制到粘贴板!
使用这个流程,您可以通过 Ansible 部署方法范围内的负载均衡器提升安全内容自动化协议(SCAP)内容。
前提条件
- 确保您已为 Ansible 部署策略配置了 Satellite。如需更多信息,请参阅管理 Red Hat Satellite 中的 配置合规策略部署方法。
流程
- 在 Satellite Web UI 中,进入到 Configure > Variables。
-
搜索
foreman_scap_client_port变量,再单击其名称。 - 在 Default Behavior 区域中,确保选择了 Override 复选框。
-
在 Parameter Type 列表中,确保选择了
整数。 -
在 Default Value 字段中,输入
9090。 - 在 Specify Matchers 区域中,删除所有覆盖默认值的 matchers。
- 点 Submit。
-
搜索
foreman_scap_client_server变量,再单击其名称。 - 在 Default Behavior 区域中,确保选择了 Override 复选框。
-
在 Parameter Type 列表中,确保选择了
字符串。 -
在 Default Value 字段中,输入负载均衡器的 FQDN,如
loadbalancer.example.com。 - 在 Specify Matchers 区域中,删除所有覆盖默认值的 matchers。
- 点 Submit。
使用 Ansible 继续部署合规策略。如需更多信息,请参阅:
验证
在客户端上,验证
/etc/foreman_scap_client/config.yaml文件包含以下行:Foreman proxy to which reports should be uploaded
# 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 部署方法范围内的负载均衡器提升安全内容自动化协议(SCAP)内容。
前提条件
- 确保您为 Puppet 部署策略配置了 Satellite。如需更多信息,请参阅管理 Red Hat Satellite 中的 配置合规策略部署方法。
流程
-
在 Satellite Web UI 中,导航到 Configure > Classes,再点
foreman_scap_client。 - 单击 智能类参数 选项卡。
-
在 Smart Class Parameter 窗口左侧的窗格中,单击
端口。 - 在 Default Behavior 区域中,选中 Override 复选框。
-
从 Key Type 列表,选择
整数。 -
在 Default Value 字段中,输入
9090。 -
在 Smart Class Parameter 窗口左侧的窗格中,单击
server。 - 在 Default Behavior 区域中,选中 Override 复选框。
-
从 Key Type 列表中,选择
字符串。 -
在 Default Value 字段中,输入负载均衡器的 FQDN,如
loadbalancer.example.com。 - 在 Smart Class Parameter 窗口的左下角,单击 Submit。
使用 Puppet 继续部署合规策略。如需更多信息,请参阅:
验证
在客户端上,验证
/etc/foreman_scap_client/config.yaml文件包含以下行:Foreman proxy to which reports should be uploaded
# Foreman proxy to which reports should be uploaded :server: 'loadbalancer.example.com' :port: 9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow