安装胶囊服务器
Installing Red Hat Satellite Capsule Server
摘要
第 1 章 为安装准备您的环境
1.1. 系统要求
以下要求适用于网络的基本操作系统:
- x86_64 架构
- 最新版本的 Red Hat Enterprise Linux 7 Server
- 至少 4 核 2.0 GHz CPU
- 胶囊服务器需要至少 12 GB RAM 才能正常工作。另外,我们推荐至少具有 4 GB 交换空间的 RAM。运行 RAM 小于最小值的胶囊可能无法正确运行。
- 唯一主机名,可以包含小写字母、数字、点(.)和连字符(-)
- 当前的 Red Hat Satellite 订阅
- 管理用户(root)访问权限
- 系统 umask 为 0022
- 使用完全限定域名进行完整正向和反向 DNS 解析
卫星仅支持 UTF-8
编码。如果您的地区是美国且您的语言为英文,请将 en_US.utf-8
设置为系统范围区域设置。有关在 Red Hat Enterprise Linux 中配置系统区域设置的更多信息,请参阅配置系统本地指南。在安装胶囊服务器之前,请确保您的环境满足安装要求。
胶囊服务器必须安装在全新的调配的系统上,除了运行胶囊服务器外,不会提供其他功能。全新调配的系统不得具有外部身份提供程序提供的以下用户,以避免与胶囊服务器创建的本地用户冲突:
- Apache
- Foreman
- foreman-proxy
- postgres
- Pulp
- puppet
- puppetserver
- qdrouterd
- redis
有关扩展胶囊服务器的更多信息,请参阅 胶囊服务器扩展注意事项。
认证的虚拟机监控程序
在支持运行 Red Hat Enterprise Linux 的 hypervisor 上运行的物理系统和虚拟机上都完全支持胶囊服务器。有关认证的虚拟机监控程序的更多信息,请参阅 哪些管理程序已经认证可运行 Red Hat Enterprise Linux?
SELinux Mode
必须启用 SELinux,无论是 enforcing 模式还是 permissive 模式。不支持使用禁用 SELinux 的安装。
FIPS 模式
您可以在以 FIPS 模式运行的 Red Hat Enterprise Linux 系统上安装 Satellite。安装 Satellite 后您无法启用 FIPS 模式。如需更多信息,请参阅 Red Hat Enterprise Linux Security Guide 中启用 FIPS 模式。
1.2. 存储要求
下表详细介绍了特定目录的存储要求。这些值基于预期的用例场景,并根据各个环境的不同而有所不同。
运行时大小通过 Red Hat Enterprise Linux 6、7 和 8 软件仓库同步进行测量。
目录 | 安装大小 | 运行时大小 |
---|---|---|
/var/lib/pulp/ | 1 MB | 300 GB |
/var/opt/rh/rh-postgresql12/lib/pgsql | 100 MB | 10 GB |
/opt | 500 MB | 不适用 |
1.3. 存储指南
安装胶囊服务器以提高效率时请考虑以下准则:
-
如果您将
/tmp
目录挂载为单独的文件系统,则必须使用/etc/fstab
文件中的exec
挂载选项。如果/tmp
已经使用noexec
选项挂载,您必须将选项更改为exec
并重新创建文件系统。这是puppetserver
服务正常工作的要求。 -
因为大多数胶囊服务器数据存储在
/var
目录中,因此在 LVM 存储上挂载/var
可帮助系统扩展。 -
/var/lib/qpidd/
目录使用每个由goferd
服务管理的内容主机稍多 2 MB。例如,10 000 内容主机需要/var/lib/qpidd/
中的磁盘空间 20 GB。 -
对
/var/lib/pulp/
目录使用高带宽、低延迟存储。因为红帽卫星具有大量 I/O 密集型操作,使用高延迟、低带宽存储会导致性能下降。确保您的安装有范围 60 - 80 兆字节/秒的速度。
您可以使用 fio
工具获取这些数据。有关使用 fio
工具的更多信息,请参阅 磁盘对 Satellite 操作的红帽知识库解决方案影响。
文件系统指南
- 不要使用 GFS2 文件系统作为输入输出延迟过高。
日志文件存储
日志文件被写入 /var/log/messages/、
和 /
var/log/httpd//var/lib/foreman-proxy/openscap/content/
。您可以使用 logrotate 管理这些文件的大小。如需更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南 中的日志轮转。https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-viewing_and_managing_log_files#s2-log_rotation
日志消息所需的准确存储量取决于您的安装和设置。
NFS 挂载的 SELinux 注意事项
当使用 NFS 共享挂载 /var/lib/pulp
目录时,SELinux 会阻止同步进程。要避免这种情况,请通过将以下行添加到 /etc/fstab
指定文件系统表中的 /var/lib/pulp
目录的 SELinux 上下文:
nfs.example.com:/nfsshare /var/lib/pulp nfs context="system_u:object_r:var_lib_t:s0" 1 2
如果已经挂载了 NFS 共享,使用上述配置重新挂载它,并输入以下命令:
# restorecon -R /var/lib/pulp
重复的软件包
在不同存储库中重复的软件包仅在磁盘上存储一次。包含重复软件包的额外软件仓库需要较少的额外存储。批量存储驻留在 /var/lib/pulp/
目录中。这些端点不能手动配置。确保 /var
文件系统中存在存储,以防止存储问题。
Software Collections
软件集合安装在 /opt/rh/
和 /opt/theforeman/
目录中。
对于 /opt
目录,需要 root 用户写入和执行权限。
符号链接
您不能为 /var/lib/pulp/
使用符号链接。
同步的 RHEL ISO
如果您计划将 RHEL 内容 ISO 与 Satellite 同步,请注意红帽企业 Linux 的所有次要版本也会同步。您必须计划在 Satellite 上有足够的存储来管理它。
1.4. 支持的操作系统
您可以从磁盘、本地 ISO 镜像、Kickstart 或者红帽支持的任何其他方法安装操作系统。Red Hat Capsule Server 仅在安装了胶囊服务器时可用的 Red Hat Enterprise Linux 7 服务器的最新版本中被支持。以前的 Red Hat Enterprise Linux 版本(包括 EUS 或 z-stream)不被支持。
安装程序支持以下操作系统,具有软件包,并测试用于部署 Satellite 的测试:
操作系统 | 架构 | 备注 |
Red Hat Enterprise Linux 7 | 仅限 x86_64 |
在安装 Satellite 之前,请应用所有操作系统更新(如果可能)。
红帽胶囊式服务器需要通过 @Base
软件包组安装红帽企业 Linux 安装,无需进行其他软件包集修改,而且不直接处理服务器直接操作所需的第三方配置或软件。这个限制包括强化和其他非红帽安全软件。如果您需要基础架构中的此类软件,请先安装和验证完整的胶囊服务器,然后在添加任何非红帽软件前创建系统的备份。
在全新的调配的系统上安装胶囊服务器。
不要将胶囊服务器注册到 Red Hat Content Delivery Network (CDN)。
除了运行胶囊服务器外,红帽不支持将系统用于任何其他操作。
1.5. 端口和防火墙要求
若要让卫星架构的组件进行通信,请确保在基础操作系统上打开和释放所需的网络端口。您还必须确保在任何基于网络的防火墙上打开所需的网络端口。
如果在安装开始前,如果卫星服务器和胶囊服务器之间的端口没有打开,则胶囊服务器的安装会失败。
使用这些信息配置任何基于网络的防火墙。请注意,某些云解决方案必须经过特别配置,以允许计算机之间的通信,因为它们隔离计算机与基于网络的防火墙类似。如果您使用基于应用程序的防火墙,请确保基于应用程序的防火墙允许表中列出的所有应用程序以及防火墙已知。如果可能,禁用应用程序检查并允许根据协议打开的端口通信。
集成胶囊
卫星服务器具有集成胶囊,并且直接连接到卫星服务器的任何主机都是本节末尾的卫星客户端。这包括运行胶囊服务器的基本操作系统。
Capsule 客户端
作为胶囊的客户端,卫星集成胶囊以外的主机不需要访问卫星服务器。有关卫星拓扑和移植端口连接的的更多信息,请参阅 规划红帽卫星 6 的胶囊 联网。
所需端口可以根据您的配置进行更改。
下表指定目标端口和网络流量的方向:
目标端口 | 协议 | Service | 源 | 必需用于 | Description |
---|---|---|---|---|---|
53 | TCP 和 UDP | DNS | DNS 服务器和客户端 | 名称解析 | DNS (可选) |
67 | UDP | DHCP | 客户端 | 动态 IP | DHCP (可选) |
69 | UDP | TFTP | 客户端 | TFTP 服务器(可选) | |
443, 80 | TCP | HTTPS、HTTP | 客户端 | 内容接收 | 内容 |
443, 80 | TCP | HTTPS、HTTP | 客户端 | 内容主机注册 | Capsule CA RPM 安装 |
443 | TCP | HTTPS | Red Hat Satellite | 内容镜像 | 管理 |
443 | TCP | HTTPS | Red Hat Satellite | Capsule API | 智能代理功能 |
5647 | TCP | AMQP | 客户端 | goferd 消息总线 | 将消息转发到客户端(可选) Katello 代理用于与 Qpid 分配程序通信 |
8000 | TCP | HTTP | 客户端 | 调配模板 | 客户端安装程序、iPXE 或 UEFI HTTP 引导的模板检索 |
8000 | TCP | HTTP | 客户端 | PXE 引导 | 安装 |
8140 | TCP | HTTPS | 客户端 | Puppet 代理 | 客户端更新(可选) |
8443 | TCP | HTTPS | 客户端 | 内容主机注册 | 开始 上传事实 发送安装的软件包和追踪 |
9090 | TCP | HTTPS | 客户端 | OpenSCAP | 配置客户端 |
9090 | TCP | HTTPS | 发现的节点 | Discovery(发现) | 主机发现和置备 |
9090 | TCP | HTTPS | Red Hat Satellite | Capsule API | 胶囊功能 |
任何直接连接到卫星服务器的受管主机都是此上下文中的客户端,因为它是集成胶囊的客户端。这包括运行胶囊服务器的基本操作系统。
DHCP 胶囊将向子网中设置 DHCP IPAM 的子网执行 ICMP ping 和 TCP 回显连接,以找出是否考虑使用 IP 地址。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false
关闭此行为。
目标端口 | 协议 | Service | 目的地 | 必需用于 | Description |
---|---|---|---|---|---|
ICMP | ping | 客户端 | DHCP | 免费 IP 检查(可选) | |
7 | TCP | echo | 客户端 | DHCP | 免费 IP 检查(可选) |
22 | TCP | SSH | 目标主机 | 远程执行 | 运行任务 |
53 | TCP 和 UDP | DNS | 互联网上的 DNS 服务器 | DNS 服务器 | 解析 DNS 记录(可选) |
53 | TCP 和 UDP | DNS | DNS 服务器 | Capsule DNS | DNS 冲突验证(可选) |
68 | UDP | DHCP | 客户端 | 动态 IP | DHCP (可选) |
443 | TCP | HTTPS | Satellite | Capsule | Capsule 配置管理 模板检索 OpenSCAP 远程执行结果上传 |
443 | TCP | HTTPS | Red Hat Portal | SOS 报告 | 协助支持问题单(可选) |
443 | TCP | HTTPS | Satellite | 内容 | 同步 |
443 | TCP | HTTPS | Satellite | 客户端通信 | 将来自客户端的请求转发到 Satellite |
443 | TCP | HTTPS | Infoblox DHCP Server | DHCP 管理 | 使用 Infoblox 进行 DHCP 时,管理 DHCP 租期(可选) |
623 | 客户端 | 电源管理 | BMC On/Off/Cycle/Status | ||
5646 | TCP | AMQP | Satellite Server | Katello 代理 | 将消息转发到 Qpid 分配胶囊上的路由器(可选) |
7911 | TCP | DHCP, OMAPI | DHCP Server | DHCP |
DHCP 目标使用
ISC 和 |
8443 | TCP | HTTPS | 客户端 | Discovery(发现) | Capsule 将 reboot 命令发送到发现的主机(可选) |
不得拒绝 ICMP 到端口 7 UDP 和 TCP,但可以丢弃.DHCP Capsule 将 ECHO REQUEST 发送到客户端网络,以验证 IP 地址是否可用。任何响应都将阻止分配 IP 地址。
1.6. 启用从胶囊服务器到卫星服务器的连接
在卫星服务器上,您必须启用从胶囊服务器到卫星服务器的传入连接,并在重新启动后保持此规则。
先决条件
- 确保卫星服务器上的防火墙规则配置为启用客户端与卫星通信的连接,因为胶囊服务器是卫星服务器的客户端。有关更多信息,请参阅 从客户端启用从客户端到卫星服务器的连接( 从联网 安装卫星服务器 )。
流程
在卫星服务器上,输入以下命令打开胶囊的端口到卫星通信:
# firewall-cmd --add-port="5646/tcp"
使更改持久:
# firewall-cmd --runtime-to-permanent
1.7. 启用从卫星服务器和客户端到胶囊服务器的连接
在您要安装胶囊的基本操作系统上,您必须启用从卫星服务器和客户端到胶囊服务器的传入连接,并使这些规则在重新引导后仍然有效。
流程
在您要安装胶囊的基本操作系统上,输入以下命令打开卫星服务器和客户端与胶囊服务器通信的端口:
# firewall-cmd --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" --add-port="69/udp" \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="5647/tcp" \ --add-port="8000/tcp" --add-port="8140/tcp" \ --add-port="8443/tcp" --add-port="9090/tcp"
使更改持久:
# firewall-cmd --runtime-to-permanent
1.8. 验证防火墙设置
使用此流程验证您对防火墙设置的更改。
流程
输入以下命令:
# firewall-cmd --list-all
如需更多信息,请参阅 Red Hat Enterprise Linux 7 安全指南 开始使用 firewalld。
第 2 章 安装胶囊服务器
在安装胶囊服务器之前,您必须确保您的环境满足安装要求。如需更多信息,请参阅为安装准备环境。
2.1. 注册到卫星服务器
使用这个步骤注册您要在其中安装胶囊服务器的基本操作系统。
订阅清单先决条件
- 在卫星服务器上,必须安装清单,它必须包含您希望胶囊所属的组织的适当存储库。
- 清单必须包含您要安装胶囊的基本操作系统的存储库,以及您要连接到胶囊的任何客户端。
- 必须同步软件仓库。
如需有关清单和存储库的更多信息,请参阅 Red Hat Satellite 内容管理指南中的管理订阅。https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.10/html-single/content_management_guide/index#Managing_Subscriptions/
代理和网络先决条件
- 卫星服务器基础操作系统必须能够解析胶囊基础操作系统的主机名,反之亦然。
- 不必将要安装的胶囊服务器安装基础操作系统配置为使用代理连接到红帽 CDN。
- 您必须相应地配置主机和基于网络的防火墙。如需更多信息,请参阅 端口和防火墙要求。
- 您必须具有卫星服务器用户名和密码。如需更多信息,请参阅在 管理 Red Hat Satellite 中配置外部身份验证。https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.10/html-single/administering_red_hat_satellite/index#Configuring_External_Authentication_admin
流程
下载
katello-ca-consumer-latest.noarch.rpm
软件包到您要在其上安装胶囊的基本操作系统。使用者 RPM 将主机配置为从卫星中指定的内容源下载内容。# curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
安装
katello-ca-consumer-latest.noarch.rpm
软件包:# yum localinstall katello-ca-consumer-latest.noarch.rpm
将胶囊式基础操作系统注册到您希望胶囊所属的环境。使用激活码来简化环境。有关激活码的更多信息,请参阅 内容管理指南中的 管理激活码。
# subscription-manager register \ --activationkey=example_activation_key \ --org=My_Organization
2.2. 附加 Satellite 基础架构订阅
如果您在红帽客户门户网站中启用简单内容访问(SCA),请跳过此部分。
注册胶囊服务器后,您必须识别您的订阅池 ID 并附加可用订阅。红帽卫星基础架构订阅提供对红帽卫星、红帽企业 Linux 和红帽软件集合(RHSCL)内容的访问。这是唯一需要的订阅。
Red Hat Satellite Infrastructure 包含在所有包括 Satellite 的订阅(以前称为 智能管理)。如需更多信息,请参阅红帽知识库中的 Satellite 基础架构订阅 MCT3718 MCT3719。
如果订阅尚未附加到系统,则订阅被分类为可用。如果您无法找到可用的 Satellite 订阅,请参阅红帽知识库解决方案 如何识别在 Red Hat Subscription Manager 下注册的客户端使用哪些订阅? 运行脚本以查看您的订阅是否被其他系统消耗。
流程
确定 Satellite 基础架构订阅的池 ID:
# subscription-manager list --all --available --matches 'Red Hat Satellite Infrastructure Subscription'
该命令显示类似如下的输出:
Subscription Name: Red Hat Satellite Infrastructure Subscription Provides: Red Hat Satellite Red Hat Software Collections (for RHEL Server) Red Hat CodeReady Linux Builder for x86_64 Red Hat Ansible Engine Red Hat Enterprise Linux Load Balancer (for RHEL Server) Red Hat Red Hat Software Collections (for RHEL Server) Red Hat Enterprise Linux Server Red Hat Satellite Capsule Red Hat Enterprise Linux for x86_64 Red Hat Enterprise Linux High Availability for x86_64 Red Hat Satellite Red Hat Satellite 5 Managed DB Red Hat Satellite 6 Red Hat Discovery SKU: MCT3719 Contract: 11878983 Pool ID: 8a85f99968b92c3701694ee998cf03b8 Provides Management: No Available: 1 Suggested: 1 Service Level: Premium Service Type: L1-L3 Subscription Type: Standard Ends: 03/04/2020 System Type: Physical
- 记录订阅池 ID。您的订阅池 ID 与提供的示例不同。
将 Satellite Infrastructure 订阅附加到运行您的胶囊服务器的基本操作系统:
# subscription-manager attach --pool=pool_id
该命令显示类似如下的输出:
Successfully attached a subscription for: Red Hat Satellite Infrastructure Subscription
可选:验证是否已附加 Satellite 基础架构订阅:
# subscription-manager list --consumed
2.3. 配置软件仓库
使用此流程启用安装胶囊服务器所需的存储库。
流程
禁用所有软件仓库:
# subscription-manager repos --disable "*"
启用以下软件仓库:
# subscription-manager repos --enable=rhel-7-server-rpms \ --enable=rhel-7-server-satellite-capsule-6.10-rpms \ --enable=rhel-7-server-satellite-maintenance-6-rpms \ --enable=rhel-7-server-satellite-tools-6.10-rpms \ --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-ansible-2.9-rpms
注意如果您要将胶囊服务器安装为托管在 Red Hat Virtualization 上的虚拟机,还必须启用 Red Hat Common 存储库,并安装 Red Hat Virtualization 客户机代理和驱动程序。如需更多信息,请参阅 《虚拟机管理指南》 中的 在红帽企业 Linux 上安装客户机代理和驱动程序。
清除任何元数据:
# yum clean all
可选:验证是否启用了所需的存储库:
# yum repolist enabled
2.4. 安装胶囊服务器软件包
在安装胶囊服务器软件包前,您必须更新基础操作系统上安装的所有软件包。
流程
要安装胶囊服务器,请完成以下步骤:
更新所有软件包:
# yum update
安装
satellite-capsule
软件包:# yum install satellite-capsule
2.5. 使用 chronyd 同步系统时钟
要最小化时间偏差的效果,您必须在要安装带网络时间协议(NTP)服务器的基本操作系统上同步系统时钟。如果基本操作系统时钟配置不正确,证书验证可能会失败。
有关 chrony
套件的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员 指南中的使用 chrony Suite 配置 NTP。
流程
安装
chrony
软件包:# yum install chrony
启动并启用
chronyd
服务:# systemctl start chronyd # systemctl enable chronyd
2.6. 使用 SSL 证书配置胶囊服务器
红帽卫星使用 SSL 证书实现卫星服务器、外部胶囊服务器和所有主机之间的加密通信。根据您的机构的要求,您必须为胶囊服务器配置默认或自定义证书。
- 如果使用默认 SSL 证书,还必须使用不同的默认 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.1 节 “使用默认 SSL 证书配置胶囊服务器”。
- 如果使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.2 节 “使用自定义 SSL 证书配置胶囊服务器”。
2.7. 在卫星 Web UI 中将正确的组织和位置分配给胶囊服务器
安装胶囊服务器软件包后,如果有多个组织或位置,您必须将正确的组织和位置分配给胶囊,以便在卫星 Web UI 中可见胶囊。
流程
- 登录卫星 Web UI。
- 从屏幕左上角的 Organization 列表中,选择 Any Organization。
- 从屏幕左上角的 Location 列表中,选择 Any Location。
- 进入 Hosts > All Hosts 并选择 Capsule Server。
- 在 Select Actions 列表中,选择 Assign Organization。
- 从 Organization 列表中,选择要分配此胶囊的组织。
- 单击 Mismatch 上的 Fix Organization。
- 点 Submit。
- 选择胶囊服务器。在 Select Actions 列表中,选择 Assign Location。
- 从 Location 列表中,选择要分配此胶囊的位置。
- 单击 Mismatch 上的 Fix Location。
- 点 Submit。
- 导航到 Administer > Organizations,再点击已分配给胶囊的组织。
- 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit。
- 导航到 Administer > Locations,再点击已分配给胶囊的位置。
- 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit。
验证
另外,您可以验证胶囊服务器是否在卫星 Web UI 中正确列出。
- 从 Organization 列表中选择机构。
- 从 Location 列表中选择位置。
- 进入 Hosts > All Hosts。
- 导航到 Infrastructure > Capsules。
红帽卫星使用 SSL 证书实现卫星服务器、外部胶囊服务器和所有主机之间的加密通信。根据您的机构的要求,您必须为胶囊服务器配置默认或自定义证书。
- 如果使用默认 SSL 证书,还必须使用不同的默认 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.1 节 “使用默认 SSL 证书配置胶囊服务器”。
- 如果使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.2 节 “使用自定义 SSL 证书配置胶囊服务器”。
2.7.1. 使用默认 SSL 证书配置胶囊服务器
使用本节,为胶囊服务器配置由卫星服务器默认证书颁发机构(CA)签名的 SSL 证书。
先决条件
- 胶囊服务器注册到卫星服务器。如需更多信息,请参阅 注册到卫星服务器。
- 已安装胶囊服务器软件包。如需更多信息,请参阅安装胶囊服务器软件包。
流程
在卫星服务器上,若要为您的胶囊服务器存储所有源证书文件,创建一个只能被 root 用户访问的目录,如
/
:root
/capsule_cert# mkdir /root/capsule_cert
在 Satellite 服务器上,为您的 Capsule 服务器生成
/root/capsule_cert/prompt.example.com-certs.tar
证书存档:# capsule-certs-generate \ --foreman-proxy-fqdn capsule.example.com \ --certs-tar /root/capsule_cert/capsule.example.com-certs.tar
保留
satellite-installer
命令的副本,供capsule-certs-generate
命令返回,以将证书部署到您的胶囊服务器。capsule-certs-generate
输出示例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \ --puppet-server-foreman-url "https://satellite.example.com"
在卫星服务器上,将证书归档文件复制到您的胶囊服务器中:
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
在胶囊服务器上,要部署证书,请输入
capsule-certs-generate
命令返回的satellite-installer
命令。如果尚未打开到 Satellite 的网络连接或端口,您可以将
--foreman-proxy-register-in-foreman
选项设置为false
,以防止胶囊尝试连接到 Satellite 并报告错误。正确配置网络和防火墙时,通过此选项设置来再次运行安装程序。重要部署证书后,请勿删除证书存档文件。例如,在升级胶囊服务器时,需要它。
2.7.2. 使用自定义 SSL 证书配置胶囊服务器
如果将卫星服务器配置为使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个外部胶囊服务器。
要使用自定义证书配置您的胶囊服务器,请在每个胶囊服务器上完成以下步骤:
2.7.2.1. 为胶囊服务器创建自定义 SSL 证书
在卫星服务器上,为您的胶囊服务器创建自定义证书。如果您已经有适用于胶囊服务器的自定义 SSL 证书,请跳过这个过程。
使用自定义证书配置胶囊服务器时,请注意以下注意事项:
- 您必须将 Privacy-Enhanced Mail (PEM)编码用于 SSL 证书。
- 您不能对卫星服务器和胶囊服务器使用相同的证书。
- 相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
流程
要存储所有源证书文件,请创建一个只可由
root
用户访问的目录。# mkdir /root/capsule_cert
创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已经拥有此胶囊服务器的私钥,请跳过这一步。
# openssl genrsa -out
/root/capsule_cert/capsule_cert_key.pem
4096为证书签名请求(CSR)创建
/root/capsule_cert/openssl.cnf
配置文件,并包含以下内容:[ req ] req_extensions = v3_req distinguished_name = req_distinguished_name x509_extensions = usr_cert prompt = no [ req_distinguished_name ] 1 C = Country Name (2 letter code) ST = State or Province Name (full name) L = Locality Name (eg, city) O = Organization Name (eg, company) OU = The division of your organization handling the certificate CN = capsule.example.com 2 [ v3_req ] basicConstraints = CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection subjectAltName = @alt_names [ usr_cert ] basicConstraints=CA:FALSE nsCertType = client, server, email keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection nsComment = "OpenSSL Generated Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer [ alt_names ] DNS.1 = capsule.example.com 3
生成证书签名请求(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
将证书签名请求发送到证书颁发机构。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
提交请求时,指定证书的 lifespan。发送证书请求的方法会有所不同,因此请查阅证书颁发机构来获得首选方法。为响应请求,预计可在单独的文件中接收证书颁发机构捆绑包和签名证书。
2.7.2.2. 将自定义 SSL 证书部署到胶囊服务器
使用此流程为胶囊服务器配置由证书颁发机构签名的自定义 SSL 证书。satellite-installer
命令( capsule-certs-generate
命令返回)是每个胶囊服务器是唯一的。不要在多个胶囊服务器上使用同样的命令。
先决条件
- 卫星服务器配置了自定义证书。有关更多信息,请参阅从连接网络 安装卫星服务器 中的使用自定义 SSL 证书 配置卫星服务器。
- 胶囊服务器注册到卫星服务器。如需更多信息,请参阅 注册到卫星服务器。
- 已安装胶囊服务器软件包。如需更多信息,请参阅安装胶囊服务器软件包。
流程
在卫星服务器上,验证自定义 SSL 证书输入文件:
# katello-certs-check \ -t capsule -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
如果您在
/root/capsule_cert/openssl.cnf
配置文件中为证书的通用名称CN =
设置了通配符值*
,您必须将-t capsule
选项添加到katello-certs-check
命令中。如果命令成功,它会返回两个
capsule-certs-generate
命令,其中一个命令必须用来为您的胶囊服务器生成证书存档文件。要在 new-capsule.example.com 中使用证书,请运行以下命令:
capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \
要使用 existing-capsule.example.com 内的证书,请运行以下命令:
capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \ --certs-update-server
根据您的要求,在卫星服务器中输入为新的或现有
胶囊生成证书的 Capsule-certs-generate
命令。在某些情况下,katello-certs-check
命令的输出可能并不准确。因此,您必须遵循上述步骤,而不是命令输出。在这个命令中,将
$CAPSULE
更改为您的胶囊服务器的 FQDN。保留
satellite-installer
命令的副本,供capsule-certs-generate
命令返回,以将证书部署到您的胶囊服务器。capsule-certs-generate
输出示例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \ --puppet-server-foreman-url "https://satellite.example.com"
在卫星服务器上,将证书归档文件复制到您的胶囊服务器中:
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
在胶囊服务器上,要部署证书,请输入
capsule-certs-generate
命令返回的satellite-installer
命令。如果尚未打开到 Satellite 的网络连接或端口,您可以将
--foreman-proxy-register-in-foreman
选项设置为false
,以防止胶囊尝试连接到 Satellite 并报告错误。正确配置网络和防火墙时,通过此选项设置来再次运行安装程序。重要部署证书后,请勿删除证书存档文件。例如,在升级胶囊服务器时,需要它。
2.7.2.3. 将自定义 SSL 证书部署到主机
将胶囊服务器配置为使用自定义 SSL 证书后,您还必须在注册到此胶囊服务器的每个主机上安装 katello-ca-consumer
软件包。
流程
在每个主机上,安装
katello-ca-consumer
软件包:# yum localinstall \ http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm
第 3 章 在胶囊服务器上执行额外的配置
使用本章在胶囊服务器上配置其他设置。
3.1. 在外部胶囊上启用 Katello Agent
远程执行是管理内容主机上软件包的主要方法。要使用已弃用的 Katello Agent,必须在每个胶囊上启用它。
流程
要启用 Katello Agent 基础架构,请输入以下命令:
# satellite-installer --scenario capsule \ --foreman-proxy-content-enable-katello-agent=true
3.2. 在外部胶囊上启用 OpenSCAP
在卫星服务器和卫星服务器的集成胶囊上,默认启用 OpenSCAP。
要在外部胶囊上使用 OpenSCAP 插件和内容,您必须在每个胶囊上启用 OpenSCAP。
流程
要启用 OpenSCAP,请输入以下命令:
# satellite-installer --scenario capsule \ --enable-foreman-proxy-plugin-openscap
3.3. 在胶囊服务器中添加生命周期环境
如果您的胶囊服务器启用了内容功能,您必须添加一个环境,以便胶囊能够从卫星服务器同步内容,并为主机系统提供内容。
不要将 Library 生命周期环境分配给您的胶囊服务器,因为它在每次 CDN 更新存储库时触发自动胶囊同步。这可能会消耗胶囊上的多个系统资源,卫星和胶囊之间的网络带宽,以及胶囊上的可用磁盘空间。
您可以在卫星服务器或卫星 Web UI 中使用 Hammer CLI。
流程
- 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,然后选择您要向其添加生命周期的胶囊。
- 点 Edit,然后点 Life Cycle Environments 选项卡。
- 在左侧菜单中选择您要添加到胶囊的生命周期环境,然后单击 Submit。
- 要同步胶囊上的内容,请单击 Overview 选项卡,再单击 Synchronize。
选择 Optimized Sync 或 Complete Sync。
有关每种同步类型的定义,请参阅 恢复存储库。
CLI 过程
要显示所有胶囊服务器列表(在 Satellite 服务器中),请输入以下命令:
# hammer capsule list
请注意您要向其添加生命周期的胶囊胶囊 ID。
使用 ID,验证您的胶囊的详细信息:
# hammer capsule info --id capsule_id
要查看您的胶囊服务器可用的生命周期环境,请输入以下命令并记录 ID 和机构名称:
# hammer capsule content available-lifecycle-environments --id capsule_id
在您的胶囊服务器中添加生命周期环境:
# hammer capsule content add-lifecycle-environment \ --id capsule_id --organization "My_Organization" \ --lifecycle-environment-id lifecycle-environment_id
对您要添加到胶囊服务器的每个生命周期环境重复此操作。
将内容从卫星同步到胶囊。
要将 Satellite 服务器环境中的所有内容同步到胶囊服务器,请输入以下命令:
# hammer capsule content synchronize --id capsule_id
要将 Satellite Server 中的特定生命周期环境同步到胶囊服务器,请输入以下命令:
# hammer capsule content synchronize --id external_capsule_id \ --lifecycle-environment-id lifecycle-environment_id
3.4. 在受管主机上启用电源管理
要使用智能平台管理接口(IPMI)或类似的协议对受管主机执行电源管理任务,您必须在胶囊服务器中启用基板管理控制器(BMC)模块。
先决条件
- 所有受管主机都必须具有 BMC 类型的网络接口。胶囊服务器使用此 NIC 将适当的凭据传递给主机。如需更多信息,请参阅管理 主机中的添加基板管理控制器(BMC) 接口 。
流程
要启用 BMC,请输入以下命令:
# satellite-installer --scenario capsule \ --foreman-proxy-bmc "true" \ --foreman-proxy-bmc-default-provider "freeipmi"
3.5. 在胶囊服务器上配置 DNS、DHCP 和 TFTP
要在胶囊服务器上配置 DNS、DHCP 和 TFTP 服务,请使用 satellite-installer
命令以及适合您的环境的选项。要查看可配置的选项列表,请输入 satellite-installer --scenario satellite --help
命令。
对设置的任何更改都需要再次输入 satellite-installer
命令。您可以多次输入命令,每次使用更改的值更新所有配置文件。
要使用外部 DNS、DHCP 和 TFTP 服务,请参阅 第 4 章 使用外部服务配置胶囊服务器。
添加多主页 DHCP 详情
如果要使用多主页 DHCP,您必须通知安装程序。
先决条件
-
您必须为 DNS 服务器有正确的网络名称(
dns-interface
)。 -
您必须为 DHCP 服务器有正确的接口名称(
dhcp-interface
)。 - 请联系您的网络管理员以确保您具有正确的设置。
流程
输入
satellite-installer
命令,并适合您的环境。以下示例显示了配置完整置备服务:# satellite-installer --scenario capsule \ --foreman-proxy-dns true \ --foreman-proxy-dns-managed true \ --foreman-proxy-dns-interface eth0 \ --foreman-proxy-dns-zone example.com \ --foreman-proxy-dns-reverse 2.0.192.in-addr.arpa \ --foreman-proxy-dhcp true \ --foreman-proxy-dhcp-managed true \ --foreman-proxy-dhcp-interface eth0 \ --foreman-proxy-dhcp-additional-interfaces eth1 \ --foreman-proxy-dhcp-additional-interfaces eth2 \ --foreman-proxy-dhcp-range "192.0.2.100 192.0.2.150" \ --foreman-proxy-dhcp-gateway 192.0.2.1 \ --foreman-proxy-dhcp-nameservers 192.0.2.2 \ --foreman-proxy-tftp true \ --foreman-proxy-tftp-managed true \ --foreman-proxy-tftp-servername 192.0.2.3
有关配置 DHCP、DNS 和 TFTP 服务的更多信息,请参阅 《调配指南》 中的 配置网络服务 部分。
第 4 章 使用外部服务配置胶囊服务器
如果您不想在胶囊服务器上配置 DNS、DHCP 和 TFTP 服务,请使用本节配置胶囊服务器来处理外部 DNS、DHCP 和 TFTP 服务。
4.1. 使用外部 DNS 配置胶囊服务器
您可以使用外部 DNS 配置胶囊服务器。胶囊服务器使用 nsupdate
实用程序更新远程服务器上的 DNS 记录。
要永久保留任何更改,您必须输入 satellite-installer
命令以及适合您的环境的选项。
先决条件
- 您必须有配置了外部 DNS 服务器。
流程
解锁软件包以启用新软件包的安装:
# satellite-maintain packages unlock
安装 BIND 和实用程序软件包:
# yum install bind bind-utils
锁定软件包:
# satellite-maintain packages lock
将
/etc/rndc.key
文件从外部 DNS 服务器复制到胶囊服务器:# scp root@dns.example.com:/etc/rndc.key /etc/rndc.key
配置所有权、权限和 SELinux 上下文:
# restorecon -v /etc/rndc.key # chown -v root:named /etc/rndc.key # chmod -v 640 /etc/rndc.key
要测试
nsupdate
工具,请远程添加主机:# echo -e "server DNS_IP_Address\n \ update add aaa.virtual.lan 3600 IN A Host_IP_Address\n \ send\n" | nsupdate -k /etc/rndc.key # nslookup aaa.virtual.lan DNS_IP_Address # echo -e "server DNS_IP_Address\n \ update delete aaa.virtual.lan 3600 IN A Host_IP_Address\n \ send\n" | nsupdate -k /etc/rndc.key
手动将
foreman-proxy
用户分配给指定组
。通常,satellite-installer 可确保foreman-proxy
用户属于指定的 UNIX 组,但是在这种情况下,卫星不管理用户和组,因此您需要将foreman-proxy
用户手动分配给指定组。# usermod -a -G named foreman-proxy
输入
satellite-installer
命令,对/etc/foreman-proxy/settings.d/dns.yml
文件进行以下持久更改:# satellite-installer --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --foreman-proxy-dns-provider=nsupdate \ --foreman-proxy-dns-server="DNS_IP_Address" \ --foreman-proxy-keyfile=/etc/rndc.key \ --foreman-proxy-dns-ttl=86400
重启 foreman-proxy 服务:
# systemctl restart foreman-proxy
- 登录卫星服务器 Web UI。
- 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh。
- 将 DNS 服务与适当的子网和域关联。
4.2. 使用外部 DHCP 配置胶囊服务器
要使用外部 DHCP 配置胶囊服务器,您必须完成以下步骤:
4.2.1. 将外部 DHCP 服务器配置为用于胶囊服务器
要配置外部 DHCP 服务器以用于胶囊服务器,请在 Red Hat Enterprise Linux 服务器中安装 ISC DHCP 服务和 Berkeley Internet Name Domain (BIND)软件包。您还必须将 DHCP 配置和租期文件与胶囊服务器共享。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。
如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override
设置。这是必要的,因为卫星会在 TFTP 服务器上创建 grub2/
子目录的配置文件。如果禁用了 dhcp-no-override
设置,客户端会从根目录获取启动加载器及其配置,这可能会导致错误。
流程
在 Red Hat Enterprise Linux 服务器服务器中,安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)软件包:
# yum install dhcp bind
生成安全令牌:
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
因此,在当前目录中创建由两个文件组成的密钥对。
从密钥复制 secret 哈希:
# cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2
编辑所有子网的
dhcpd
配置文件并添加该密钥。以下是一个示例:# cat /etc/dhcp/dhcpd.conf default-lease-time 604800; max-lease-time 2592000; log-facility local7; subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.10 192.168.38.100; option routers 192.168.38.1; option subnet-mask 255.255.255.0; option domain-search "virtual.lan"; option domain-name "virtual.lan"; option domain-name-servers 8.8.8.8; } omapi-port 7911; key omapi_key { algorithm HMAC-MD5; secret "jNSE5YI3H1A8Oj/tkV4...A2ZOHb6zv315CkNAY7DMYYCj48Umw=="; }; omapi-key omapi_key;
请注意,
选项路由器
值是您要用于外部 DHCP 服务的卫星或胶囊 IP 地址。- 从在其中创建的目录中删除这两个密钥文件。
在卫星服务器上,定义各个子网。暂时不要为定义的子网设置 DHCP 胶囊。
要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在卫星 Web UI 中将保留范围定义为 192.168.38.101 到 192.168.38.250。
配置外部对 DHCP 服务器的防火墙:
# firewall-cmd --add-service dhcp \ && firewall-cmd --runtime-to-permanent
在卫星服务器上,确定
foreman
用户的 UID 和 GID:# id -u foreman 993 # id -g foreman 990
在 DHCP 服务器上,使用与上一步中确定相同的 ID 创建
foreman
用户和组:# groupadd -g 990 foreman # useradd -u 993 -g 990 -s /sbin/nologin foreman
为确保配置文件可以访问,请恢复读取和执行标志:
# chmod o+rx /etc/dhcp/ # chmod o+r /etc/dhcp/dhcpd.conf # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
启动 DHCP 服务:
# systemctl start dhcpd
使用 NFS 导出 DHCP 配置和租期文件:
# yum install nfs-utils # systemctl enable rpcbind nfs-server # systemctl start rpcbind nfs-server nfs-lock nfs-idmapd
为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:
# mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
要为创建的目录创建挂载点,请在
/etc/fstab
文件中添加以下行:/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
在
/etc/fstab
中挂载文件系统:# mount -a
确保
/etc/exports
中存在以下行:/exports 192.168.38.1(rw,async,no_root_squash,fsid=0,no_subtree_check) /exports/etc/dhcp 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide) /exports/var/lib/dhcpd 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide)
请注意,您输入的 IP 地址是卫星或胶囊 IP 地址,您要用于外部 DHCP 服务。
重新载入 NFS 服务器:
# exportfs -rva
配置 DHCP omapi 端口 7911 的防火墙:
# firewall-cmd --add-port="7911/tcp" \ && firewall-cmd --runtime-to-permanent
可选:配置对 NFS 外部访问的防火墙。客户端使用 NFSv3 配置。
# firewall-cmd --zone public --add-service mountd \ && firewall-cmd --zone public --add-service rpc-bind \ && firewall-cmd --zone public --add-service nfs \ && firewall-cmd --runtime-to-permanent
4.2.2. 使用外部 DHCP 服务器配置胶囊服务器
您可以使用外部 DHCP 服务器配置胶囊服务器。
前提条件
- 确保您配置了外部 DHCP 服务器,并且已与胶囊服务器共享 DHCP 配置和租期文件。更多信息请参阅 第 4.2.1 节 “将外部 DHCP 服务器配置为用于胶囊服务器”。
流程
安装
nfs-utils
工具:# yum install nfs-utils
为 NFS 创建 DHCP 目录:
# mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
更改文件所有者:
# chown -R foreman-proxy /mnt/nfs
验证与 NFS 服务器和远程过程调用(RPC)通信路径的通信:
# showmount -e DHCP_Server_FQDN # rpcinfo -p DHCP_Server_FQDN
在
/etc/fstab
文件中添加以下几行:DHCP_Server_FQDN:/exports/etc/dhcp /mnt/nfs/etc/dhcp nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcp_etc_t:s0" 0 0 DHCP_Server_FQDN:/exports/var/lib/dhcpd /mnt/nfs/var/lib/dhcpd nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcpd_state_t:s0" 0 0
在
/etc/fstab
上挂载文件系统:# mount -a
要验证
foreman-proxy
用户可以访问通过网络共享的文件,显示 DHCP 配置和租期文件:# su foreman-proxy -s /bin/bash bash-4.2$ cat /mnt/nfs/etc/dhcp/dhcpd.conf bash-4.2$ cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases bash-4.2$ exit
输入
satellite-installer
命令,对/etc/foreman-proxy/settings.d/dhcp.yml
文件进行以下持久更改:# satellite-installer --foreman-proxy-dhcp=true \ --foreman-proxy-dhcp-provider=remote_isc \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-config /mnt/nfs/etc/dhcp/dhcpd.conf \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-leases /mnt/nfs/var/lib/dhcpd/dhcpd.leases \ --foreman-proxy-plugin-dhcp-remote-isc-key-name=omapi_key \ --foreman-proxy-plugin-dhcp-remote-isc-key-secret=jNSE5YI3H1A8Oj/tkV4...A2ZOHb6zv315CkNAY7DMYYCj48Umw== \ --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911 \ --enable-foreman-proxy-plugin-dhcp-remote-isc \ --foreman-proxy-dhcp-server=DHCP_Server_FQDN
重启
foreman-proxy
服务:# systemctl restart foreman-proxy
- 登录卫星服务器 Web UI。
- 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh。
- 将 DHCP 服务与适当的子网和域关联。
4.3. 使用外部 TFTP 配置胶囊服务器
您可以使用外部 TFTP 服务配置胶囊服务器。
流程
为 NFS 创建 TFTP 目录:
# mkdir -p /mnt/nfs/var/lib/tftpboot
在
/etc/fstab
文件中,添加以下行:TFTP_Server_IP_Address:/exports/var/lib/tftpboot /mnt/nfs/var/lib/tftpboot nfs rw,vers=3,auto,nosharecache,context="system_u:object_r:tftpdir_rw_t:s0" 0 0
在
/etc/fstab
中挂载文件系统:# mount -a
输入
satellite-installer
命令,对/etc/foreman-proxy/settings.d/tftp.yml
文件进行以下持久更改:# satellite-installer --foreman-proxy-tftp=true \ --foreman-proxy-tftp-root /mnt/nfs/var/lib/tftpboot
如果 TFTP 服务在与 DHCP 服务不同的服务器上运行,请使用 TFTP 服务运行的服务器的 FQDN 或 IP 地址更新
tftp_servername
设置:# satellite-installer --foreman-proxy-tftp-servername=TFTP_Server_FQDN
- 登录卫星服务器 Web UI。
- 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh。
- 将 TFTP 服务与适当的子网和域关联。
4.4. 使用外部 IdM DNS 配置胶囊服务器
当卫星服务器为主机添加 DNS 记录时,它会首先确定哪个胶囊为该域提供 DNS。然后,它将与配置为为您的部署提供 DNS 服务的胶囊通信并添加记录。此过程中不涉及主机。因此,您必须在卫星或胶囊上安装并配置 IdM 客户端,以便为您要使用 IdM 服务器管理的域提供 DNS 服务。
胶囊服务器可以配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务。有关红帽身份管理的更多信息,请参阅 Linux 域身份、身份验证和策略指南。
要将胶囊服务器配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务,请使用以下步骤之一:
要恢复到内部 DNS 服务,请使用以下步骤:
您不需要使用胶囊服务器来管理 DNS。当您使用 Satellite 的域注册功能(其中置备的主机自动注册到 IdM 时,ipa-client-install
脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置胶囊服务器是互斥的。有关配置域注册的更多信息,请参阅 管理 Red Hat Satellite 中的 Provisioned Hosts 的外部身份验证。
4.4.1. 使用 GSS-TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为使用通用安全服务算法进行在 RFC3645 中定义的 secret 密钥事务(GSS-TSIG)技术。要将 IdM 服务器配置为使用 GSS-TSIG 技术,您必须在胶囊服务器基本操作系统上安装 IdM 客户端。
先决条件
流程
要使用 GSS-TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:
在 IdM 服务器中创建 Kerberos 主体
为从 IdM 管理员获取的帐户获取了一个 Kerberos ticket:
# kinit idm_user
为胶囊服务器创建新的 Kerberos 主体,以用于在 IdM 服务器中进行身份验证。
# ipa service-add capsule.example.com
安装和配置 IdM 客户端
在管理部署的 DNS 服务的 Satellite 或 Capsule 的基本操作系统上,安装
ipa-client
软件包:# satellite-maintain packages install ipa-client
运行安装脚本并根据屏幕提示来配置 IdM 客户端:
# ipa-client-install
获取Kerberos ticket:
# kinit admin
删除任何预先存在的
keytab
:# rm /etc/foreman-proxy/dns.keytab
获取此系统的
keytab
:# ipa-getkeytab -p capsule/satellite.example.com@EXAMPLE.COM \ -s idm1.example.com -k /etc/foreman-proxy/dns.keytab
注意当在服务中使用与原始系统相同的主机名添加 keytab 系统时,添加
r
选项以防止生成新凭证并在原始系统中呈现凭证无效。对于
dns.keytab
文件,请将组和拥有者设置为foreman-proxy
:# chown foreman-proxy:foreman-proxy /etc/foreman-proxy/dns.keytab
可选: 要验证
keytab
文件是否有效,请输入以下命令:# kinit -kt /etc/foreman-proxy/dns.keytab \ capsule/satellite.example.com@EXAMPLE.COM
在 IdM web UI 中配置 DNS 区域
创建并配置您要管理的区域:
- 导航到 Network Services > DNS > DNS Zones。
-
选择 Add 并输入区名称。例如:
example.com
。 - 点 Add and Edit。
点 Settings 选项卡并在 BIND 更新策略 框中,将以下内容添加到分号分开的列表:
grant capsule/047satellite.example.com@EXAMPLE.COM wildcard * ANY;
- 将 Dynamic update 设置为 True。
- 启用 允许 PTR 同步。
- 点 Save 保存更改。
创建并配置反向区:
- 导航到 Network Services > DNS > DNS Zones。
- 点 Add。
- 选择 Reverse zone IP 网络,并以 CIDR 格式添加网络地址以启用反向查找。
- 点 Add and Edit。
点 Settings 选项卡并在 BIND 更新策略 框中,将以下内容添加到分号分开的列表:
grant capsule\047satellite.example.com@EXAMPLE.COM wildcard * ANY;
- 将 Dynamic update 设置为 True。
- 点 Save 保存更改。
配置管理域的 DNS 服务的卫星或胶囊服务器
使用
satellite-installer
命令配置管理域的 DNS 服务的 Satellite 或 Capsule:在 Satellite 上输入以下命令:
satellite-installer --scenario satellite \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=true \ --foreman-proxy-dns-provider=nsupdate_gss \ --foreman-proxy-dns-server="idm1.example.com" \ --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \ --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab \ --foreman-proxy-dns-reverse="55.168.192.in-addr.arpa" \ --foreman-proxy-dns-zone=example.com \ --foreman-proxy-dns-ttl=86400
在 Capsule 上输入以下命令:
satellite-installer --scenario capsule \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=true \ --foreman-proxy-dns-provider=nsupdate_gss \ --foreman-proxy-dns-server="idm1.example.com" \ --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \ --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab \ --foreman-proxy-dns-reverse="55.168.192.in-addr.arpa" \ --foreman-proxy-dns-zone=example.com \ --foreman-proxy-dns-ttl=86400
重启 Satellite 或 Capsule 的 Proxy 服务。
# systemctl restart foreman-proxy
运行 satellite-installer
命令对胶囊配置进行任何更改后,您必须在卫星 Web UI 中更新每个受影响的胶囊的配置。
在卫星 Web UI 中更新配置
- 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh。
配置域:
- 导航到 Infrastructure > Domains 并选择域名。
- 在 Domain 选项卡中,确保将 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 导航到 Infrastructure > Subnets 并选择子网名称。
- 在 子网 选项卡中,将 IPAM 设置为 None。
- 在 Domains 选项卡中,选择您要使用 IdM 服务器管理的域。
- 在 Capsules 选项卡中,确保 Reverse DNS Capsule 设置为连接子网的胶囊。
- 单击 Submit 以保存更改。
4.4.2. 使用 TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为对使用 rndc.key
密钥文件进行身份验证的 DNS (TSIG)技术使用 secret 密钥事务身份验证。TSIG 协议在 RFC2845 中定义。
先决条件
流程
要使用 TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:
为 IdM 服务器中的 DNS 区启用外部更新
在 IdM 服务器中,将以下内容添加到
/etc/named.conf
文件的顶部:######################################################################## include "/etc/rndc.key"; controls { inet _IdM_Server_IP_Address_ port 953 allow { _Satellite_IP_Address_; } keys { "rndc-key"; }; }; ########################################################################
重新载入
命名的
服务以使更改生效:# systemctl reload named
在 IdM web UI 中,进入 Network Services > DNS > DNS Zones 并点区的名称。在 Settings 选项卡中,应用以下更改:
在
BIND 更新策略
框中添加以下内容:grant "rndc-key" zonesub ANY;
- 将 Dynamic update 设置为 True。
- 点 Update 保存更改。
将
/etc/rndc.key
文件从 IdM 服务器复制到 Satellite 服务器的基本操作系统。输入以下命令:# scp /etc/rndc.key root@satellite.example.com:/etc/rndc.key
要为
rndc.key
文件设置正确的所有权、权限和 SELinux 上下文,请输入以下命令:# restorecon -v /etc/rndc.key # chown -v root:named /etc/rndc.key # chmod -v 640 /etc/rndc.key
手动将
foreman-proxy
用户分配给指定组
。通常,satellite-installer 可确保foreman-proxy
用户属于指定的 UNIX 组,但是在这种情况下,卫星不管理用户和组,因此您需要将foreman-proxy
用户手动分配给指定组。# usermod -a -G named foreman-proxy
在 Satellite 服务器中,输入以下
satellite-installer
命令,将 Satellite 配置为使用外部 DNS 服务器:# satellite-installer --scenario satellite \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --foreman-proxy-dns-provider=nsupdate \ --foreman-proxy-dns-server="IdM_Server_IP_Address" \ --foreman-proxy-keyfile=/etc/rndc.key \ --foreman-proxy-dns-ttl=86400
在 IdM 服务器中测试到 DNS 区的外部更新
确保 Satellite Server 中的
/etc/rndc.key
文件中的键是 IdM 服务器中使用的相同密钥文件:key "rndc-key" { algorithm hmac-md5; secret "secret-key=="; };
在卫星服务器上,为主机创建测试 DNS 条目。例如,在位于
192.168.25.1
的 IdM 服务器上的 A 记录为192.168.25.20
的主机test.example.com
。# echo -e "server 192.168.25.1\n \ update add test.example.com 3600 IN A 192.168.25.20\n \ send\n" | nsupdate -k /etc/rndc.key
在 Satellite 服务器中测试 DNS 条目:
# nslookup test.example.com 192.168.25.1 Server: 192.168.25.1 Address: 192.168.25.1#53 Name: test.example.com Address: 192.168.25.20
- 要在 IdM web UI 中查看条目,请导航至 Network Services > DNS > DNS Zones。单击区域的名称,再按名称搜索主机。
如果成功解决,请删除测试 DNS 条目:
# echo -e "server 192.168.25.1\n \ update delete test.example.com 3600 IN A 192.168.25.20\n \ send\n" | nsupdate -k /etc/rndc.key
确认删除了 DNS 条目:
# nslookup test.example.com 192.168.25.1
以上
nslookup
命令会失败,并在成功删除记录时返回SERVFAIL
错误消息。
4.4.3. 恢复到内部 DNS 服务
您可以将 恢复为使用卫星服务器和胶囊服务器作为您的 DNS 提供程序。您可以使用在配置外部 DNS 之前创建的应答文件的备份,或者您可以创建应答文件的备份。有关应答文件的更多信息,请参阅 配置卫星服务器。
流程
在您要配置的 Satellite 或 Capsule 服务器中为域管理 DNS 服务,请完成以下步骤:
将卫星或胶囊配置为 DNS 服务器
如果您在配置外部 DNS 前创建了应答文件的备份,请恢复回答文件,然后输入
satellite-installer
命令:# satellite-installer
如果您对应答文件有合适的备份,请现在创建应答文件的备份。要在不使用应答文件的情况下将 Satellite 或 Capsule 配置为 DNS 服务器,请在 Satellite 上输入以下
satellite-installer
命令以及每个受影响的胶囊:# satellite-installer \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=true \ --foreman-proxy-dns-provider=nsupdate \ --foreman-proxy-dns-server="127.0.0.1" \ --foreman-proxy-dns-tsig-principal="foremanproxy/satellite.example.com@EXAMPLE.COM" \ --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab
如需更多信息,请参阅在 胶囊服务器 上配置 DNS、DHCP 和 TFTP。
运行 satellite-installer
命令对胶囊配置进行任何更改后,您必须在卫星 Web UI 中更新每个受影响的胶囊的配置。
在卫星 Web UI 中更新配置
- 导航到 Infrastructure > Capsules。
- 对于您要更新的每个胶囊,请从 Actions 列表中选择 Refresh。
配置域:
- 进入 Infrastructure > Domains 并点您要配置的域名。
- 在 Domain 选项卡中,将 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 导航到 Infrastructure > Subnets 并选择子网名称。
- 在 Subnet 选项卡中,将 IPAM 设置为 DHCP 或内部数据库。
- 在 Domains 选项卡中,选择您要使用卫星或胶囊管理的域。
- 在 Capsules 选项卡中,将 Reverse DNS Capsule 设置为连接子网的胶囊。
- 单击 Submit 以保存更改。
附录 A. 胶囊服务器可扩展性注意事项
卫星服务器支持的最大胶囊服务器数量没有固定限制。测试的限制是具有 Red Hat Enterprise Linux 7 的卫星服务器上 2 个 vCPU 的 17 个胶囊服务器。但是,可扩展性高度变量,特别是管理 Puppet 客户端时。
在管理 Puppet 客户端时,胶囊服务器的可扩展性取决于 CPU 数量、run-interval 分发以及 Puppet 受管资源的数量。胶囊服务器在任何时间点上运行 100 个并发 Puppet 代理。运行超过 100 个并发 Puppet 代理会导致 503 HTTP 错误。
例如,假设 Puppet 代理运行均匀分布在运行期间任何单一点上达 100 个并发 Puppet 代理,则具有 4 个 CPU 的胶囊服务器最多可分配 1250-1600 Puppet 客户端,并且为每个 Puppet 客户端分配 10 个 Puppet 类。根据所需的 Puppet 客户端数量,卫星安装可以横向扩展胶囊服务器的数量来支持它们。
如果要在管理 Puppet 客户端时扩展胶囊服务器,则会进行以下假设:
- 没有外部 Puppet 客户端直接报告卫星 6 集成的胶囊。
- 所有其他 Puppet 客户端都直接报告到外部胶囊。
- 所有 Puppet 代理都有平均分布式运行时间隔。
从甚至分发中偏差会增加卫星服务器过载风险。应用 100 个并发请求的限值。
下表描述了使用推荐的 4 个 CPU 的可扩展性限制。
每个主机的 Puppet 管理资源 | run-Interval Distribution |
---|---|
1 | 3000-2500 |
10 | 2400-2000 |
20 | 1700-1400 |
下表描述了使用最少 2 个 CPU 的可扩展性限制。
每个主机的 Puppet 管理资源 | run-Interval Distribution |
---|---|
1 | 1700-1450 |
10 | 1500-1250 |
20 | 850-700 |