从断开连接的网络安装 Satellite 服务器
从断开连接的网络安装 Red Hat Satellite Server
摘要
第 1 章 为安装准备您的环境
在安装 Satellite 之前,请确保您的环境满足以下要求。
1.1. 系统要求
以下要求适用于网络的基本操作系统:
- x86_64 架构
- 最新版本的 Red Hat Enterprise Linux 7 Server
- 至少 4 核 2.0 GHz CPU
- 卫星服务器需要至少 20 GB RAM 才能正常工作。另外,我们推荐至少具有 4 GB 交换空间的 RAM。以 RAM 低于最小值运行的卫星可能无法正确运行。
- 唯一主机名,可以包含小写字母、数字、点(.)和连字符(-)
- 当前的 Red Hat Satellite 订阅
- 管理用户(root)访问权限
- 系统 umask 为 0022
- 使用完全限定域名进行完整正向和反向 DNS 解析
Satellite 只支持 UTF-8
编码。如果您的个人是美国的,并且您的语言是英语,请将 en_US.utf-8
设置为系统范围的区域设置。有关在 Red Hat Enterprise Linux 中 配置系统区域设置的更多信息,请参阅 配置系统本地指南。在安装卫星服务器前,请确保您的环境满足安装要求。
除了运行卫星服务器外,必须在全新调配的系统上安装卫星服务器,从而不提供其他功能。全新调配的系统不得具有外部身份提供程序提供的以下用户,以避免与 Satellite 服务器创建的本地用户冲突:
- Apache
- Foreman
- foreman-proxy
- postgres
- Pulp
- puppet
- puppetserver
- qdrouterd
- qpidd
- redis
- tomcat
认证的虚拟机监控程序
在支持运行 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 软件仓库同步进行测量。
1.2.1. Red Hat Enterprise Linux 7
目录 | 安装大小 | 运行时大小 |
---|---|---|
/var/log/ | 10 MB | 10 GB |
/var/opt/rh/rh-postgresql12/lib/pgsql | 100 MB | 20 GB |
/usr | 3 GB | 不适用 |
/opt | 3 GB | 不适用 |
/opt/puppetlabs | 500 MB | 不适用 |
/var/lib/pulp/ | 1 MB | 300 GB |
/var/lib/qpidd/ | 25 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/
使用符号链接。
1.4. 支持的操作系统
您可以从磁盘、本地 ISO 镜像、Kickstart 或者红帽支持的任何其他方法安装操作系统。只有在安装了 Satellite Server 6.10 时,仅在 Red Hat Enterprise Linux 7 服务器的最新版本上支持 Red Hat Satellite Server。以前的 Red Hat Enterprise Linux 版本(包括 EUS 或 z-stream)不被支持。
安装程序支持以下操作系统,具有软件包,并测试用于部署 Satellite 的测试:
操作系统 | 架构 | 备注 |
Red Hat Enterprise Linux 7 | 仅限 x86_64 |
在安装 Satellite 之前,请应用所有操作系统更新(如果可能)。
Red Hat Satellite Server 需要具有 @Base
软件包组的红帽企业 Linux 安装,无需其他软件包集修改,而且没有直接执行服务器直接操作所需的第三方配置或软件。这个限制包括强化和其他非红帽安全软件。如果您需要基础架构中的此类软件,请先安装和验证完整的卫星服务器,然后在添加任何非红帽软件前创建系统的备份。
在全新的调配的系统上安装卫星服务器。
除了运行卫星服务器之外,红帽不支持将系统用于任何其他操作。
1.5. 支持的浏览器
卫星支持最新版本的 Firefox 和 Google Chrome 浏览器。
卫星 Web UI 和命令行界面支持英语、葡萄牙语、简体中文、韩语、日语、意大利语、西班牙语、法语、法语和德语。
1.6. 端口和防火墙要求
若要让卫星架构的组件进行通信,请确保在基础操作系统上打开和释放所需的网络端口。您还必须确保在任何基于网络的防火墙上打开所需的网络端口。
使用这些信息配置任何基于网络的防火墙。请注意,某些云解决方案必须经过特别配置,以允许计算机之间的通信,因为它们隔离计算机与基于网络的防火墙类似。如果您使用基于应用程序的防火墙,请确保基于应用程序的防火墙允许表中列出的所有应用程序以及防火墙已知。如果可能,禁用应用程序检查并允许根据协议打开的端口通信。
集成胶囊
卫星服务器具有集成胶囊,并且直接连接到卫星服务器的任何主机都是本节末尾的卫星客户端。这包括运行胶囊服务器的基本操作系统。
Capsule 客户端
作为胶囊的客户端,卫星集成胶囊以外的主机不需要访问卫星服务器。如需有关卫星拓扑的更多信息,请参阅规划红帽卫星 6 的胶囊 联网。
所需端口可以根据您的配置进行更改。
下表指定目标端口和网络流量的方向:
目标端口 | 协议 | Service | 源 | 必需用于 | Description |
53 | TCP 和 UDP | DNS | DNS 服务器和客户端 | 名称解析 | DNS (可选) |
67 | UDP | DHCP | 客户端 | 动态 IP | DHCP (可选) |
69 | UDP | TFTP | 客户端 | TFTP 服务器(可选) | |
443 | TCP | HTTPS | Capsule | Red Hat Satellite API | 从胶囊通信 |
443, 80 | TCP | HTTPS、HTTP | 客户端 | 内容接收 | 内容 |
443, 80 | TCP | HTTPS、HTTP | Capsule | 内容接收 | 内容 |
443, 80 | TCP | HTTPS、HTTP | 客户端 | 内容主机注册 | Capsule CA RPM 安装 |
443 | TCP | HTTPS | Red Hat Satellite | 内容镜像 | 管理 |
443 | TCP | HTTPS | Red Hat Satellite | Capsule API | 智能代理功能 |
5646 | TCP | AMQP | Capsule | Katello 代理 | 转发消息到 Qpid 分配卫星上的路由器(可选) |
5910 - 5930 | TCP | HTTPS | 浏览器 | 计算资源的虚拟控制台 | |
8000 | TCP | HTTP | 客户端 | 调配模板 | 客户端安装程序、iPXE 或 UEFI HTTP 引导的模板检索 |
8000 | TCP | HTTPS | 客户端 | 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 胶囊执行 ICMP ping 或 TCP 回显连接尝试尝试设置 DHCP IPAM 的子网中的主机,以找出是否考虑使用 IP 地址。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false
关闭此行为。
目标端口 | 协议 | Service | 目的地 | 必需用于 | Description |
ICMP | ping | 客户端 | DHCP | 免费 IP 检查(可选) | |
7 | TCP | echo | 客户端 | DHCP | 免费 IP 检查(可选) |
22 | TCP | SSH | 目标主机 | 远程执行 | 运行任务 |
22, 16514 | TCP | SSH SSH/TLS | 计算资源 | 卫星发起的通信,用于 libvirt 中的计算资源 | |
53 | TCP 和 UDP | DNS | 互联网上的 DNS 服务器 | DNS 服务器 | 解析 DNS 记录(可选) |
53 | TCP 和 UDP | DNS | DNS 服务器 | Capsule DNS | DNS 冲突验证(可选) |
53 | TCP 和 UDP | DNS | DNS 服务器 | 编配 | DNS 冲突验证 |
68 | UDP | DHCP | 客户端 | 动态 IP | DHCP (可选) |
80 | TCP | HTTP | 远程存储库 | 内容同步 | 远程 yum 软件仓库 |
389, 636 | TCP | LDAP, LDAPS | 外部 LDAP 服务器 | LDAP |
只有在启用外部身份验证时才需要 LDAP 身份验证。当定义 |
443 | TCP | HTTPS | Satellite | Capsule | Capsule 配置管理 模板检索 OpenSCAP 远程执行结果上传 |
443 | TCP | HTTPS | Amazon EC2, Azure, Google GCE | 计算资源 | 虚拟机交互(query/create/destroy) (可选) |
443 | TCP | HTTPS | Capsule | 内容镜像 | 开始 |
443 | TCP | HTTPS | Infoblox DHCP Server | DHCP 管理 | 使用 Infoblox 进行 DHCP 时,管理 DHCP 租期(可选) |
623 | 客户端 | 电源管理 | BMC On/Off/Cycle/Status | ||
5000 | TCP | HTTPS | OpenStack 计算资源 | 计算资源 | 虚拟机交互(query/create/destroy) (可选) |
5646 | TCP | AMQP | Satellite Server | Katello 代理 | 将消息转发到 Qpid 分配胶囊上的路由器(可选) |
5671 | Qpid | 远程安装 | 向客户端发送 install 命令 | ||
5671 | 分配路由器(hub) | 远程安装 | 转发消息在 Satellite 上分配路由器 | ||
5671 | Satellite Server | 适用于 Katello 代理的远程安装 | 向客户端发送 install 命令 | ||
5671 | Satellite Server | 适用于 Katello 代理的远程安装 | 转发消息在 Satellite 上分配路由器 | ||
5900 - 5930 | TCP | SSL/TLS | 虚拟机监控程序 | noVNC 控制台 | 启动 noVNC 控制台 |
7911 | TCP | DHCP, OMAPI | DHCP Server | DHCP |
DHCP 目标使用
ISC 和 |
8443 | TCP | HTTPS | 客户端 | Discovery(发现) | Capsule 将 reboot 命令发送到发现的主机(可选) |
9090 | TCP | HTTPS | Capsule | Capsule API | 胶囊的管理 |
1.7. 启用从客户端到卫星服务器的连接
作为卫星服务器内部胶囊的客户端的胶囊和内容主机,需要通过基于卫星的主机的防火墙和任何基于网络的防火墙进行访问。
使用这个流程在安装 Satellite 的 Red Hat Enterprise Linux 7 系统上配置基于主机的防火墙,以启用来自客户端的传入连接,并使配置在系统重启后持久保留。有关使用的端口的更多信息,请参阅 端口和防火墙要求。
流程
要打开客户端到 Satellite 通信的端口,请在您要在其上安装 Satellite 的基本操作系统中输入以下命令:
# firewall-cmd \ --add-port="80/tcp" --add-port="443/tcp" \ --add-port="5647/tcp" --add-port="8000/tcp" \ --add-port="8140/tcp" --add-port="9090/tcp" \ --add-port="53/udp" --add-port="53/tcp" \ --add-port="67/udp" --add-port="69/udp"
使更改持久:
# firewall-cmd --runtime-to-permanent
1.8. 验证防火墙设置
使用此流程验证您对防火墙设置的更改。
流程
输入以下命令:
# firewall-cmd --list-all
如需更多信息,请参阅 Red Hat Enterprise Linux 7 安全指南 开始使用 firewalld。
1.9. 验证 DNS 解析
使用完全限定的域名验证完整的转发和反向 DNS 解析,以防止安装 Satellite 时出现问题。
流程
确保主机名和本地主机正确解析:
# ping -c1 localhost # ping -c1 `hostname -f` # my_system.domain.com
成功进行名称解析会导致输出类似如下:
# ping -c1 localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.043 ms --- localhost ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.043/0.043/0.043/0.000 ms # ping -c1 `hostname -f` PING hostname.gateway (XX.XX.XX.XX) 56(84) bytes of data. 64 bytes from hostname.gateway (XX.XX.XX.XX): icmp_seq=1 ttl=64 time=0.019 ms --- localhost.gateway ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.019/0.019/0.019/0.000 ms
为了避免使用静态和临时主机名的差异,请输入以下命令设置系统中的所有主机名:
# hostnamectl set-hostname name
如需更多信息,请参阅 Red Hat Enterprise Linux 7 网络指南中的 使用 hostnamectl 配置主机名。
名称解析对于 Satellite 6 的运作至关重要。如果卫星无法正确解析其完全限定域名,如内容管理、订阅管理和配置等任务将失败。
第 2 章 安装 Satellite Server
当所需的卫星服务器主机处于断开连接的环境中时,您可以使用外部计算机下载软件包的 ISO 镜像来安装卫星服务器,并将软件包复制到您要在其上安装卫星服务器的系统。对于任何其他情况,我们不建议使用这个方法,因为 ISO 镜像可能无法包含最新的更新、错误修复和功能。
使用以下步骤安装卫星服务器,执行初始配置和导入订阅清单。
继续之前,请考虑哪些清单与您的环境相关。如需有关清单的更多信息,请参阅 内容管理指南中的管理订阅。https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.10/html-single/content_management_guide/index#Managing_Subscriptions
您无法将卫星服务器注册到自己。
2.1. 下载二进制 DVD 镜像
使用此流程下载 Red Hat Enterprise Linux 和 Red Hat Satellite 的 ISO 镜像。
流程
- 访问红帽客户门户网站 并登录。
- 单击下载。
- 选择 Red Hat Enterprise Linux - 版本 7 及以下。
确保您的环境有正确的产品和版本。
- 产品变体 设置为 红帽企业 Linux 服务器。
- 版本 设置为您计划用作基础操作系统的产品的最新次要版本。
- 架构 被设置为 64 位版本。
- 在 Product Software 选项卡中,为最新的 Red Hat Enterprise Linux Server 版本下载 Binary DVD 镜像。
- 点 DOWNLOADS 并选择 Red Hat Satellite。
确保您的环境有正确的产品和版本。
- 产品变体 设置为 红帽卫星。
- Version 设置为您计划使用的产品的最新次版本。
- 在 Product Software 选项卡中,为最新的 Red Hat Satellite 版本下载 Binary DVD 镜像。
将 ISO 文件复制到 Satellite 基础操作系统或其他可访问的存储设备上的
/var/tmp
中。# scp localfile username@hostname:remotefile
2.2. 使用离线软件仓库配置 Base Operating System
使用这个步骤为 Red Hat Enterprise Linux 和 Red Hat Satellite ISO 镜像配置离线软件仓库。
流程
创建一个目录,以充当与基础操作系统版本对应的 ISO 文件的挂载点。
# mkdir /media/rhel7-server
将 Red Hat Enterprise Linux 的 ISO 镜像挂载到挂载点。
# mount -o loop rhel7-Server-DVD.iso /media/rhel7-server
复制 ISO 文件的存储库数据文件。
# cp /media/rhel7-server/media.repo /etc/yum.repos.d/rhel7-server.repo
编辑存储库数据文件并添加
baseurl
指令。baseurl=file:///media/rhel7-server/
验证存储库是否已配置。
# yum repolist
创建一个目录,以充当卫星服务器的 ISO 文件的挂载点。
# mkdir /media/sat6
将 Red Hat Satellite Server 的 ISO 镜像挂载到挂载点。
# mount -o loop sat6-DVD.iso /media/sat6
2.3. 从离线存储库安装 Satellite 软件包
使用这个步骤从离线存储库安装 Satellite 软件包。
流程
确保挂载 Red Hat Enterprise Linux 服务器和 Red Hat Satellite 的 ISO 镜像:
# findmnt -t iso9660
导入 Red Hat GPG 密钥:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
确定基本操作系统使用 Binary DVD 镜像更新:
# yum update
进入挂载 Satellite ISO 的目录:
# cd /media/sat6/
在挂载的目录中运行安装脚本:
# ./install_packages
如果您成功安装了 Satellite 软件包,则会显示以下消息:
Install is complete。请运行 satellite-installer --scenario satellite
。
2.4. 解决软件包依赖错误
如果在安装卫星服务器软件包过程中存在软件包依赖关系错误,您可以通过从红帽客户门户网站下载并安装软件包来解决错误。有关解析依赖关系错误的更多信息,请参阅 KCS 解决方案 如何使用 yum 输出来解决 yum 依赖项错误?
如果您成功安装了 Satellite 软件包,请跳过这个过程。
流程
- 访问红帽客户门户网站 并登录。
- 单击下载。
- 单击包含您要下载的软件包的产品。
- 确保您的环境有正确的 产品变体、Version 和 Architecture。
- 点 Packages 选项卡。
- 在 Search 字段中输入软件包名称。
- 点 软件包。
- 从 Version 列表中,选择软件包的版本。
- 在页面底部,点 Download Now。
- 将软件包复制到卫星基础操作系统中。
在卫星服务器上,切换到软件包所在的目录:
# cd /path-to-package/
在本地安装软件包:
# yum localinstall package_name
进入挂载 Satellite ISO 的目录:
# cd /media/sat6/
通过安装卫星服务器软件包,验证您已重新释放软件包依赖关系错误。如果还有其他软件包依赖关系错误,请重复这个过程。
# ./install_packages
如果您成功安装了 Satellite 软件包,则会显示以下消息:
Install is complete。请运行 satellite-installer --scenario satellite
。
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. 在基本操作系统上安装 SOS 软件包
在基础操作系统上安装 sos 软件包,以便您可以从 Red Hat Enterprise Linux 系统收集配置和诊断信息。您还可以使用它提供初始系统分析,使用红帽技术支持打开服务请求时是必需的。有关使用 sos
的更多信息,请参阅 sosreport 是什么以及如何在 Red Hat Enterprise Linux 4.6 及之后的版本中创建?
流程
安装 sos 软件包:
# yum install sos
2.7. 配置 Satellite 服务器
使用 satellite-installer
安装脚本安装卫星服务器。从以下任一方法中选择:
- 第 2.7.1 节 “配置 Satellite”.此方法通过运行一个或多个命令选项来执行。命令选项覆盖对应的默认初始配置选项,并在卫星应答文件中记录。您可以根据需要尽可能地运行 脚本来配置任何必要的选项。
根据您运行 Satellite 安装程序时使用的选项,配置可能需要几分钟来完成。管理员可以查看应答文件,以查看之前用于这两种方法的选项。
2.7.1. 配置 Satellite
这个初始配置过程会创建一个机构、位置、用户名和密码。在初始配置后,如果需要,您可以创建其他组织和位置。初始配置还会在同一服务器上安装 PostgreSQL 数据库。
完成安装过程可能需要十分钟时间。如果您要远程登录系统,请使用 屏幕
或 tmux
等工具允许暂停和重新连接通信会话,以便在与远程系统断开连接时检查安装进度。Red Hat 知识库文章 如何使用 screen
命令 描述安装屏幕 ; 另外,屏幕
man page 了解更多信息。如果您丢失了安装命令运行的 shell 的连接,请参阅 /var/log/foreman-installer/satellite.log
中的日志,以确定进程是否成功完成。
注意事项
-
使用
satellite-installer --scenario satellite --help
命令显示可用选项和任何默认值。如果没有指定任何值,则使用默认值。 -
为 选项指定一个有意义的值
:--foreman-initial-organization
。这可以是您的公司名称。也会创建与值匹配的内部标签,之后无法更改。如果没有指定值,则创建一个名为 Default Organization 的组织,标签为 Default_Organization。您可以重命名机构名称,但不能重命名标签。 -
远程执行是管理内容主机上软件包的主要方法。如果要使用已弃用的 Katello Agent 而不是 Remote Execution SSH,请使用
--foreman-proxy-content-enable-katello-agent=true
选项来启用它。应在任何胶囊服务器以及卫星服务器上提供相同的选项。 -
默认情况下,安装程序配置的所有配置文件都由 Puppet 管理。当
satellite-installer
运行时,它会使用初始值覆盖对 Puppet 管理的文件的任何手动更改。默认情况下,卫星服务器将与作为服务运行的 Puppet 代理一起安装。如果需要,您可以使用--puppet-runmode=none
选项来禁用卫星服务器上的 Puppet 代理。 -
如果要手动管理 DNS 文件和 DHCP 文件,请使用
--foreman-proxy-dns-managed=false
和--foreman-proxy-dhcp-managed=false
选项,以便 Puppet 不会管理与对应服务相关的文件。有关如何在其他服务 上应用自定义配置的更多信息,请参阅将自定义配置应用到卫星。
流程
使用以下命令,包括您要使用的任何附加选项:
# satellite-installer --scenario satellite \ --foreman-initial-organization "initial_organization_name" \ --foreman-initial-location "initial_location_name" \ --foreman-initial-admin-username admin_user_name \ --foreman-initial-admin-password admin_password
该脚本显示其进度,并将日志写入
/var/log/foreman-installer/satellite-installer --scenario satellite.log
。卸载 ISO 镜像:
# umount /media/sat6 # umount /media/rhel7-server
2.8. 启用 Disconnected Mode
在卫星服务器上启用断开连接模式。启用断开连接的模式后,卫星服务器无法访问 Red Hat Content Delivery Network (CDN)。
流程
- 在 Satellite Web UI 中,导航到 Administer > Settings。
- 单击 内容选项卡。
-
将
Disconnected 模式
值设为Yes
。
CLI 过程
在 Satellite 服务器中输入以下命令:
# hammer settings set --name content_disconnected --value true
2.9. 将订阅清单导入到卫星服务器
使用以下步骤将订阅清单导入到卫星服务器。
前提条件
- 您必须具有从客户门户网站中导出的订阅清单文件。如需更多信息, 请参阅使用 Red Hat Subscription Management 指南中的使用清单。
- 确保您在卫星服务器上启用断开连接模式。更多信息请参阅 第 2.8 节 “启用 Disconnected Mode”。
流程
- 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
- 进入 Content > Subscriptions 并点 Manage Manifest。
- 在 Manage Manifest 窗口中,单击 Browse。
- 导航到包含 Subscription Manifest 文件的位置,然后单击 Open。如果 Manage Manifest 窗口没有自动关闭,点 Close 来返回订阅窗口。
CLI 过程
将订阅清单文件从客户端复制到 Satellite 服务器:
$ scp ~/manifest_file.zip root@satellite.example.com:~/.
以
root
用户身份登录 Satellite 服务器,再导入订阅清单文件:# hammer subscription upload \ --file ~/manifest_file.zip \ --organization "organization_name"
第 3 章 在卫星服务器上执行额外的配置
3.1. 使用本地 CDN 服务器将 Satellite 配置为同步内容
在断开连接的环境中,您必须确保卫星服务器包含调配具有最新安全更新、勘误表和软件包的系统所需的内容。要做到这一点,请按照以下步骤从红帽客户门户网站下载内容 ISO 镜像,并将其导入到本地 CDN 服务器中。您可以在 Satellite 通过 HTTP 访问的操作系统上托管本地 CDN 服务器。接下来,您必须配置卫星服务器,以便将内容与本地 CDN 服务器同步。
流程
- 登录红帽客户门户,地址为 https://access.redhat.com。
- 在窗口的左上角,单击 Downloads 并选择 Red Hat Satellite。
- 单击 内容 ISOs 选项卡。本页列出了您的订阅中可用的所有产品。
- 单击产品名称的链接,如 Red Hat Enterprise Linux 7 Server (x86_64) 以下载 ISO 镜像。
将所有 Satellite 内容 ISO 镜像复制到您要用作本地 CDN 服务器的系统。例如,卫星服务器上的
/root/isos
目录。请注意,将内容保存到安装 Satellite 的同一系统上,这不是必须的。CDN 可以托管在同一断开连接的网络中的不同系统中,只要它可以通过 HTTP 访问。
在您要用作本地 CDN 服务器的系统中,创建一个可通过 httpd 访问的本地目录。例如:
/var/www/html/pub/sat-import/
:# mkdir -p /var/www/html/pub/sat-import/
创建挂载点,并在该位置临时挂载 ISO 镜像:
# mkdir /mnt/iso # mount -o loop /root/isos/first_iso /mnt/iso
将第一个 ISO 镜像的内容递归复制到本地目录:
# cp -ruv /mnt/iso/* /var/www/html/pub/sat-import/
如果您不计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除挂载点:
# umount /mnt/iso # rmdir /mnt/iso
-
为每个 ISO 镜像重复上述步骤,直到将内容 ISO 镜像中的所有数据复制到
/var/www/html/pub/sat-import/
中。 确保 目录的 SELinux 上下文正确:
# restorecon -rv /var/www/html/pub/sat-import/
- 在 Satellite Web UI 中,进入 Content > Subscriptions。
- 单击 Manage Manifest。
编辑 Red Hat CDN URL 字段,以指向用作本地 CDN 服务器的系统的主机名,例如:
http://server.example.com/pub/sat-import/
- 单击 Update,然后将您的清单上传到 Satellite。
3.2. 导入 Kickstart 存储库
Kickstart 软件仓库不是由内容 ISO 镜像提供。要在断开连接的 Satellite 中使用 Kickstart 软件仓库,您必须下载要使用的 Red Hat Enterprise Linux 版本的二进制 DVD ISO 文件,并将 Kickstart 文件复制到 Satellite。
要为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,请完成 第 3.2.1 节 “为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库”。
要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,请完成 第 3.2.2 节 “为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库”。
3.2.1. 为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库
要为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,请在 Satellite 中完成以下步骤。
流程
- 访问 https://access.redhat.com/ 并登录红帽客户门户网站。
- 在窗口的左上角,单击 Downloads。
- 在 Red Hat Enterprise Linux 7 右侧,点击 Versions 7 及以下。
- 在 Version 列表中选择 Red Hat Enterprise Linux 7 所需的版本,如 7.7。
- 在 Download Red Hat Enterprise Linux 窗口中,找到 ISO 镜像的二进制 DVD 版本,例如: Red Hat Enterprise Linux 7.7 Binary DVD,然后点击 Download Now。
- 下载完成后,将 ISO 镜像复制到卫星服务器。
在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:
# mkdir /mnt/iso # mount -o loop rhel-binary-dvd.iso /mnt/iso
创建 Kickstart 目录:
# mkdir --parents \ /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/
从 ISO 镜像复制
kickstart
文件:# cp -a /mnt/iso/* /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/
在列出文件中添加以下条目:
至
/var/www/html/pub/sat-import/content/dist/rhel/server/7/listing
文件,请使用新行附加版本号。例如,对于 RHEL 7.7 ISO,请附加7.7
。至
/var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/listing
文件,请使用新行附加架构。例如,x86_64
。至
/var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7.7/x86_64/listing
文件,使用新行附加kickstart
。从 ISO 镜像复制
.treeinfo
文件:# cp /mnt/iso/.treeinfo \ /var/www/html/pub/sat-import/content/dist/rhel/server/7/7.7/x86_64/kickstart/treeinfo
如果您不计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:
# umount /mnt/iso # rmdir /mnt/iso
- 在卫星 Web UI 中,启用 Kickstart 存储库。
3.2.2. 为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库
要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,请在 Satellite 中完成以下步骤。
流程
- 访问 https://access.redhat.com/ 并登录红帽客户门户网站。
- 在窗口的左上角,单击 Downloads。
- 单击 Red Hat Enterprise Linux 8。
- 在 Download Red Hat Enterprise Linux 窗口中,找到 ISO 镜像的二进制 DVD 版本,例如: Red Hat Enterprise Linux 8.1 Binary DVD 并点 Download Now。
- 下载完成后,将 ISO 镜像复制到卫星服务器。
在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:
# mkdir /mnt/iso # mount -o loop rhel-binary-dvd.iso /mnt/iso
Create directories for Red Hat Enterprise Linux 8 AppStream and BaseOS Kickstart repositories:
# mkdir --parents \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart # mkdir --parents \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart
从 ISO 镜像复制
kickstart
文件:# cp -a /mnt/iso/AppStream/* \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart # cp -a /mnt/iso/BaseOS/* /mnt/iso/images/ \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart
请注意,对于 BaseOS,还必须复制
/mnt/iso/images/
目录的内容。在列出文件中添加以下条目:
至
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/listing
文件,使用新行附加kickstart
。进入
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/listing
文件,使用新行附加kickstart
:至
/var/www/html/pub/sat-import/content/dist/rhel8/listing
文件,请使用新行附加版本号。例如,对于 RHEL 8.1 二进制 ISO,请附加8.1
。从 ISO 镜像复制
.treeinfo
文件:# cp /mnt/iso/.treeinfo \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo # cp /mnt/iso/.treeinfo \ /var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
-
打开
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
文件进行编辑。 在
[general]
部分,进行以下更改:-
将
packagedir = AppStream/Packages
更改为packagedir = Packages
-
更改
存储库 = AppStream
torepository = .
-
更改
变体 = AppStream
tovariants = BaseOS
-
更改
变体 = AppStream,BaseOS
tovariants = BaseOS
-
将
-
在
[tree]
部分中,将变体 = AppStream,BaseOS
更改为variants = BaseOS
。 在
[variant-BaseOS]
部分中,进行以下更改:-
将
package = BaseOS/Packages
更改为packages = Packages
-
更改
repository = BaseOS
torepository = .
-
将
-
删除
[media]
和[variant-AppStream]
部分。 - 保存并关闭该文件。
验证
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
文件具有以下格式:[checksums] images/efiboot.img = sha256:9ad9beee4c906cd05d227a1be7a499c8d2f20b3891c79831325844c845262bb6 images/install.img = sha256:e246bf4aedfff3bb54ae9012f959597cdab7387aadb3a504f841bdc2c35fe75e images/pxeboot/initrd.img = sha256:a66e3c158f02840b19c372136a522177a2ab4bd91cb7269fb5bfdaaf7452efef images/pxeboot/vmlinuz = sha256:789028335b64ddad343f61f2abfdc9819ed8e9dfad4df43a2694c0a0ba780d16 [general] ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos. ; WARNING.1 = Read productmd documentation for details about new format. arch = x86_64 family = Red Hat Enterprise Linux name = Red Hat Enterprise Linux 8.1.0 packagedir = Packages platforms = x86_64,xen repository = . timestamp = 1571146127 variant = BaseOS variants = BaseOS version = 8.1.0 [header] type = productmd.treeinfo version = 1.2 [images-x86_64] efiboot.img = images/efiboot.img initrd = images/pxeboot/initrd.img kernel = images/pxeboot/vmlinuz [images-xen] initrd = images/pxeboot/initrd.img kernel = images/pxeboot/vmlinuz [release] name = Red Hat Enterprise Linux short = RHEL version = 8.1.0 [stage2] mainimage = images/install.img [tree] arch = x86_64 build_timestamp = 1571146127 platforms = x86_64,xen variants = BaseOS [variant-BaseOS] id = BaseOS name = BaseOS packages = Packages repository = . type = variant uid = BaseOS
-
打开
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo
文件进行编辑。 在
[general]
部分,进行以下更改:-
将
packagedir = AppStream/Packages
更改为packagedir = Packages
-
更改
存储库 = AppStream
torepository = .
-
更改
变体 = AppStream,BaseOS
tovariants = AppStream
-
将
-
在
[tree]
部分中,将变体 = AppStream,BaseOS
更改为variants = AppStream
在
[variant-AppStream]
部分中,进行以下更改:-
将
软件包 = AppStream/Packages
更改为packages = Packages
-
更改
存储库 = AppStream
torepository = .
-
将
-
从文件中删除以下部分:[checksums] ,
[images-x86_64]
[images-xen]
,[media]
,[stage2]
,[variant-BaseOS]
. - 保存并关闭该文件。
验证
/var/www/html/pub/sat-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo
文件具有以下格式:[general] ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos. ; WARNING.1 = Read productmd documentation for details about new format. arch = x86_64 family = Red Hat Enterprise Linux name = Red Hat Enterprise Linux 8.1.0 packagedir = Packages platforms = x86_64,xen repository = . timestamp = 1571146127 variant = AppStream variants = AppStream version = 8.1.0 [header] type = productmd.treeinfo version = 1.2 [release] name = Red Hat Enterprise Linux short = RHEL version = 8.1.0 [tree] arch = x86_64 build_timestamp = 1571146127 platforms = x86_64,xen variants = AppStream [variant-AppStream] id = AppStream name = AppStream packages = Packages repository = . type = variant uid = AppStream
如果您不计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:
# umount /mnt/iso # rmdir /mnt/iso
- 在卫星 Web UI 中,启用 Kickstart 存储库。
3.3. 启用 Satellite Tools 6.10 存储库
Satellite Tools 6.10 存储库提供 katello-agent
、katello-host-tools
,以及用于注册到卫星服务器的客户端的 puppet
软件包。
要使用 CLI 而不是 Web UI,请参阅 CLI 过程。
前提条件
- 确保您将需要的所有内容 ISO 镜像导入到卫星服务器中。
流程
- 在 Satellite Web UI 中,导航到 Content > Red Hat Repositories。
- 使用 Search 字段输入以下存储库名称: Satellite Tools 6.10 (适用于 RHEL 7 服务器)(RPMs)。
在 Available Repositories 窗格中,点 Satellite Tools 6.10 (用于 RHEL 7 Server)(RPMs) 以展开存储库集。
如果 Satellite Tools 6.10 项目不可见,则可能是因为从客户门户网站获取的订阅清单中不包含它们。要更正,登录到客户门户网站,添加这些软件仓库,下载订阅清单并导入到卫星中。
-
对于
x86_64
条目,请单击 Enable 图标以启用该存储库。
为主机上运行的每个支持的 Red Hat Enterprise Linux 主版本启用 Satellite Tools 6.10 软件仓库。启用红帽存储库后,将自动创建此存储库的产品。
CLI 过程
使用
hammer repository-set enable
命令启用 Satellite Tools 6.10 存储库:# hammer repository-set enable --organization "initial_organization_name" \ --product 'Red Hat Enterprise Linux Server' \ --basearch='x86_64' \ --name 'Red Hat Satellite Tools 6.10 (for RHEL 7 Server) (RPMs)'
3.4. 同步 Satellite Tools 6.10 存储库
使用这个部分将 Satellite Tools 6.10 存储库从 Red Hat Content Delivery Network (CDN)同步到 Satellite。此存储库为注册到卫星服务器的客户端提供 katello-agent
、katello-host-tools
和 puppet
软件包。
流程
在 Satellite Web UI 中,进入 Content > Sync Status。
此时会显示可用于同步的产品存储库列表。
- 点击 Red Hat Enterprise Linux Server 产品旁边的箭头来查看可用的内容。
- 选择 Satellite Tools 6.10 (适用于 RHEL 7 服务器)RPM x86_64。
- 单击 Synchronize Now。
CLI 过程
使用
hammer 存储库同步您的 Satellite Tools 6.10 存储库
:# hammer repository synchronize --organization "initial_organization_name" \ --product 'Red Hat Enterprise Linux Server' \ --name 'Red Hat Satellite Tools 6.10 for RHEL 7 Server RPMs x86_64' \ --async
3.5. 在受管主机上启用电源管理
要使用智能平台管理接口(IPMI)或类似的协议对受管主机执行电源管理任务,您必须在卫星服务器上启用基板管理控制器(BMC)模块。
前提条件
- 所有受管主机都必须具有 BMC 类型的网络接口。卫星服务器使用此 NIC 将适当的凭据传递给主机。如需更多信息,请参阅管理 主机中的添加基板管理控制器(BMC) 接口 。
流程
要启用 BMC,请输入以下命令:
# satellite-installer --foreman-proxy-bmc "true" \ --foreman-proxy-bmc-default-provider "freeipmi"
3.6. 在卫星服务器上配置 DNS、DHCP 和 TFTP
要在卫星服务器上配置 DNS、DHCP 和 TFTP 服务,请使用 satellite-installer
命令以及适合您的环境的选项。要查看可配置的选项列表,请输入 satellite-installer --scenario satellite --help
命令。
对设置的任何更改都需要再次输入 satellite-installer
命令。您可以多次输入命令,每次使用更改的值更新所有配置文件。
要使用外部 DNS、DHCP 和 TFTP 服务,请参阅 第 4 章 使用外部服务配置 Satellite 服务器。
添加多主页 DHCP 详情
如果要使用多主页 DHCP,您必须通知安装程序。
前提条件
确定可用的以下信息如下:
- DHCP IP 地址范围
- DHCP 网关 IP 地址
- DHCP 名称服务器 IP 地址
- DNS 信息
- TFTP 服务器名称
- 在网络更改时,使用 FQDN 而不是 IP 地址。
- 请联系您的网络管理员以确保您具有正确的设置。
流程
输入
satellite-installer
命令,并适合您的环境。以下示例显示了配置完整置备服务:# satellite-installer --scenario satellite \ --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
您可以监控在您的提示符中显示的 satellite-installer
命令的进度。您可以在 /var/log/foreman-installer/satellite.log
中查看日志。您可以在 /etc/foreman-installer/scenarios.d/satellite-answers.yaml
文件中查看使用的设置,包括 initial_admin_password
参数。
有关配置 DHCP、DNS 和 TFTP 服务的更多信息,请参阅 《调配指南》 中的 配置网络服务 部分。
3.7. 为非受管网络禁用 DNS、DHCP 和 TFTP
如果要手动管理 TFTP、DHCP 和 DNS 服务,您必须阻止 Satellite 在操作系统中维护这些服务,并禁用编排以避免 DHCP 和 DNS 验证错误。但是,卫星不会删除操作系统上的后端服务。
流程
在卫星服务器上,输入以下命令:
# satellite-installer --foreman-proxy-dhcp false \ --foreman-proxy-dns false \ --foreman-proxy-tftp false
- 在 Satellite Web UI 中,导航到 Infrastructure > Subnets 并选择 subnet。
- 单击 Capsules 选项卡,清除 DHCP Capsule、TFTP Capsule 和 Reverse DNS Capsule 字段。
- 导航到 Infrastructure > Domains 并选择一个域。
- 清除 DNS Capsule 字段。
可选:如果您使用第三方提供的 DHCP 服务,请将 DHCP 服务器配置为传递以下选项:
Option 66: IP address of Satellite or Capsule Option 67: /pxelinux.0
有关 DHCP 选项的更多信息,请参阅 RFC 2132。
当没有为给定子网和域设置胶囊时,卫星 6 不会执行编排。在启用或禁用胶囊关联时,如果不存在预期的记录和配置文件,现有主机的编配命令可能会失败。当关联胶囊以打开编配时,请确保所需的 DHCP 和 DNS 记录以及 TFTP 文件已用于现有的 Satellite 主机,以防止未来出现主机删除失败。
3.8. 配置卫星服务器以进行 Outgoing 电子邮件
要从卫星服务器发送电子邮件消息,您可以使用 SMTP 服务器或 sendmail
命令。
前提条件
-
某些包含反垃圾邮件保护或问候功能的 SMTP 服务器已知可导致问题。使用此类服务设置传出电子邮件,可以在卫星服务器上安装和配置 vanilla SMTP 服务以进行转发,或者使用
sendmail
命令。
流程
- 在卫星 Web UI 中,导航到 Administer → Settings。
单击 Email 选项卡,再设置配置选项以匹配您首选的发送方法。更改会立即生效。
以下示例显示了使用 SMTP 服务器的配置选项:
表 3.1. 使用 SMTP 服务器作为交付方法 名称 示例值 交付方法
SMTP
SMTP 地址
smtp.example.com
SMTP 身份验证
login
SMTP HELO/EHLO 域
example.com
SMTP 密码
password
SMTP 端口
25
SMTP 用户名
user@example.com
SMTP 用户名和
SMTP 密码
指定 SMTP 服务器的登录凭据。以下示例使用 gmail.com 作为 SMTP 服务器:
表 3.2. 使用 gmail.com 作为 SMTP 服务器 名称 示例值 交付方法
SMTP
SMTP 地址
smtp.gmail.com
SMTP 身份验证
plain
SMTP HELO/EHLO 域
smtp.gmail.com
SMTP 启用 StartTLS auto
是
SMTP 密码
password
SMTP 端口
587
SMTP 用户名
user@gmail.com
以下示例使用
sendmail
命令作为交付方法:表 3.3. 使用 sendmail 作为交付方法 名称 示例值 交付方法
sendmail
Sendmail 参数
-i -t -G
Sendmail
参数指定传递给sendmail
命令的选项。默认值为-i -t
。详情请查看 sendmail 1 man page。
如果您决定使用 TLS 身份验证的 SMTP 服务器发送电子邮件,并执行以下步骤之一:
将 SMTP 服务器的 CA 证书标记为 trusted。要做到这一点,请在 Satellite 服务器中执行以下命令:
# cp mailca.crt /etc/pki/ca-trust/source/anchors/ # update-ca-trust enable # update-ca-trust
其中
mailca.crt
是 SMTP 服务器的 CA 证书。-
或者,在 web UI 中,将
SMTP 启用 StartTLS auto
选项设为No
。
-
单击 Test 电子邮件,向用户的电子邮件地址发送测试消息,以确认配置是否正常工作。如果消息无法发送,Web UI 会显示错误。详情请查看
/var/log/foreman/production.log
中的日志。
有关为个人用户或用户组配置电子邮件通知的详情,请参考 管理 Red Hat Satellite 中配置 电子邮件通知。
3.9. 使用自定义 SSL 证书配置 Satellite 服务器
默认情况下,红帽卫星 6 使用自签名 SSL 证书来启用卫星服务器、外部胶囊服务器和所有主机之间的加密通信。如果无法使用卫星自签名证书,您可以将卫星服务器配置为使用由外部证书颁发机构签名的 SSL 证书。
要使用自定义证书配置 Satellite 服务器,请完成以下步骤:
- 第 3.9.1 节 “为卫星服务器创建自定义 SSL 证书”
- 第 3.9.2 节 “将自定义 SSL 证书部署到卫星服务器”
- 第 3.9.3 节 “将自定义 SSL 证书部署到主机”
- 如果将外部胶囊服务器注册到卫星服务器,则必须使用自定义 SSL 证书来配置它们。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。有关更多信息,请参阅在安装胶囊服务器中使用自定义 SSL 证书 配置胶囊服务器。
3.9.1. 为卫星服务器创建自定义 SSL 证书
使用此流程为卫星服务器创建自定义 SSL 证书。如果您已经有适用于卫星服务器的自定义 SSL 证书,请跳过此步骤。
使用自定义证书配置 Satellite 服务器时,请注意以下注意事项:
- 您必须将 Privacy-Enhanced Mail (PEM)编码用于 SSL 证书。
- 您不能对卫星服务器和胶囊服务器使用相同的证书。
- 相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
流程
要存储所有源证书文件,请创建一个只可由
root
用户访问的目录。# mkdir /root/satellite_cert
创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已拥有此卫星服务器的私钥,请跳过这一步。
# openssl genrsa -out
/root/satellite_cert/satellite_cert_key.pem
4096为证书签名请求(CSR)创建
/root/satellite_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 = satellite.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 = satellite.example.com 3
生成证书签名请求(CSR):
# openssl req -new \ -key /root/satellite_cert/satellite_cert_key.pem \ 1 -config /root/satellite_cert/openssl.cnf \ 2 -out /root/satellite_cert/satellite_cert_csr.pem 3
将证书签名请求发送到证书颁发机构。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
提交请求时,指定证书的 lifespan。发送证书请求的方法会有所不同,因此请查阅证书颁发机构来获得首选方法。为响应请求,预计可在单独的文件中接收证书颁发机构捆绑包和签名证书。
3.9.2. 将自定义 SSL 证书部署到卫星服务器
使用此流程将卫星服务器配置为使用由证书颁发机构签名的自定义 SSL 证书。katello-certs-check
命令验证输入证书文件,并将自定义 SSL 证书部署到卫星服务器所需的命令返回。
流程
验证自定义 SSL 证书输入文件。请注意,对于
katello-certs-check
命令正常工作,证书中的通用名称(CN)必须与卫星服务器的 FQDN 匹配。# katello-certs-check \ -c /root/satellite_cert/satellite_cert.pem \ 1 -k /root/satellite_cert/satellite_cert_key.pem \ 2 -b /root/satellite_cert/ca_cert_bundle.pem 3
如果命令成功,它会返回两个
satellite-installer
命令,其中一个命令必须使用它来将证书部署到卫星服务器。要使用自定义证书安装 Red Hat Satellite 服务器,请运行:
satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite.example.com_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite.example.com_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/CA-Chain.pem"
要更新当前运行的 Satellite 安装中的证书,请运行:
satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite.example.com_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite.example.com_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/CA-Chain.pem" \ --certs-update-server \ --certs-update-server-ca
根据您的要求,输入
satellite-installer
命令,该命令使用自定义 SSL 证书或在当前运行的 Satellite 服务器上更新证书。在某些情况下,katello-certs-check
命令的输出可能并不准确。因此,您必须遵循上述步骤,而不是命令输出。如果您不确定要运行哪些命令,可以通过检查
/etc/foreman-installer/scenarios.d/.installed
.d/.installed 文件来验证是否安装了卫星。如果文件存在,请运行更新证书的第二个satellite-installer
命令。重要部署证书后,请勿删除证书存档文件。例如,在升级卫星服务器时,需要它。
-
在有网络访问卫星服务器的计算机中,导航到以下 URL:
\https://satellite.example.com
。 - 在浏览器中,查看证书详情以验证部署的证书。
3.9.3. 将自定义 SSL 证书部署到主机
将卫星服务器配置为使用自定义 SSL 证书后,您还必须在注册到此卫星服务器的每个主机上安装 katello-ca-consumer
软件包。
流程
在每个主机上,安装
katello-ca-consumer
软件包:# yum localinstall \ http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
3.10. 将外部数据库与 Satellite 搭配使用
作为红帽卫星的安装过程的一部分,satellite-installer 命令会在与 Satellite 相同的服务器上安装 PostgreSQL 数据库。在某些卫星部署中,使用外部数据库而不是默认的本地数据库可帮助服务器负载。
红帽不提供支持或工具进行外部数据库维护。这包括备份、升级和数据库调整。您必须具有自己的数据库管理员才能支持和维护外部数据库。
要在 Satellite 中创建和使用外部数据库,您必须完成以下步骤:
- 第 3.10.2 节 “为外部数据库准备主机”.准备红帽企业 Linux 7 服务器以托管外部数据库。
- 第 3.10.3 节 “安装 PostgreSQL”.使用卫星、Candlepin 和 Pulp 为 PostgreSQL 准备 PostgreSQL,以及拥有它们的专用用户。
-
第 3.10.4 节 “将 Satellite 配置为使用外部数据库”.编辑
satellite-installer
参数以指向新数据库,并运行satellite-installer
。
3.10.1. PostgreSQL 作为外部数据库注意事项
Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,则以下信息可帮助您确定此选项是否适合您的卫星配置:Satellite 支持 PostgreSQL 版本 12.1。
外部 PostgreSQL 的优点:
- 增加 Satellite 上的可用内存和可用 CPU
-
将 PostgreSQL 数据库上的
shared_buffers
设置为高灵活性,不会造成与 Satellite 上的其他服务干扰的风险 - 在不影响 Satellite 操作的情况下,调整 PostgreSQL 服务器系统的灵活性
外部 PostgreSQL 的缺点
- 增加部署复杂性,这会增加故障排除的难度
- 外部 PostgreSQL 服务器是另一个要修补和维护的系统
- 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,则 Satellite 无法正常工作
- 如果卫星服务器和数据库服务器之间存在延迟,性能可能会受到影响
如果您怀疑 Satellite 中的 PostgreSQL 数据库造成性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志记录来检测运行较慢的查询,以确定您是否有缓慢的查询。超过一秒的查询通常是由大型安装的性能问题导致的,并移到外部数据库可能并不能提供帮助。如果您的查询缓慢,请联系红帽支持。
3.10.2. 为外部数据库准备主机
使用最新的 Red Hat Enterprise Linux 7 服务器安装一个新的置备系统,以托管外部数据库。
Red Hat Software Collections 和 Red Hat Enterprise Linux 的订阅不提供将 Satellite 与外部数据库搭配使用的正确服务级别协议。您还必须将 Satellite 订阅附加到要用于外部数据库的基础操作系统。
前提条件
- 红帽企业 Linux 7 服务器必须满足卫星 的存储要求。
流程
- 使用 Attaching Satellite Infrastructure Subscription 中的说明将 Satellite 订阅附加到您的服务器。
禁用所有软件仓库并只启用以下软件仓库:
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms --enable=rhel-7-server-satellite-6.10-rpms
3.10.3. 安装 PostgreSQL
在内部数据库安装过程中,您只能安装使用 satellite-installer
工具安装的 PostgreSQL 版本。只要支持版本,您可以使用 Red Hat Enterprise Linux Server 7 软件仓库或从外部来源安装 PostgreSQL。Satellite 支持 PostgreSQL 版本 12.1。
流程
要安装 PostgreSQL,请输入以下命令:
# yum install rh-postgresql12-postgresql-server \ rh-postgresql12-syspaths \ rh-postgresql12-postgresql-evr
要初始化 PostgreSQL,请输入以下命令:
# postgresql-setup initdb
编辑
/var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
文件:# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
删除
#
和 edit 以侦听入站连接:listen_addresses = '*'
Edit the
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
file:# vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
在文件中添加以下行:
host all all Satellite_ip/24 md5
要启动并启用 PostgreSQL 服务,请输入以下命令:
# systemctl start postgresql # systemctl enable postgresql
在外部 PostgreSQL 服务器上打开 postgresql 端口:
# firewall-cmd --add-service=postgresql # firewall-cmd --runtime-to-permanent
切换到
postgres
用户并启动 PostgreSQL 客户端:$ su - postgres -c psql
创建三个数据库和专用角色:一个用于 Satellite,一个用于 Candlepin,另一个用于 Pulp:
CREATE USER "foreman" WITH PASSWORD 'Foreman_Password'; CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password'; CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password'; CREATE DATABASE foreman OWNER foreman; CREATE DATABASE candlepin OWNER candlepin; CREATE DATABASE pulpcore OWNER pulp;
退出
postgres
用户:# \q
从卫星服务器,测试您可以访问数据库。如果连接成功,命令会返回
1
。# PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping" # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping" # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
3.10.4. 将 Satellite 配置为使用外部数据库
使用 satellite-installer
命令,将 Satellite 配置为连接到外部 PostgreSQL 数据库。
前提条件
- 您已在 Red Hat Enterprise Linux 服务器中安装和配置了 PostgreSQL 数据库。
流程
要为 Satellite 配置外部数据库,请输入以下命令:
satellite-installer --scenario satellite \ --foreman-db-host postgres.example.com \ --foreman-db-password Foreman_Password \ --foreman-db-database foreman \ --foreman-db-manage false \ --katello-candlepin-db-host postgres.example.com \ --katello-candlepin-db-name candlepin \ --katello-candlepin-db-password Candlepin_Password \ --katello-candlepin-manage-db false \ --foreman-proxy-content-pulpcore-manage-postgresql false \ --foreman-proxy-content-pulpcore-postgresql-host postgres.example.com \ --foreman-proxy-content-pulpcore-postgresql-db-name pulpcore \ --foreman-proxy-content-pulpcore-postgresql-password Pulpcore_Password --foreman-proxy-content-pulpcore-postgresql-user pulp
要为这些外部数据库启用安全套接字层(SSL)协议,请添加以下选项:
--foreman-db-sslmode verify-full --foreman-db-root-cert <path_to_CA> --katello-candlepin-db-ssl true --katello-candlepin-db-ssl-verify true --foreman-proxy-content-pulpcore-postgresql-ssl true --foreman-proxy-content-pulpcore-postgresql-ssl-root-ca <path_to_CA>
3.11. 使用预定义的配置集调整卫星服务器
如果您的 Satellite 部署包含超过 5000 个主机,您可以使用预定义的调优配置文件来改进 Satellite 的性能。
请注意,您不能在胶囊上使用调优配置文件。
您可以根据 Satellite 管理和支持硬件资源的主机数量选择其中一个配置集。
调优配置文件位于 /usr/share/foreman-installer/config/foreman.hiera/tuning/sizes
目录中。
当您使用 --tuning
选项运行 satellite-installer
命令时,部署配置设置会按照以下顺序应用到 Satellite:
-
/usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml
文件中定义的默认调优配置文件 -
您要应用于部署的调优配置文件,并在
/usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/
目录中定义 -
可选:如果您配置了
/etc/foreman-installer/custom-hiera.yaml
文件,则 Satellite 会应用这些配置设置。
请注意,/etc/foreman-installer/custom-hiera.yaml
文件中定义的配置设置会覆盖调优配置文件中定义的配置设置。
因此,在应用调优配置文件前,您必须比较 /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml
中默认调优配置文件,以及 /etc/foreman-installer/custom-hiera.yaml
文件,并从 /etc/foreman-installer/custom-hiera.yaml
文件中删除任何重复的配置。
- default
受管主机数量: 0-5000
RAM:20G
CPU 内核数:4
- 中
受管主机数量:5001-10000
RAM:32G
CPU 内核数:8
- 大
受管主机数量: 10001-20000
RAM:64G
CPU 内核数:16
- extra-large
受管主机数量: 20001-60000
RAM: 128G
CPU 内核数:32
- extra-extra-large
受管主机数量:60000+
RAM:256G
CPU 内核数: 48+
流程
可选:如果您已在 Satellite 服务器上配置了
custom-hiera.yaml
文件,请将/etc/foreman-installer/custom-hiera.yaml
文件备份到custom-hiera.original
。如果备份文件被破坏,您可以使用备份文件将/etc/foreman-installer/custom-hiera.yaml
文件恢复到其原始状态:# cp /etc/foreman-installer/custom-hiera.yaml \ /etc/foreman-installer/custom-hiera.original
-
可选:如果您已在 Satellite 服务器上配置了
custom-hiera.yaml
文件,请查看/usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml
以及要在 /usr/share/foreman-installer/config/foreman.hiera/tuning/tuning/tuning/sizes/tuning/tuning/size 中应用的默认调优配置文件的定义
。将配置条目与/etc/foreman-installer/custom-hiera.yaml
文件中的条目进行比较,并删除/etc/foreman-installer/custom-hiera.yaml
文件中的任何重复配置设置。 输入您要应用的 profile 的
--tuning
选项的satellite-installer
命令。例如,要应用中型调优配置文件设置,请输入以下命令:# satellite-installer --tuning medium
第 4 章 使用外部服务配置 Satellite 服务器
如果不想在卫星服务器上配置 DNS、DHCP 和 TFTP 服务,请使用本节将卫星服务器配置为使用外部 DNS、DHCP 和 TFTP 服务。
4.1. 使用外部 DNS 配置 Satellite 服务器
您可以使用外部 DNS 配置卫星服务器。卫星服务器使用 nsupdate
工具更新远程服务器上的 DNS 记录。
要永久保留任何更改,您必须输入 satellite-installer
命令以及适合您的环境的选项。
前提条件
- 您必须有配置了外部 DNS 服务器。
流程
解锁软件包以启用新软件包的安装:
# satellite-maintain packages unlock
安装 BIND 和实用程序软件包:
# yum install bind bind-utils
锁定软件包:
# satellite-maintain packages lock
将
/etc/rndc.key
文件从外部 DNS 服务器复制到 Satellite 服务器:# 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,找到 Satellite Server,然后从 Actions 列中的列表中,选择 Refresh。
- 将 DNS 服务与适当的子网和域关联。
4.2. 使用外部 DHCP 配置 Satellite 服务器
要使用外部 DHCP 配置 Satellite 服务器,您必须完成以下步骤:
4.2.1. 将外部 DHCP 服务器配置为与卫星服务器一起使用
要配置外部 DHCP 服务器以用于 Satellite 服务器,必须在 Red Hat Enterprise Linux 服务器中安装 ISC DHCP Service 和 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 服务器配置 Satellite 服务器
您可以使用外部 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,找到 Satellite Server,然后从 Actions 列中的列表中,选择 Refresh。
- 将 DHCP 服务与适当的子网和域关联。
4.3. 使用外部 TFTP 配置 Satellite 服务器
您可以使用外部 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,找到 Satellite Server,然后从 Actions 列中的列表中,选择 Refresh。
- 将 TFTP 服务与适当的子网和域关联。
4.4. 使用外部 IdM DNS 配置 Satellite 服务器
当卫星服务器为主机添加 DNS 记录时,它会首先确定哪个胶囊为该域提供 DNS。然后,它将与配置为为您的部署提供 DNS 服务的胶囊通信并添加记录。此过程中不涉及主机。因此,您必须在卫星或胶囊上安装并配置 IdM 客户端,以便为您要使用 IdM 服务器管理的域提供 DNS 服务。
卫星服务器可以配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务。有关红帽身份管理的更多信息,请参阅 Linux 域身份、身份验证和策略指南。
要将 Satellite 服务器配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务,请使用以下步骤之一:
要恢复到内部 DNS 服务,请使用以下步骤:
您不需要使用卫星服务器来管理 DNS。当您使用 Satellite 的域注册功能(其中置备的主机自动注册到 IdM 时,ipa-client-install
脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置 Satellite 服务器是相互排斥的。有关配置域注册的更多信息,请参阅 管理 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 satellite.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,找到 Satellite Server,然后从 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 Satellite
当您首次使用 satellite-installer
安装并配置 Satellite 时,您可以指定 DNS 和 DHCP 配置文件不是由 Puppet 使用安装程序标志 --foreman-proxy-dns-managed=false
和 --foreman-proxy-dhcp-managed=false
管理=false 进行管理的 DNS 和 DHCP 配置文件。如果在初始安装程序运行期间没有指定这些标志,则重新运行安装程序会覆盖所有手动更改,例如,重新运行 以便升级目的。如果更改被覆盖,则必须运行恢复过程来恢复手动更改。如需更多信息,请参阅"从 Puppet 运行"写入的手动更改。
要查看可用于自定义配置的所有安装程序标志,请运行 satellite-installer --scenario satellite --full-help
。些 Puppet 类不暴露于卫星安装程序。要手动管理并阻止安装程序覆盖其值,请在配置文件 /etc/foreman-installer/custom-hiera.yaml
中添加条目来指定配置值。此配置文件采用 YAML 格式,以 < puppet class>::<parameter name>: <value>
; 的格式由每行一个条目组成。此文件中指定的配置值会在安装程序重新运行后保留。
常见示例包括:
对于 Apache,将 ServerTokens 指令设置为仅返回产品名称:
apache::server_tokens: Prod
要完全关闭 Apache 服务器签名:
apache::server_signature: Off
卫星安装程序的 Puppet 模块存储在 /usr/share/foreman-installer/modules
下。检查 .pp
文件(例如: moduleName/manifests/example.pp)来查找类、参数和值。或者,使用 grep
命令执行关键字搜索。
设置某些值可能会影响 Red Hat Satellite 的性能或功能时可能出现的后果。在应用前,请考虑更改的影响,然后首先在非生产环境中测试更改。如果您没有非生产环境,请使用 --noop
和 --verbose
选项运行 Satellite 安装程序。如果您的更改造成问题,请从 custom-hiera.yaml
中删除异常行,并重新运行 Satellite 安装程序。如果您对特定值是否安全修改,请联络红帽支持。
附录 B. 恢复由 Puppet 运行编写的手动更改
如果 Puppet 运行覆盖了手动配置,您可以将文件恢复到之前的状态。以下示例演示了如何恢复由 Puppet 运行覆盖的 DHCP 配置文件。
流程
复制要恢复的 文件。这可让您比较文件,以检查升级所需的任何强制更改。这不适用于 DNS 或 DHCP 服务。
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.backup
检查日志文件,以记下覆盖文件的 md5sum。例如:
# journalctl -xe ... /Stage[main]/Dhcp/File[/etc/dhcp/dhcpd.conf]: Filebucketed /etc/dhcp/dhcpd.conf to puppet with sum 622d9820b8e764ab124367c68f5fa3a1 ...
恢复覆盖的文件:
# puppet filebucket restore --local --bucket \ /var/lib/puppet/clientbucket /etc/dhcp/dhcpd.conf \ 622d9820b8e764ab124367c68f5fa3a1
- 比较备份文件和恢复的文件,并编辑恢复的文件,使其包含升级所需的任何强制更改。
附录 C. 恢复 Satellite 以从 Red Hat CDN 下载内容
如果您的环境从断开连接更改为连接,您可以重新配置断开连接的 Satellite 以直接从红帽 CDN 下载内容。
流程
- 在 Satellite Web UI 中,进入 Content > Subscriptions。
- 单击 Manage Manifest。
编辑 Red Hat CDN URL 字段以指向 Red Hat CDN URL:
- 点 Save。
现在,卫星服务器已配置为在同步存储库时从 CDN 下载内容。