在断开连接的网络环境中安装 Satellite 服务器
安装部署在没有互联网连接的网络中的 Red Hat Satellite 服务器
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
摘要
向红帽文档提供反馈
我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。
您可以通过在 Bugzilla 中记录一个 ticket 来提交反馈:
- 导航到 Bugzilla 网站。
-
在 Component 字段中,使用
Documentation
。 - 在 Description 字段中,输入您要改进的建议。包括文档相关部分的链接。
- 点 Submit Bug。
第 1 章 为安装准备您的环境
在安装 Satellite 前,请确保您的环境满足以下要求。
1.1. 系统要求
以下要求适用于联网的基本操作系统:
- x86_64 架构
- Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux 7 Server 的最新版本
- 至少 4 核 2.0 GHz CPU
- Satellite 服务器至少需要 20 GB RAM。另外,还建议至少 4 GB RAM 交换空间。以 RAM 小于最小值运行的 Satellite 可能无法正确运行。
- 唯一的主机名,可以包含小写字母、数字、点(.)和连字符(-)
- 当前 Red Hat Satellite 订阅
- 管理用户(root)访问
- 系统 umask 为 0022
- 使用完全限定域名进行全正向和反向 DNS 解析
Satellite 只支持 UTF-8
编码。如果您的个人是美国的,并且您的语言是英语,请将 en_US.utf-8
设置为系统范围的区域设置。有关在 Red Hat Enterprise Linux 中 配置系统区域设置的更多信息,请参阅 配置系统本地指南。
您的 Satellite 必须在您的客户门户网站中有 Red Hat Satellite Infrastructure Subscription 清单。Satellite 必须启用并同步 satellite-capsule-6.x 存储库。要在客户门户网站中创建、管理和导出红帽订阅清单,请参阅在 Subscription Central 中为连接的 Satellite 服务器创建和管理清单。
Satellite 服务器和 Capsule 服务器不支持主机名中的短名称。使用自定义证书时,自定义证书的通用名称(CN)必须是完全限定域名(FQDN),而不是短名称。这不适用于 Satellite 的客户端。
在安装 Satellite 服务器前,请确保您的环境满足安装要求。
必须在全新调配的系统上安装卫星服务器,该系统上不提供其他功能,但运行 Satellite 服务器除外。新置备的系统不能有外部身份提供程序提供的以下用户,以避免与 Satellite 服务器创建的本地用户冲突:
- Apache
- foreman
- foreman-proxy
- postgres
- Pulp
- puppet
- qdrouterd
- qpidd
- redis
- tomcat
认证的虚拟机监控程序
在运行 Red Hat Enterprise Linux 的虚拟机监控程序上运行的物理系统和虚拟机上完全支持 Satellite 服务器。有关认证虚拟机监控程序的更多信息,请参阅 Red Hat OpenStack Platform、Red Hat Virtualization、Red Hat OpenShift Virtualization 和带有 KVM 的 Red Hat Enterprise Linux 中的认证的客户机操作系统。
SELinux 模式
SELinux 必须启用,可以是 enforcing 模式或 permissive 模式。不支持在禁用 SELinux 的情况下安装。
FIPS 模式
您可以在以 FIPS 模式运行的 Red Hat Enterprise Linux 系统上安装 Satellite。安装 Satellite 后您无法启用 FIPS 模式。如需更多信息,请参阅 Red Hat Enterprise Linux 安全强化指南 中的 安装启用了 FIPS 模式的 RHEL 8 系统。有关 Red Hat Enterprise Linux 7 系统上的 FIPS 的更多信息,请参阅 Red Hat Enterprise Linux 安全指南 中的 启用 FIPS 模式。
Satellite 支持 DEFAULT 和 FIPS 加密策略。FUTURE 加密策略不支持 Satellite 和 Capsule 安装 。
Satellite 间同步(ISS)
在 air-gapped Satellite 服务器的情况下,所有 Satellite 服务器都必须位于同一 Satellite 版本中,才能使 ISS 导出同步正常工作。ISS 网络同步可用于支持它的所有 Satellite 版本。如需更多信息,请参阅 管理内容 中的 在 Satellite 服务器间同步 内容。
1.2. 存储要求
下表详细介绍了特定目录的存储要求。这些值基于预期的用例场景,并根据各个环境的不同而有所不同。
运行时大小由 Red Hat Enterprise Linux 6、7 和 8 软件仓库同步来测量。
1.2.1. Red Hat Enterprise Linux 8
表 1.1. Satellite 服务器安装的存储要求
目录 | 安装大小 | 运行时大小 |
---|---|---|
/var/log | 10 MB | 10 GB |
/var/lib/pgsql | 100 MB | 20 GB |
/usr | 5 GB | 不适用 |
/opt/puppetlabs | 500 MB | 不适用 |
/var/lib/pulp | 1 MB | 300 GB |
/var/lib/qpidd | 25 MB |
对于外部数据库服务器: /var/lib/pgsql
,安装大小为 100 MB,运行时大小为 20 GB。
有关分区和大小的详情,请参考 Red Hat Enterprise Linux 8 分区指南。
1.2.2. Red Hat Enterprise Linux 7
表 1.2. Satellite 服务器安装的存储要求
目录 | 安装大小 | 运行时大小 |
---|---|---|
/var/log | 10 MB | 10 GB |
/var/opt/rh/rh-postgresql12 | 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 |
对于外部数据库服务器: /var/lib/pgsql
,安装大小为 100 MB,运行时大小为 20 GB。
1.3. 存储指南
安装 Satellite 服务器以提高效率时,请考虑以下准则。
-
如果将
/tmp
目录挂载为单独的文件系统,则必须使用/etc/fstab
文件中的exec
挂载选项。如果/tmp
已经挂载了noexec
选项,您必须将选项更改为exec
并重新挂载文件系统。这是puppetserver
服务正常工作的要求。 -
由于大多数 Satellite 服务器数据存储在
/var
目录中,所以在 LVM 存储上挂载/var
可帮助系统扩展。 -
/var/lib/qpidd/
目录使用的时间比goferd
服务管理的每个内容主机稍多 2 MB。例如,10 000 内容主机需要/var/lib/qpidd/
中的 20 GB 磁盘空间。 -
对
/var/lib/pulp/
目录使用高带宽、低延迟存储。因为 Red Hat Satellite 有很多 I/O 密集型操作,使用高延迟,低带宽存储会导致性能下降。确保您的安装速度在每秒 60 – 80 MB。
您可以使用 storage-benchmark
脚本获取此数据。有关使用 storage-benchmark
脚本的更多信息,请参阅 对 Satellite 操作的影响。
文件系统指南
- 不要使用 GFS2 文件系统,因为输入输出延迟太高。
日志文件存储
日志文件被写入 /var/log/messages/
、/var/log/httpd/
和 /var/lib/foreman-proxy/openscap/content/
。您可以使用 logrotate 管理这些文件的大小。如需更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的日志轮转。
日志消息所需的存储量取决于您的安装和设置。
NFS 挂载的 SELinux 注意事项
当使用 NFS 共享挂载 /var/lib/pulp
目录时,SELinux 会阻止同步过程。要避免这种情况,请在文件系统表中指定 /var/lib/pulp
目录的 SELinux 上下文,方法是在 /etc/fstab
中添加以下行:
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 或者红帽支持的任何其他方法安装操作系统。Red Hat Satellite Server 在最新版本的 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 7 Server 上被支持,当 Satellite 服务器被安装时可用。以前的 Red Hat Enterprise Linux 版本(包括 EUS 或 z-stream)不被支持。
以下操作系统由安装程序支持,有软件包,并经过测试以部署 Satellite:
表 1.3. satellite-installer 支持的操作系统
操作系统 | 架构 | 备注 |
Red Hat Enterprise Linux 8 | 仅限 x86_64 | |
Red Hat Enterprise Linux 7 | 仅限 x86_64 |
在安装 Satellite 前,请应用所有操作系统更新(如果可能)。
Red Hat Satellite Server 需要具有 @Base
软件包组的 Red Hat Enterprise Linux 安装,没有其他软件包集修改,而不需要第三方配置或软件直接进行服务器直接操作。这个限制包括强化和其他非红帽安全软件。如果您的基础架构中需要此类软件,请首先安装和验证完整的 Satellite 服务器,然后再添加任何非红帽软件。
在全新调配的系统上安装 Satellite 服务器。
红帽不支持对运行 Satellite 服务器以外的任何系统使用系统。
1.5. 支持的浏览器
Satellite 支持最新版本的 Firefox 和 Google Chrome 浏览器。
Satellite Web UI 和命令行界面支持英语、葡萄牙语、简体中文、韩语、日语、意大利语、西班牙语、俄语、法语和德语。
1.6. 端口和防火墙要求
要使 Satellite 架构的组件进行通信,请确保在基础操作系统上开放和释放所需的网络端口。您还必须确保在任何基于网络的防火墙上打开所需的网络端口。
使用这些信息来配置任何基于网络的防火墙。请注意,一些解决方案必须专门配置为允许机器之间的通信,因为它们与基于网络的防火墙类似。如果您使用基于应用程序的防火墙,请确保基于应用程序的防火墙允许表中列出的所有应用程序以及防火墙已知的应用程序。如果可能,禁用应用程序检查并允许基于协议打开的端口通信。
集成胶囊
Satellite 服务器具有集成胶囊,且直接连接到 Satellite 服务器的任何主机都是本节上下文中的 Satellite 客户端。这包括在其上运行胶囊式服务器的基本操作系统。
Capsule 的客户端
是胶囊(除 Satellite 集成胶囊之外的)的客户端不需要访问卫星服务器的主机。如需有关 Satellite 拓扑和端口连接图的更多信息,请参阅规划 Red Hat Satellite 中的 Capsule Networking。
所需端口可能会根据您的配置而改变。
下表指定目的地端口和网络流量的方向:
表 1.4. Satellite 服务器传入流量
目的地端口 | 协议 | 服务 | 源 | 必需 For | 描述 |
53 | TCP 和 UDP | DNS | DNS 服务器和客户端 | 名称解析 | DNS (可选) |
67 | UDP | DHCP | 客户端 | Dynamic IP | DHCP (可选) |
69 | UDP | TFTP | 客户端 | TFTP 服务器(可选) | |
443 | TCP | HTTPS | Capsule | Red Hat Satellite API | 来自 Capsule 的通信 |
443, 80 | TCP | HTTPS, HTTP | 客户端 | 内容检索 | 内容 |
443, 80 | TCP | HTTPS, HTTP | Capsule | 内容检索 | 内容 |
443, 80 | TCP | HTTPS, HTTP | 客户端 | 内容主机注册 | 胶囊 CA RPM 安装 |
443 | TCP | HTTPS | 客户端 | 内容主机注册 | 启动 上传事实 发送安装的软件包和追踪 |
443 | TCP | HTTPS | Red Hat Satellite | 内容镜像 | 管理 |
443 | TCP | HTTPS | Red Hat Satellite | Capsule API | 智能代理功能 |
5646 | TCP | AMQP | Capsule | Katello 代理 | 将消息转发到 Satellite 上的 Qpid 分配路由器(可选) |
5910 – 5930 | TCP | HTTPS | 浏览器 | 计算资源的虚拟控制台 | |
8000 | TCP | HTTP | 客户端 | 置备模板 | 用于客户端安装程序、iPXE 或 UEFI HTTP 引导的模板检索 |
8000 | TCP | HTTPS | 客户端 | PXE 引导 | 安装 |
8140 | TCP | HTTPS | 客户端 | Puppet 代理 | 客户端更新(可选) |
9090 | TCP | HTTPS | 客户端 | OpenSCAP | 配置客户端 |
9090 | TCP | HTTPS | 发现的节点 | Discovery(发现) | 主机发现和置备 |
9090 | TCP | HTTPS | Red Hat Satellite | Capsule API | 胶囊功能 |
任何直接连接到 Satellite 服务器的受管主机都是此上下文中的客户端,因为它是集成胶囊的客户端。这包括在其上运行胶囊式服务器的基本操作系统。
DHCP Capsule 将执行 ICMP ping 或 TCP echo 连接尝试子网中 DHCP IPAM 设置的主机,以找出被视为使用的 IP 地址是空闲的。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false
关闭此行为。
有些传出流量返回到 Satellite,以启用内部通信和安全操作。
表 1.5. Satellite 服务器传出流量
目的地端口 | 协议 | 服务 | 目的地 | 必需 For | 描述 |
---|---|---|---|---|---|
ICMP | ping | 客户端 | DHCP | 空闲 IP 检查(可选) | |
7 | TCP | echo | 客户端 | DHCP | 空闲 IP 检查(可选) |
22 | TCP | SSH | 目标主机 | 远程执行 | 运行作业 |
22, 16514 | TCP | SSH/TLS | 计算资源 | Satellite 源自通信,用于 libvirt 中的计算资源 | |
53 | TCP 和 UDP | DNS | 互联网上的 DNS 服务器 | DNS 服务器 | 解析 DNS 记录(可选) |
53 | TCP 和 UDP | DNS | DNS 服务器 | 胶囊 DNS | 验证 DNS 冲突(可选) |
53 | TCP 和 UDP | DNS | DNS 服务器 | 编配 | 验证 DNS 冲突 |
68 | UDP | DHCP | 客户端 | Dynamic 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 代理 | 将消息转发到 Capsule 上的 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 | 管理 Capsule |
1.7. 启用从客户端到 Satellite 服务器的连接
属于 Satellite 服务器内部胶囊的客户端的胶囊和内容主机需要通过 Satellite 的基于主机的防火墙和任何基于网络的防火墙访问。
使用这个流程在安装 Satellite 的系统上配置基于主机的防火墙,从客户端启用进入连接,并在系统重启后保留配置。有关使用的端口的更多信息,请参阅 端口和防火墙要求。
流程
要为客户端到 Satellite 通信打开端口,请在您要安装 Satellite 的基本操作系统上输入以下命令:
# 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="9090/tcp" \ --add-port="8140/tcp"
使更改持久:
# firewall-cmd --runtime-to-permanent
验证
输入以下命令:
# firewall-cmd --list-all
如需更多信息,请参阅 Red Hat Enterprise Linux 8 安全指南 中的 使用和配置 firewalld,以及 Red Hat Enterprise Linux 7 安全指南 中的 firewalld 入门。
1.8. 验证 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 的操作至关重要。如果 Satellite 无法正确解析其完全限定域名,则内容管理、订阅管理和置备等任务将失败。
第 2 章 安装 Satellite 服务器
当 Satellite 服务器所需的主机在断开连接的环境中时,您可以使用外部计算机下载软件包的 ISO 镜像,并将软件包复制到您要在其上安装 Satellite 服务器的系统中。对于任何其他情况,不建议使用这个方法,因为 ISO 镜像可能不包含最新的更新、错误修复和功能。
使用以下步骤安装 Satellite 服务器、执行初始配置和导入订阅清单。
继续操作前,请考虑与环境相关的清单。如需有关清单的更多信息, 请参阅内容管理指南中的管理红帽订阅 。
您不能将 Satellite 服务器注册到自己。
2.1. 下载二进制 DVD 镜像
使用这个流程下载 Red Hat Enterprise Linux 和 Red Hat Satellite 的 ISO 镜像。
流程
- 访问红帽客户门户 并登录。
- 单击下载。
- 选择 Red Hat Enterprise Linux。
确保具有适合您环境的正确产品和版本。
- 对于 Red Hat Enterprise Linux 8,产品变体 被设置为 Red Hat Enterprise Linux for x86_64,或 Red Hat Enterprise Linux 7。
- Version 设置为您计划用作基础操作系统的产品的最新次要版本。
- 架构 设置为 64 位版本。
- 在 Product Software 选项卡中,下载适用的 Binary DVD 镜像。对于 Red Hat Enterprise Linux 8,它必须是最新的 Red Hat Enterprise Linux for x86_64 版本。对于 Red Hat Enterprise Linux 7,它必须是最新的 Red Hat Enterprise Linux Server 版本。
- 单击 下载 并选择 Red Hat Satellite。
确保具有适合您环境的正确产品和版本。
- 产品变体 设置为 Red Hat Satellite。
- Version 设置为您计划使用的产品的最新次版本。
- 在 Product Software 选项卡中,下载最新 Red Hat Satellite 版本的 Binary DVD 镜像。
将 ISO 文件复制到 Satellite 基础操作系统上的
/var/tmp
或者其它可访问的存储设备中。# scp localfile username@hostname:remotefile
2.2. 在 RHEL 7 中使用离线软件仓库配置基本操作系统
使用这个流程为 Red Hat Enterprise Linux 7 和 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 # chmod u+w /etc/yum.repos.d/rhel7-server.repo
编辑存储库数据文件并添加
baseurl
指令。baseurl=file:///media/rhel7-server/
验证已配置了存储库。
# yum repolist
创建一个目录,以用作卫星服务器的 ISO 文件的挂载点。
# mkdir /media/sat6
将 Satellite 服务器的 ISO 镜像挂载到挂载点。
# mount -o loop sat6-DVD.iso /media/sat6
2.3. 在 RHEL 8 中使用离线软件仓库配置基本操作系统
使用这个流程为 Red Hat Enterprise Linux 8 和 Red Hat Satellite ISO 镜像配置离线软件仓库。
流程
创建一个目录,以用作与基础操作系统版本对应的 ISO 文件的挂载点。
# mkdir /media/rhel8
将 Red Hat Enterprise Linux 的 ISO 镜像挂载到挂载点。
# mount -o loop rhel8-DVD.iso /media/rhel8
要复制 ISO 文件的仓库数据文件并更改权限,请输入:
# cp /media/rhel8/media.repo /etc/yum.repos.d/rhel8.repo # chmod u+w /etc/yum.repos.d/rhel8.repo
编辑存储库数据文件并添加
baseurl
指令。[RHEL8-BaseOS] name=Red Hat Enterprise Linux BaseOS mediaid=None metadata_expire=-1 gpgcheck=0 cost=500 baseurl=file:///media/rhel8/BaseOS/ [RHEL8-AppStream] name=Red Hat Enterprise Linux Appstream mediaid=None metadata_expire=-1 gpgcheck=0 cost=500 baseurl=file:///media/rhel8/AppStream/
验证已配置了存储库。
# yum repolist
创建一个目录,以用作卫星服务器的 ISO 文件的挂载点。
# mkdir /media/sat6
将 Satellite 服务器的 ISO 镜像挂载到挂载点。
# mount -o loop sat6-DVD.iso /media/sat6
2.4. 从离线存储库安装 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:el8
模块的命令。启用模块satellite:el8
会警告与postgresql:10
和ruby:2.5
冲突,因为这些模块被设置为 Red Hat Enterprise Linux 8 上的默认模块版本。模块satellite:el8
具有模块postgresql:12
和ruby:2.7
的依赖项,它将通过satellite:el8
模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期。如果您成功安装了 Satellite 软件包,则会显示以下信息:
Install is complete。请运行 satellite-installer --scenario satellite
。
2.5. 解决软件包依赖错误
如果在安装 Satellite 服务器软件包过程中存在软件包依赖项错误,您可以通过从红帽客户门户网站下载并安装软件包来解决错误。有关解析依赖关系错误的更多信息,请参阅 KCS 解决方案 如何使用 yum 输出来解决 yum 依赖项错误?
如果您已成功安装了 Satellite 软件包,请跳过这个过程。
流程
- 访问红帽客户门户并登录。
- 单击下载。
- 点包含您要下载的软件包的产品。
- 确保您有适用于您的环境的正确 产品变体 、 版本和架构。
- 点 Packages 选项卡。
- 在 Search 字段中,输入软件包的名称。
- 点软件包。
- 从 Version 列表中,选择软件包的版本。
- 在页面底部,单击 Download Now。
- 将软件包复制到 Satellite 基础操作系统。
在 Satellite 服务器上,切换到软件包所在的目录:
# cd /path-to-package/
本地安装软件包:
# yum localinstall package_name
切换到挂载 Satellite ISO 的目录:
# cd /media/sat6/
通过安装 Satellite 服务器软件包,验证您已解决了软件包依赖项错误。如果有其他软件包依赖项错误,请重复这个过程。
# ./install_packages
注意脚本包含一个启用
satellite:el8
模块的命令。启用模块satellite:el8
会警告与postgresql:10
和ruby:2.5
冲突,因为这些模块被设置为 Red Hat Enterprise Linux 8 上的默认模块版本。模块satellite:el8
具有模块postgresql:12
和ruby:2.7
的依赖项,它将通过satellite:el8
模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期。如果您成功安装了 Satellite 软件包,则会显示以下信息:
Install is complete。请运行 satellite-installer --scenario satellite
。
2.6. 使用 chronyd 同步系统时钟
为最大程度降低时间偏移的影响,您必须将系统时钟与您要使用网络时间协议(NTP)服务器安装 Satellite 服务器的基本操作系统同步。如果基本操作系统时钟配置不正确,证书验证可能会失败。
有关 chrony
套件的更多信息,请参阅 Red Hat Enterprise Linux 8 配置基本系统设置 中的 使用 Chrony 套件配置 NTP,以及 Red Hat Enterprise Linux 7 系统管理员指南中的 使用 chrony 套件配置 NTP。
流程
安装
chrony
软件包:# yum install chrony
启动并启用
chronyd
服务:# systemctl start chronyd # systemctl enable chronyd
2.7. 在基本操作系统中安装 SOS 软件包
在基础操作系统上安装 sos 软件包,以便您可以从 Red Hat Enterprise Linux 系统中收集配置和诊断信息。您还可以使用它提供初始系统分析,在打开红帽技术支持的服务请求时需要这样做。有关使用 sos
的更多信息,请参阅 知识库解决方案 什么是 sosreport 以及如何在 Red Hat Enterprise Linux 4.6 及之后的版本中创建?
流程
安装 sos 软件包:
# yum install sos
2.8. 配置 Satellite 服务器
使用 satellite-installer
安装脚本安装 Satellite 服务器。从以下方法中选择:
- 第 2.8.1 节 “配置 Satellite 安装”.这个方法是通过一个或多个命令选项运行安装脚本来执行。命令选项覆盖对应的默认初始配置选项,并记录在 Satellite 回答文件中。您可以根据需要运行脚本来配置任何必要的选项。
根据您在运行 Satellite 安装程序时使用的选项,配置可能需要几分钟来完成。管理员可以查看应答文件,以查看之前使用这两种方法的选项。
2.8.1. 配置 Satellite 安装
此初始配置流程创建机构、位置、用户名和密码。在初始配置后,如果需要,您可以创建额外的机构和位置。初始配置还会在同一服务器上安装 PostgreSQL 数据库。
安装过程可能需要十分钟才能完成。如果您要远程连接到系统,请使用允许挂起和重新附加通信会话的工具,以便在从远程系统断开连接时检查安装过程。如果您丢失了与运行安装命令的 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
选项启用它。任何胶囊服务器和 Satellite 服务器上都应提供相同的选项。 -
默认情况下,安装程序配置的所有配置文件都由 Puppet 管理。当
satellite-installer
运行时,它会使用初始值覆盖对 Puppet 管理的文件的任何手动更改。默认情况下,卫星服务器安装有作为服务运行的 Puppet 代理。如果需要,您可以使用--puppet-runmode=none
选项禁用 Satellite 服务器上的 Puppet 代理。 -
如果要手动管理 DNS 文件和 DHCP 文件,请使用
--foreman-proxy-dns-managed=false
和--foreman-proxy-dhcp-managed=false
选项,以便 Puppet 不管理与相应服务相关的文件。有关如何对其他服务应用自定义配置的更多信息,请参阅将自定义 配置应用到 Satellite。
流程
输入以下命令以及您要使用的任何附加选项:
# satellite-installer --scenario satellite \ --foreman-initial-organization "My_Organization" \ --foreman-initial-location "My_Location" \ --foreman-initial-admin-username admin_user_name \ --foreman-initial-admin-password admin_password
脚本显示其进度,并将日志写入
/var/log/foreman-installer/satellite.log
。卸载 ISO 镜像:
在 Red Hat Enterprise Linux 8 中:
# umount /media/sat6 # umount /media/rhel8
在 Red Hat Enterprise Linux 7 中:
# umount /media/sat6 # umount /media/rhel7-server
2.9. 禁用订阅连接
在断开连接的 Satellite 服务器上禁用订阅连接,以避免连接到红帽门户网站。这也会阻止您刷新清单,更新上游权利并更改简单内容访问的状态。
流程
- 在 Satellite Web UI 中,进入到 Administer > Settings。
- 单击 Content 选项卡。
-
将
Subscription Connection Enabled
值设置为No
。
CLI 过程
在 Satellite 服务器上输入以下命令:
# hammer settings set --name subscription_connection_enabled --value false
2.10. 将红帽订阅清单导入到 Satellite 服务器中
使用以下步骤将红帽订阅清单导入到 Satellite 服务器中。
先决条件
- 您必须有从客户门户网站导出的红帽订阅清单文件。如需更多信息,请参阅 使用红帽订阅管理 中的创建和管理 清单。
- 确保您在 Satellite 服务器上禁用订阅连接。更多信息请参阅 第 2.9 节 “禁用订阅连接”。
流程
- 在 Satellite Web UI 中,确保将上下文设置为您要使用的组织。
- 在 Satellite Web UI 中,进入到 Content > Subscriptions 并点 Manage Manifest。
- 在 Manage Manifest 窗口中,点 Browse。
- 导航到包含红帽订阅清单文件的位置,然后单击 Open。如果 Manage Manifest 窗口没有自动关闭,点 Close 返回到 Subscriptions 窗口。
CLI 过程
将红帽订阅清单文件从您的客户端复制到 Satellite 服务器:
$ scp ~/manifest_file.zip root@satellite.example.com:~/.
以
root
用户身份登录 Satellite 服务器,再导入 Red Hat 订阅清单文件:# hammer subscription upload \ --file ~/manifest_file.zip \ --organization "My_Organization"
现在,您可以启用软件仓库并导入红帽内容。如需更多信息,请参阅 内容管理指南 中的导入内容。
第 3 章 在 Satellite 服务器上执行其他配置
3.1. 如何配置 Satellite 间同步
Red Hat Satellite 使用 Inter-Satellite Synchronization (ISS)在两个 Satellite 服务器间同步内容,包括 air-gapped 的内容。
您可以在以下情况下使用 ISS:
- 如果要将一些内容从 Satellite 服务器复制到其他 Satellite 服务器。例如,您的 IT 部门可从 Satellite 服务器使用的内容视图,您希望将这些内容视图从这些内容视图复制到其他 Satellite 服务器。
- 如果要将所有库内容从 Satellite 服务器复制到其他 Satellite 服务器。例如,您的 IT 部门可从库中 Satellite 服务器使用的产品和存储库,您希望将该机构中的所有产品和存储库复制到其他 Satellite 服务器。
您不能使用 ISS 将内容从 Satellite 服务器同步到胶囊服务器。胶囊服务器原生支持同步。如需更多信息,请参阅规划 Red Hat Satellite 中的 Capsule 服务器概述。
使用 ISS 的方法有多种。您可以使用的方式取决于您的多服务器设置,这些设置可能回退到以下场景之一:
3.1.1. 断开连接的场景中的 ISS 网络同步
在断开连接的场景中,有以下设置:
- 上游 Satellite 服务器连接到互联网。这个服务器会消耗来自 Red Hat Content Delivery Network (CDN)或自定义源的内容。
- 下游卫星服务器完全与所有外部网络隔离。
- 下游卫星服务器可以通过内部网络与连接的上游 Satellite 服务器通信。
图 3.1. Satellite ISS Disconnected 场景

您可以将下游 Satellite 服务器配置为通过网络同步上游 Satellite 服务器的内容。请参阅 第 3.2 节 “配置 Satellite 服务器来通过网络同步内容”。
3.1.2. Air-Gapped Scenario 中的 ISS 导出同步
在 air-gapped 场景中,有以下设置:
- 上游 Satellite 服务器连接到互联网。这个服务器会消耗来自 Red Hat CDN 或自定义源的内容。
- 下游卫星服务器完全与所有外部网络隔离。
- 下游卫星服务器没有连接到上游 Satellite 服务器的网络连接。
图 3.2. Satellite ISS Air-Gapped Scenario

air-gapped downstream Satellite 服务器接收内容更新的唯一方法是从上游 Satellite 服务器导出有效负载,使其物理到下游 Satellite 服务器,并导入有效负载。如需更多信息,请参阅 内容管理指南中的在 Satellite 服务器间同步 内容。
配置下游卫星服务器,以使用导出同步内容。请参阅 第 3.3 节 “配置 Satellite 服务器以使用导出同步内容”。
3.2. 配置 Satellite 服务器来通过网络同步内容
配置下游卫星服务器,以通过 HTTPS 从连接的上游 Satellite 服务器同步存储库。
先决条件
- 上游 Satellite 服务器和下游 Satellite 服务器之间存在网络连接。
- 您在上游和下游 Satellite 服务器上导入了订阅清单。
- 在上游 Satellite 服务器上,您可以为机构启用了所需的存储库。
上游用户是 admin 或具有以下权限:
-
view_organizations
-
view_products
-
edit_organizations
(用来下载 CA 证书) -
view_lifecycle_environments
-
view_content_views
-
-
在下游 Satellite 服务器上,您已使用
http://upstream-satellite.example.com/pub/katello-server-ca.crt
的内容导入上游 Satellite 服务器的 SSL 证书。如需更多信息,请参阅 内容管理指南中的导入 SSL 证书 。 - 下游用户是 admin 用户,或具有创建产品存储库和机构的权限。
流程
- 导航到 Content > Subscriptions。
- 点 管理清单 按钮。
- 导航到 CDN Configuration 选项卡。
- 选择 Network Sync 选项卡。
- 在 URL 字段中,输入上游 Satellite 服务器的地址。
- 在 Username 中,输入上游登录的用户名。
- 在 Password 中,输入您的密码或个人访问令牌以进行上游登录。
- 在 Organization label 字段中,输入上游机构标签。
-
可选:在 Lifecycle Environment Label 字段中输入上游生命周期环境的标签。默认为
Library
。 -
可选:在 Content view 标签 字段中,输入上游内容视图的标签。默认为
Default_Organization_View
。 - 从 SSL CA Content Credential 菜单,选择上游 Satellite 服务器使用的 CA 证书。
- 点 Update。
- 在 Satellite Web UI 中,进入到 Content > Products。
单击 Sync Now 以同步存储库。
您还可以创建同步计划以确保定期更新。如需更多信息,请参阅 内容管理指南 中的创建同步计划。
CLI 流程
- 使用 SSH 连接到您的下游 Satellite 服务器。
查看上游 CA 证书的信息:
# hammer content-credential show \ --name="My_Upstream_CA_Cert" \ --organization="My_Downstream_Organization"
记下下一步的 CA 证书的 ID。
对上游 Satellite 服务器设置 CDN 配置:
# hammer organization configure-cdn --name="My_Downstream_Organization" \ --type=network_sync \ --url https://upstream-satellite.example.com \ --username upstream_username --password upstream_password \ --ssl-ca-credential-id "My_Upstream_CA_Cert_ID" \ --upstream-organization-label="_My_Upstream_Organization" \ [--upstream-lifecycle-environment-label="My_Lifecycle_Environment"] \ [--upstream-content-view-label="My_Content_View"]
默认生命周期环境标签是
Library
。默认内容视图标签为Default_Organization_View
。
3.3. 配置 Satellite 服务器以使用导出同步内容
如果您将下游 Satellite 服务器部署为 air-gapped,请配置 Satellite 服务器以避免尝试从网络消耗内容。
流程
- 在 Satellite Web UI 中,进入到 Content > Subscriptions。
- 点 管理清单 按钮。
- 切换到 CDN 配置 选项卡。
- 选择 Export Sync 选项卡。
- 点 Update。
CLI 流程
- 使用 SSH 登录您的 Satellite 服务器。
使用导出将 CDN 配置设置为同步:
# hammer organization configure-cdn --name="My_Organization" --type=export_sync
其它资源
有关使用导出同步内容的更多信息 ,请参阅内容管理指南中的使用 导出和导入 同步内容。
3.4. 导入 Kickstart 存储库
Kickstart 软件仓库不是由内容 ISO 镜像提供。要在断开连接的 Satellite 中使用 Kickstart 软件仓库,您必须为您要使用的 Red Hat Enterprise Linux 版本下载二进制 DVD ISO 文件,并将 Kickstart 文件复制到 Satellite。
要为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,请完成 第 3.4.1 节 “为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库”。
要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,请完成 第 3.4.2 节 “为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库”。
3.4.1. 为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库
要为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,请在 Satellite 上完成以下步骤。
流程
- 访问红帽客户门户网站 at access.redhat.com 并登录。
- 在窗口的左上角,单击 Downloads。
- 在 Red Hat Enterprise Linux 7 右侧,单击 版本 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 镜像复制到 Satellite 服务器。
在 Satellite 服务器上,创建一个挂载点,并将 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/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
- 在 Satellite Web UI 中,启用 Kickstart 存储库。
3.4.2. 为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库
要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,请在 Satellite 上完成以下步骤。
流程
- 访问红帽客户门户网站 at 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 镜像复制到 Satellite 服务器。
在 Satellite 服务器上,创建一个挂载点,并将 ISO 镜像临时挂载到该位置:
# mkdir /mnt/iso # mount -o loop rhel-binary-dvd.iso /mnt/iso
为 Red Hat Enterprise Linux 8 AppStream 和 BaseOS Kickstart 软件仓库创建目录:
# 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
-
将
repository = AppStream
更改为repository = .
-
将
variant = AppStream
改为variant = BaseOS
-
将
变体 = AppStream,BaseOS
改为variants = BaseOS
-
将
-
在
[tree]
部分中,将variants = AppStream,BaseOS
更改为variants = BaseOS
。 在
[variant-BaseOS]
部分进行以下更改:-
将软件包
= BaseOS/Packages 更改为
packages
= Packages -
将
repository = BaseOS
更改为repository = .
-
将软件包
-
删除
[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
-
将
repository = AppStream
更改为repository = .
-
更改
变体 = AppStream,BaseOS
tovariants = AppStream
-
将
-
在
[tree]
部分中,将variants = AppStream,BaseOS
改为variants = AppStream
在
[variant-AppStream]
部分中进行以下更改:-
将软件包
= AppStream/Packages
改为packages = Packages
-
将
repository = AppStream
更改为repository = .
-
将软件包
-
删除文件中的以下部分:
[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
- 在 Satellite Web UI 中,启用 Kickstart 存储库。
3.5. 启用 Satellite 客户端 6 存储库
Satellite 客户端 6 存储库为注册到 Satellite 服务器的客户端提供 katello-agent
、katello-host-tools
和 puppet
软件包。您必须为每个需要管理主机的 Red Hat Enterprise Linux 版本启用软件仓库。根据您要为其启用 Satellite 客户端 6 存储库的操作系统版本,继续执行以下步骤。
3.5.1. Red Hat Enterprise Linux 9 & Red Hat Enterprise Linux 8
要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:
先决条件
- 确保您将需要的所有内容 ISO 镜像导入到 Satellite 服务器中。
流程
- 在 Satellite Web UI 中,进入到 Content > Red Hat Repositories。
- 在 Available Repositories 窗格中,启用 recommended Repositories 来获取存储库列表。
- 点 Red Hat Satellite Client 6 for RHEL 9 x86_64 (RPMs) 或 Red Hat Satellite Client 6 for RHEL 8 x86_64 (RPMs) 来扩展存储库集。
对于 x86_64 架构,请单击 + 图标以启用该存储库。
如果 Satellite Client 6 项不可见,这可能是因为它们没有包含在从客户门户网站获取的 Red Hat Subscription Manifest 中。要更正这一点,请登录到客户门户网站,添加这些软件仓库,下载 Red Hat Subscription Manifest 并将其导入到 Satellite。如需更多信息,请参阅管理内容 中的 管理红帽订阅 。
为每个主机上运行的 Red Hat Enterprise Linux 主版本启用 Satellite Client 6 软件仓库。启用红帽软件仓库后,会自动创建此软件仓库的产品。
Red Hat Enterprise Linux 9 的 CLI 步骤
使用
hammer repository-set enable
命令启用 Satellite Client 6 存储库:# hammer repository-set enable \ --basearch="x86_64" \ --name "Red Hat Satellite Client 6 for RHEL 9 x86_64 (RPMs)" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux for x86_64"
Red Hat Enterprise Linux 8 的 CLI 步骤
使用
hammer repository-set enable
命令启用 Satellite Client 6 存储库:# hammer repository-set enable \ --basearch="x86_64" \ --name "Red Hat Satellite Client 6 for RHEL 8 x86_64 (RPMs)" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux for x86_64"
3.5.2. Red Hat Enterprise Linux 7 & Red Hat Enterprise Linux 6
您需要 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 订阅来启用 Red Hat Enterprise Linux 6 的软件仓库。如需更多信息,请参阅 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 指南。
要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:
先决条件
确保您将需要的所有内容 ISO 镜像导入到 Satellite 服务器。提供
- 在 Satellite Web UI 中,进入到 Content > Red Hat Repositories。
- 在 Available Repositories 窗格中,启用 recommended Repositories 来获取存储库列表。
在 Available Repositories 窗格中,点 Satellite Client 6 (for RHEL 7 Server) (RPMs) 或 Satellite Client 6 (for RHEL 6 Server - ELS) (RPMs) 来扩展存储库集。
如果 Satellite Client 6 项不可见,这可能是因为它们没有包含在从客户门户网站获取的 Red Hat Subscription Manifest 中。要更正这一点,请登录到客户门户网站,添加这些软件仓库,下载 Red Hat Subscription Manifest 并将其导入到 Satellite。如需更多信息,请参阅管理内容 中的 管理红帽订阅 。
- 对于 x86_64 架构,请单击 + 图标以启用该存储库。为每个主机上运行的 Red Hat Enterprise Linux 主版本启用 Satellite Client 6 软件仓库。启用红帽软件仓库后,会自动创建此软件仓库的产品。
Red Hat Enterprise Linux 7 的 CLI 步骤
使用
hammer repository-set enable
命令启用 Satellite Client 6 存储库:# hammer repository-set enable \ --basearch="x86_64" \ --name "Red Hat Satellite Client 6 (for RHEL 7 Server) (RPMs)" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux Server"
Red Hat Enterprise Linux 6 的 CLI 步骤
使用
hammer repository-set enable
命令启用 Satellite Client 6 存储库:# hammer repository-set enable \ --basearch="x86_64" \ --name "Red Hat Satellite Client 6 (for RHEL 6 Server - ELS) (RPMs)" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux Server - Extended Life Cycle Support"
3.6. 同步 Satellite 客户端 6 存储库
使用本节将 Satellite 客户端 6 存储库从 Red Hat Content Delivery Network (CDN)同步到 Satellite。此存储库为注册到 Satellite 服务器的客户端提供 katello-agent
、katello-host-tools
和 puppet
软件包。根据您要同步 Satellite 客户端 6 存储库的操作系统版本,继续执行以下步骤。
3.6.1. Red Hat Enterprise Linux 9 & Red Hat Enterprise Linux 8
要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:
流程
- 在 Satellite Web UI 中,进入到 Content > Sync Status。
- 单击 Red Hat Enterprise Linux for x86_64 产品旁边的箭头,以查看可用的内容。
- 选择 Red Hat Satellite Client 6 for RHEL 9 x86_64 RPMs 或 Red Hat Satellite Client 6 for RHEL 8 x86_64 RPMs。
- 点 Synchronize Now。
Red Hat Enterprise Linux 9 的 CLI 步骤
使用
hammer repository synchronize
命令同步您的 Satellite Client 6 存储库:# hammer repository synchronize \ --name "Red Hat Satellite Client 6 for RHEL 9 x86_64 RPMs" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux for x86_64"
Red Hat Enterprise Linux 8 的 CLI 步骤
使用
hammer repository synchronize
命令同步您的 Satellite Client 6 存储库:# hammer repository synchronize \ --name "Red Hat Satellite Client 6 for RHEL 8 x86_64 RPMs" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux for x86_64"
3.6.2. Red Hat Enterprise Linux 7 & Red Hat Enterprise Linux 6
您需要 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务订阅来 同步 Red Hat Enterprise Linux 6 的软件仓库。如需更多信息,请参阅 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 指南。
要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:
流程
- 在 Satellite Web UI 中,进入到 Content > Sync Status。
- 点 Red Hat Enterprise Linux Server 或 Red Hat Enterprise Linux Server 旁边的箭头 - 延长生命周期支持 (每个产品适用于查看可用内容)。
- 根据您的操作系统版本,选择 Red Hat Satellite Client 6 (RHEL 7 Server) RPMs x86_64 或 Red Hat Satellite Client 6 for RHEL 6 Server - ELS RPMs x86_64。
- 点 Synchronize Now。
Red Hat Enterprise Linux 7 的 CLI 步骤
使用
hammer repository synchronize
命令同步您的 Satellite Client 6 存储库:# hammer repository synchronize \ --async \ --name "Red Hat Satellite Client 6 for RHEL 7 Server RPMs x86_64" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux Server"
Red Hat Enterprise Linux 6 的 CLI 步骤
使用
hammer repository synchronize
命令同步您的 Satellite Client 6 存储库:# hammer repository synchronize \ --async \ --name "Red Hat Satellite Client 6 for RHEL 6 Server - ELS RPMs x86_64" \ --organization "My_Organization" \ --product "Red Hat Enterprise Linux Server - Extended Life Cycle Support"
3.7. 在受管主机上启用电源管理
要使用智能平台管理接口(IPMI)或类似协议在受管主机上执行电源管理任务,您必须在 Satellite 服务器上启用基板管理控制器(BMC)模块。
先决条件
- 所有受管主机都必须具有 BMC 类型的网络接口。Satellite 服务器使用此 NIC 将适当的凭据传递给主机。如需更多信息,请参阅管理主机指南中的 添加基板管理控制器(BMC)接口。
流程
要启用 BMC,请输入以下命令:
# satellite-installer --foreman-proxy-bmc "true" \ --foreman-proxy-bmc-default-provider "freeipmi"
3.8. 在控制台中配置 DNS、DHCP 和 TFTP
要在 Satellite 服务器上配置 DNS、DHCP 和 TFTP 服务,请使用 satellite-installer
命令及适合您环境的选项。要查看可配置的选项列表,请输入 satellite-installer --scenario satellite --help
命令。
对设置的任何更改都需要再次输入 satellite-installer
命令。您可以多次输入命令,每次使用更改后的值更新所有配置文件。
要使用外部 DNS、DHCP 和 TFTP 服务,请参阅 第 4 章 使用外部服务配置 Satellite 服务器。
添加多宿 DHCP 详情
如果要使用 Multihomed 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.9. 为非受管网络禁用 DNS、DHCP 和 TFTP
如果要手动管理 TFTP、DHCP 和 DNS 服务,您必须防止 Satellite 在操作系统上维护这些服务,并禁用编配以避免 DHCP 和 DNS 验证错误。但是,Satellite 不会删除操作系统中的后端服务。
流程
在 Satellite 服务器上输入以下命令:
# satellite-installer --foreman-proxy-dhcp false \ --foreman-proxy-dns false \ --foreman-proxy-tftp false
- 在 Satellite Web UI 中,进入到 Infrastructure > Subnets 并选择子网。
- 单击 Capsules 选项卡,再清除 DHCP Capsule、TFTP Capsule 和 反向 DNS Capsule 字段。
- 在 Satellite Web UI 中,进入到 Infrastructure > Domains 并选择域。
- 清除 DNS Capsule 字段。
可选:如果您使用由第三方提供的 DHCP 服务,请将 DHCP 服务器配置为传递以下选项:
Option 66: IP address of Satellite or Capsule Option 67: /pxelinux.0
有关 DHCP 选项的更多信息,请参阅 RFC 2132。
当没有为给定子网和域设置胶囊时,Satellite 不会执行编排。在启用或禁用 Capsule 关联时,如果预期的记录和配置文件不存在,现有主机的编配命令可能会失败。当关联一个 Capsule 以进行打开电源编配时,请确保现有 Satellite 主机所需的 DHCP 和 DNS 记录以及 TFTP 文件,以防止主机删除失败。
3.10. 为传出电子邮件配置 Satellite 服务器
要从 Satellite 服务器发送电子邮件消息,您可以使用 SMTP 服务器或 sendmail
命令。
前提条件
-
已知的某些具有反垃圾邮件保护或问候功能的 SMTP 服务器会导致问题。要设置具有此类服务的传出电子邮件,可以安装和配置卫星服务器上的 vanilla SMTP 服务进行转发,或者使用
sendmail
命令。
流程
- 在 Satellite Web UI 中,进入到 Administer > Settings。
单击 Email 选项卡,并将配置选项设置为与您首选的发送方法匹配。更改会立即生效。
以下示例显示了使用 SMTP 服务器的配置选项:
表 3.1. 使用 SMTP 服务器作为发送方法
Name 示例值 交付方法
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 服务器
Name 示例值 交付方法
SMTP
SMTP 地址
smtp.gmail.com
SMTP 身份验证
plain
SMTP HELO/EHLO 域
smtp.gmail.com
SMTP 启用 StartTLS 自动
是
SMTP 密码
password
SMTP 端口
587
SMTP 用户名
user@gmail.com
以下示例使用
sendmail
命令作为发送方法:表 3.3. 使用 sendmail 作为发送方法
Name 示例值 交付方法
sendmail
Sendmail 位置
/usr/sbin/sendmail
Sendmail 参数
-i
出于安全考虑,Sendmail 位置和 Sendmail 参数设置都是只读的,只能在
/etc/foreman/settings.yaml
中设置。目前无法通过satellite-installer
设置这两个设置。如需更多信息,请参阅 sendmail 1 man page。
如果您决定使用 TLS 验证的 SMTP 服务器发送电子邮件,请执行以下步骤之一:
将 SMTP 服务器的 CA 证书标记为可信。要做到这一点,请在 Satellite 服务器上执行以下命令:
# cp mailca.crt /etc/pki/ca-trust/source/anchors/ # update-ca-trust enable # update-ca-trust
其中
mailca.crt
是 SMTP 服务器的 CA 证书。-
或者,在 Satellite Web UI 中,将
SMTP enable StartTLS auto
选项设置为No
。
-
单击 Test email,将测试消息发送到用户的电子邮件地址,以确认配置是否正常工作。如果消息无法发送,Satellite Web UI 会显示错误。详情请查看
/var/log/foreman/production.log
的日志。
有关为单个用户或用户组配置电子邮件通知的详情,请参考 管理 Red Hat Satellite 中的配置电子邮件通知。https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.11/html-single/administering_red_hat_satellite/index#Configuring_Email_Notifications_admin
3.11. 使用自定义 SSL 证书配置 Satellite 服务器
默认情况下,Red Hat Satellite 使用自签名 SSL 证书来启用 Satellite 服务器、外部胶囊服务器和所有主机之间的加密通信。如果无法使用 Satellite 自签名证书,您可以将 Satellite 服务器配置为使用由外部证书颁发机构(CA)签名的 SSL 证书。
当使用自定义 SSL 证书配置 Red Hat Satellite 时,您必须满足以下要求:
- 您必须对 SSL 证书使用隐私增强型邮件(PEM)编码。
- 您不能将相同的 SSL 证书用于 Satellite 服务器和 Capsule 服务器。
- 同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。
- SSL 证书也不能是 CA 证书。
- SSL 证书必须包含与通用名称(CN)匹配的主题 alt name (SAN)条目。
- 在使用密钥用法扩展时,必须允许 SSL 证书。
- SSL 证书不能有短名称作为 CN。
- 您不能为私钥设置密码短语。
要使用自定义证书配置 Satellite 服务器,请完成以下步骤:
- 第 3.11.1 节 “为 Satellite 服务器创建自定义 SSL 证书”
- 第 3.11.2 节 “将自定义 SSL 证书部署到 Satellite 服务器”
- 第 3.11.3 节 “将自定义 SSL 证书部署到主机”
- 如果您的外部胶囊服务器注册到 Satellite 服务器,请使用自定义 SSL 证书进行配置。如需更多信息,请参阅安装 Capsule 服务器 中的 配置带有自定义 SSL 证书的 Capsule 服务器。
3.11.1. 为 Satellite 服务器创建自定义 SSL 证书
使用这个流程为 Satellite 服务器创建自定义 SSL 证书。如果您已有 Satellite 服务器的自定义 SSL 证书,请跳过此步骤。
流程
要存储所有源证书文件,请创建一个只能被
root
用户访问的目录:# mkdir /root/satellite_cert
创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密。如果您使用密码保护的私钥,请删除私钥密码。
如果您已有此 Satellite 服务器的私钥,请跳过这一步。
# 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 ] CN = satellite.example.com [ 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
生成 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
将证书签名请求发送到证书颁发机构(CA)。同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。
提交请求时,指定证书的寿命。发送证书请求的方法会有所不同,因此请查阅 CA 查看首选方法。为了响应请求,您可以在单独的文件中接收 CA 捆绑包和签名证书。
3.11.2. 将自定义 SSL 证书部署到 Satellite 服务器
使用这个流程将 Satellite 服务器配置为使用证书颁发机构签名的自定义 SSL 证书。katello-certs-check
命令验证输入证书文件,并返回将自定义 SSL 证书部署到 Satellite 服务器所需的命令。
不要将 SSL 证书或 .tar 捆绑包存储在 /tmp
或 /var/tmp
目录中。操作系统定期从这些目录中删除文件。因此,satellite-installer
在启用功能或升级 Satellite 服务器时无法执行。
流程
验证自定义 SSL 证书输入文件。请注意,对于
katello-certs-check
命令正常工作,证书中的通用名称(CN)必须与 Satellite 服务器的 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
命令,其中之一必须用于部署证书到 Satellite 服务器。katello-certs-check
的输出示例Validation succeeded. To install the Red Hat Satellite Server with the custom certificates, run: satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" To update the certificates on a currently running Red Hat Satellite installation, run: satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \ --certs-update-server --certs-update-server-ca
请注意,不得访问或修改
/root/ssl-build
。根据您的要求,在
katello-certs-check
命令的输出中,输入satellite-installer
命令,该命令使用自定义 SSL 证书或更新当前运行的 Satellite 上的证书。如果您不确定要运行的命令,您可以通过检查文件
/etc/foreman-installer/scenarios.d/.installed
来验证是否安装了 Satellite。如果文件存在,请运行第二个satellite-installer
命令来更新证书。重要在部署证书后,Satellite-installer
需要证书存档文件。不要修改或删除它。例如,升级 Satellite 服务器时需要这样做。-
在可访问 Satellite 服务器的计算机上,导航到以下 URL
:
- 在您的浏览器中,查看证书详情以验证部署的证书。
3.11.3. 将自定义 SSL 证书部署到主机
在将 Satellite 服务器配置为使用自定义 SSL 证书后,还必须在注册到此 Satellite 服务器的每个主机上安装 katello-ca-consumer
软件包。
流程
在每个主机上安装
katello-ca-consumer
软件包:# yum localinstall \ http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
3.12. 在 Satellite 中使用外部数据库
作为 Red Hat Satellite 的安装过程的一部分,satellite-installer 命令会在与 Satellite 相同的服务器上安装 PostgreSQL 数据库。在某些 Satellite 部署中,使用外部数据库而不是默认的本地数据库可帮助进行服务器负载。
红帽不提供对外部数据库维护的支持或工具。这包括备份、升级和数据库调优。您必须具有自己的数据库管理员才能支持和维护外部数据库。
要为 Satellite 创建和使用外部数据库,您必须完成以下步骤:
- 第 3.12.2 节 “为外部数据库准备主机”.准备一个 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux 7 服务器来托管外部数据库。
- 第 3.12.3 节 “安装 PostgreSQL”.使用 Satellite 的数据库准备 PostgreSQL,使用拥有他们的专用用户 Candlepin 和 Pulp。
-
第 3.12.4 节 “配置 Satellite 服务器以使用外部数据库”.编辑
satellite-installer
的参数以指向新数据库,并运行satellite-installer
。
3.12.1. PostgreSQL 作为外部数据库注意事项
Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,则以下信息可帮助您确定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 12。
外部 PostgreSQL 的优点:
- 在 Satellite 上增加可用内存和可用 CPU
-
在 PostgreSQL 数据库上设置
shared_buffers
的灵活性,使其没有与 Satellite 上的其他服务干扰的风险 - 在不影响 Satellite 操作的情况下灵活地调整 PostgreSQL 服务器系统
外部 PostgreSQL 的缺点
- 增加部署复杂性,使故障排除变得更加困难
- 外部 PostgreSQL 服务器是一个额外的系统来修补和维护
- 如果 Satellite 或 PostgreSQL 数据库服务器都存在硬件或存储故障,则 Satellite 无法正常工作
- 如果 Satellite 服务器和数据库服务器之间有延迟,则性能可能会下降
如果您怀疑 Satellite 上的 PostgreSQL 数据库导致性能问题,请在 Satellite 6 中使用信息:如何启用 postgres 查询日志记录来检测运行较慢的查询,以确定您是否有缓慢的查询。超过一秒的查询通常是由于大型安装出现性能问题导致的,而迁移到外部数据库可能并不有所帮助。如果您的查询缓慢,请联系红帽支持团队。
3.12.2. 为外部数据库准备主机
使用最新的 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux 7 服务器安装一个全新的置备系统,以托管外部数据库。
Red Hat Software Collections 和 Red Hat Enterprise Linux 的订阅不提供将 Satellite 与外部数据库使用的正确服务级别协议。您还必须将 Satellite 订阅附加到要用于外部数据库的基本操作系统。
先决条件
- 准备的主机必须满足 Satellite 的存储要求。
流程
- 按照 附加 Satellite Infrastructure 订阅 中的说明,将 Satellite 订阅附加到您的服务器。
禁用所有软件仓库并只启用以下软件仓库:
Red Hat Enterprise Linux 7:
# subscription-manager repos --disable '*' # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \ --enable=rhel-7-server-rpms --enable=rhel-7-server-satellite-6.11-rpms
Red Hat Enterprise Linux 8:
# subscription-manager repos --disable '*' # subscription-manager repos \ --enable=satellite-6.11-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms \ --enable=rhel-8-for-x86_64-appstream-rpms
在 Red Hat Enterprise Linux 8 中启用以下模块:
# dnf module enable satellite:el8
注意启用模块
satellite:el8
会警告与postgresql:10
和ruby:2.5
冲突,因为这些模块被设置为 Red Hat Enterprise Linux 8 上的默认模块版本。模块satellite:el8
具有模块postgresql:12
和ruby:2.7
的依赖项,它将通过satellite:el8
模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期。
3.12.3. 安装 PostgreSQL
您只能在内部数据库安装过程中安装 satellite-installer
工具安装的相同版本的 PostgreSQL。您可以使用 Red Hat Enterprise Linux 8 或 Red Hat Enterprise Linux Server 7 软件仓库安装 PostgreSQL。Satellite 支持 PostgreSQL 版本 12。
3.12.3.1. 在 Red Hat Enterprise Linux 8 上安装 PostgreSQL
流程
要安装 PostgreSQL,请输入以下命令:
# dnf install postgresql-server postgresql-evr
要初始化 PostgreSQL,请输入以下命令:
# postgresql-setup initdb
编辑
/var/lib/pgsql/data/postgresql.conf
文件:# vi /var/lib/pgsql/data/postgresql.conf
删除
#
并编辑以侦听入站连接:listen_addresses = '*'
编辑
/var/lib/pgsql/data/pg_hba.conf
文件:# vi /var/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
从 Satellite 服务器中,测试您可以访问数据库。如果连接成功,命令会返回
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.12.3.2. 在 Red Hat Enterprise Linux 7 上安装 PostgreSQL
流程
要安装 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
删除
#
并编辑以侦听入站连接:listen_addresses = '*'
编辑
/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
文件:# 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
从 Satellite 服务器中,测试您可以访问数据库。如果连接成功,命令会返回
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.12.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 --katello-candlepin-db-ssl-ca <path_to_CA> --foreman-proxy-content-pulpcore-postgresql-ssl true --foreman-proxy-content-pulpcore-postgresql-ssl-root-ca <path_to_CA>
3.13. 使用预定义的配置集调整 Satellite 服务器
如果您的 Satellite 部署包含超过 5000 个主机,您可以使用预定义的调优配置文件来提高 Satellite 的性能。
请注意,您不能在 Capsules 上使用调优配置集。
您可以根据 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
- 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/sizes/
中的。将配置条目与您的/etc/foreman-installer/custom-hiera.yaml
文件中的条目进行比较,并删除/etc/foreman-installer/custom-hiera.yaml
文件中的任何重复配置设置。 使用您要应用的配置文件的
--tuning
选项输入satellite-installer
命令。例如,要应用中型调优配置文件设置,请输入以下命令:# satellite-installer --tuning medium
第 4 章 使用外部服务配置 Satellite 服务器
如果您不想在 Satellite 服务器上配置 DNS、DHCP 和 TFTP 服务,请使用本节将 Satellite 服务器配置为处理外部 DNS、DHCP 和 TFTP 服务。
4.1. 使用外部 DNS 配置 Satellite 服务器
您可以使用外部 DNS 配置 Satellite 服务器。Satellite 服务器使用 nsupdate
实用程序更新远程服务器上的 DNS 记录。
要使任何更改持久,您必须使用适合您的环境的选项输入 satellite-installer
命令。
先决条件
- 您必须已配置了外部 DNS 服务器。
- 本指南假设您有现有的安装。
流程
将
/etc/rndc.key
文件从外部 DNS 服务器复制到 Satellite 服务器:# scp root@dns.example.com:/etc/rndc.key /etc/foreman-proxy/rndc.key
配置所有权、权限和 SELinux 上下文:
# restorecon -v /etc/foreman-proxy/rndc.key # chown -v root:foreman-proxy /etc/foreman-proxy/rndc.key # chmod -v 640 /etc/foreman-proxy/rndc.key
要测试
nsupdate
工具,请远程添加主机:# echo -e "server DNS_IP_Address\n \ update add aaa.example.com 3600 IN A Host_IP_Address\n \ send\n" | nsupdate -k /etc/foreman-proxy/rndc.key # nslookup aaa.example.com DNS_IP_Address # echo -e "server DNS_IP_Address\n \ update delete aaa.example.com 3600 IN A Host_IP_Address\n \ send\n" | nsupdate -k /etc/foreman-proxy/rndc.key
输入
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/foreman-proxy/rndc.key
- 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 找到 Satellite Server,然后从 Actions 列中的列表中选择 Refresh。
- 将 DNS 服务与适当的子网和域关联。
4.2. 使用外部 DHCP 配置 Satellite 服务器
要使用外部 DHCP 配置 Satellite 服务器,您必须完成以下步骤:
4.2.1. 配置外部 DHCP 服务器以与 Satellite 服务器一起使用
要将运行 Red Hat Enterprise Linux 的外部 DHCP 服务器配置为与 Satellite 服务器搭配使用,您必须安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)或其实用程序软件包。您还必须与 Satellite 服务器共享 DHCP 配置和租用文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。
如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override
设置。这是必要的,因为 Satellite 在 TFTP 服务器上创建 grub2/
子目录下的配置文件。如果禁用了 dhcp-no-override
设置,客户端会从根目录获取引导装载程序及其配置,这可能会导致错误。
流程
在您的 Red Hat Enterprise Linux 主机上,根据您的主机版本安装 ISC DHCP Service 和 BIND 软件包。
对于 Red Hat Enterprise Linux 7 主机:
# yum install dhcp bind
对于 Red Hat Enterprise Linux 8 主机:
# yum install dhcp-server bind-utils
生成安全令牌:
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
因此,当前目录中创建由两个文件组成的密钥对。
从密钥复制 secret 哈希:
# grep ^Key Komapi_key.+*.private | 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;
请注意,
选项
router 值是您要与外部 DHCP 服务一起使用的 Satellite 或 Capsule IP 地址。- 从在其中创建文件的目录中删除这两个密钥文件。
在管理门户中,定义每个子网。不要为定义的子网设置 DHCP Capsule。
要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在 Satellite Web UI 中将保留范围定义为 192.168.38.101 to 192.168.38.250。
配置防火墙以从外部访问 DHCP 服务器:
# firewall-cmd --add-service dhcp \ && firewall-cmd --runtime-to-permanent
在 Satellite 服务器上,确定
foreman
用户的 UID 和 GID:# id -u foreman 993 # id -g foreman 990
在 DHCP 服务器上,创建
foreman
用户和组,其 ID 与上一步中确定的 ID 相同:# 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 地址是您要与外部 DHCP 服务一起使用的 Satellite 或 Capsule IP 地址。
重新载入 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 服务器配置 Satellite 服务器。
前提条件
- 确保您已配置了外部 DHCP 服务器,并且您已与 Satellite 服务器共享 DHCP 配置和租用文件。更多信息请参阅 第 4.2.1 节 “配置外部 DHCP 服务器以与 Satellite 服务器一起使用”。
流程
安装
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
- 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 找到 Satellite Server,然后从 Actions 列中的列表中选择 Refresh。
- 将 DHCP 服务与适当的子网和域关联。
4.3. 使用外部 TFTP 配置 Satellite 服务器
您可以使用外部 TFTP 服务配置 Satellite 服务器。
流程
为 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
- 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 找到 Satellite Server,然后从 Actions 列中的列表中选择 Refresh。
- 将 TFTP 服务与适当的子网和域关联。
4.4. 使用外部 IdM DNS 配置 Satellite 服务器
当 Satellite 服务器为主机添加 DNS 记录时,它会首先确定哪个胶囊为该域提供 DNS。然后,它与配置为为您的部署提供 DNS 服务的 Capsule 通信并添加记录。主机不涉及此过程。因此,您必须在当前配置为使用 IdM 服务器管理的域提供 DNS 服务的 Satellite 或 Capsule 上安装和配置 IdM 客户端。
Satellite 服务器可以配置为使用红帽身份管理(IdM)服务器来提供 DNS 服务。有关红帽身份管理的更多信息,请参阅 Linux 域身份、身份验证和策略指南。
要将 Satellite 服务器配置为使用 Red Hat Identity Management (IdM)服务器来提供 DNS 服务,请使用以下流程之一:
要恢复到内部 DNS 服务,请使用以下流程:
您不需要使用 Satellite 服务器来管理 DNS。当您使用 Satellite 的域注册功能时,调配的主机会自动注册到 IdM 时,ipa-client-install
脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置 Satellite 服务器是互斥的。有关配置域注册的更多信息,请参阅管理 Red Hat Satellite 指南中的置备主机 的 外部身份验证。
4.4.1. 使用 GSS-TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为对 RFC3645 中定义的 secret 密钥事务(GSS-TSIG)技术使用通用安全服务算法。要将 IdM 服务器配置为使用 GSS-TSIG 技术,您必须在 Satellite 服务器基本操作系统上安装 IdM 客户端。
先决条件
- 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 Linux 域身份、身份验证和策略指南 中的 端口要求。
- 您必须联系 IdM 服务器管理员,以确保在 IdM 服务器上获取具有在 IdM 服务器上创建区域权限的 IdM 服务器上的帐户。
- 您应创建应答文件的备份。如果应答文件损坏,您可以使用备份将应答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器。
流程
要使用 GSS-TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:
在 IdM 服务器中创建 Kerberos Principal
为从 IdM 管理员获取的帐户获取 Kerberos 票据:
# kinit idm_user
为 Satellite 服务器创建一个新的 Kerberos 主体,用于在 IdM 服务器上进行身份验证。
# ipa service-add capsule/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
文件,将 group 和 owner 设置为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。
- 启用 Allow 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 或 Capsule 服务器
使用
satellite-installer
命令配置管理域的 DNS 服务的 Satellite 或 Capsule:在 Satellite 上输入以下命令:
satellite-installer --scenario satellite \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --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
在 Capsule 上输入以下命令:
satellite-installer --scenario capsule \ --foreman-proxy-dns=true \ --foreman-proxy-dns-managed=false \ --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
运行 satellite-installer
命令并对 Capsule 配置进行任何更改后,您必须更新 Satellite Web UI 中每个受影响的胶囊的配置。
在 Satellite Web UI 中更新配置
- 在 Satellite Web UI 中,进入到 Infrastructure > Capsules,找到 Satellite 服务器,从 Actions 列中的列表中,选择 Refresh。
配置域:
- 在 Satellite Web UI 中,进入到 Infrastructure > Domains 并选择域名。
- 在 Domain 选项卡中,确保 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 在 Satellite Web UI 中,进入到 Infrastructure > Subnets 并选择子网名称。
- 在 Subnet 选项卡中,将 IPAM 设置为 None。
- 在 Domains 选项卡中,选择您要使用 IdM 服务器管理的域。
- 在 Capsules 选项卡中,确保 Reverse DNS Capsule 设置为连接子网的 Capsule。
- 点 Submit 以保存更改。
4.4.2. 使用 TSIG 身份验证配置动态 DNS 更新
您可以将 IdM 服务器配置为对 DNS (TSIG)技术使用 rndc.key
密钥文件进行身份验证的 secret 密钥事务身份验证。TSIG 协议在 RFC2845 中定义。
先决条件
- 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 Linux 域身份、身份验证和策略指南 中的 端口要求。
-
您必须在 IdM 服务器上获取
root
用户访问权限。 - 您必须确认 Satellite 服务器或 Capsule 服务器是否已配置为为您的部署提供 DNS 服务。
- 您必须在为部署管理 DNS 服务的 Satellite 或 Capsule 的基本操作系统上配置 DNS、DHCP 和 TFTP 服务。
- 您必须创建应答文件的备份。如果应答文件损坏,您可以使用备份将应答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器。
流程
要使用 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"; }; }; ########################################################################
重新载入
named
服务以使更改生效:# systemctl reload named
在 IdM Web UI 中,进入到 Network Services & gt; 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
用户分配给named
组。通常,satellite-installer 确保foreman-proxy
用户属于named
UNIX 组,但是在这种情况下,Satellite 不管理用户和组,因此您需要手动将foreman-proxy
用户分配给named
组。# 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 服务器上的
/etc/rndc.key
文件中的密钥与 IdM 服务器上使用的密钥相同:key "rndc-key" { algorithm hmac-md5; secret "secret-key=="; };
在受管主机上,为主机创建测试 DNS 条目。例如,主机
test.example.com
在 IdM 服务器上 A 记录为192.168.25.20
,地址为192.168.25.1
。# 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 服务
您可以恢复到使用 Satellite 服务器和 Capsule 服务器作为 DNS 提供程序。您可以使用配置外部 DNS 之前创建的应答文件备份,或者您可以创建应答文件的备份。有关应答文件的更多信息,请参阅配置 Satellite 服务器。
流程
在您要配置为管理域的 DNS 服务的 Satellite 或 Capsule 服务器上,完成以下步骤:
将 Satellite 或 Capsule 配置为 DNS 服务器
如果您在配置外部 DNS 前创建了回答文件备份,请恢复应答文件,然后输入
satellite-installer
命令:# satellite-installer
如果您没有应答文件的合适的备份,请立即创建应答文件的备份。要在不使用应答文件的情况下将 Satellite 或 Capsule 配置为 DNS 服务器,请在 Satellite 或 Capsule 上输入以下
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"
如需更多信息,请参阅 在胶囊服务器上配置 DNS、DHCP 和 TFTP。
运行 satellite-installer
命令并对 Capsule 配置进行任何更改后,您必须更新 Satellite Web UI 中每个受影响的胶囊的配置。
在 Satellite Web UI 中更新配置
- 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 对于您要更新的每个胶囊,从 Actions 列表中选择 Refresh。
配置域:
- 在 Satellite Web UI 中,进入到 Infrastructure > Domains,然后点击您要配置的域名。
- 在 Domain 选项卡中,将 DNS Capsule 设置为连接子网的胶囊。
配置子网:
- 在 Satellite Web UI 中,进入到 Infrastructure > Subnets 并选择子网名称。
- 在 Subnet 选项卡中,将 IPAM 设置为 DHCP 或 Internal DB。
- 在 Domains 选项卡中,选择您要使用 Satellite 或 Capsule 管理的域。
- 在 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
管理。如果在初始安装程序运行期间没有指定这些标志,则重新运行安装程序会覆盖所有手动更改,例如,用于升级目的。如果更改被覆盖,您必须运行恢复过程来恢复手动更改。如需更多信息,请参阅恢复由 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
Satellite 安装程序的 Puppet 模块存储在 /usr/share/foreman-installer/modules
下。检查 .pp
文件(例如: moduleName/manifests/example.pp)来查找类、参数和值。或者,使用 grep
命令进行关键字搜索。
设置一些值可能会对 Red Hat Satellite 的性能或功能造成意外的后果。在应用之前,请考虑更改的影响,然后首先测试非生产环境中的更改。如果您没有非生产环境的 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。
- 点 管理清单 按钮。
- 切换到 CDN 配置 选项卡。
- 选择 Red Hat CDN。
编辑 URL 字段以指向 Red Hat CDN URL:
- 点 Update。
现在,Satellite 服务器被配置为在下次同步存储库时从 Red Hat CDN 下载内容。
CLI 流程
- 使用 SSH 登录 Satellite 服务器。
使用 Hammer 重新配置 CDN:
# hammer organization configure-cdn --name="My_Organization" --type=redhat_cdn