从连接的网络安装卫星服务器


Red Hat Satellite 6.9

从连接的网络安装 Red Hat Satellite Server

摘要

本指南论述了如何从连接的网络安装 Red Hat Satellite、执行初始配置和配置外部服务。

第 1 章 为安装准备您的环境

在安装 Satellite 前,请确保您的环境满足以下要求。

1.1. 系统要求

以下要求适用于联网的基础操作系统:

  • x86_64 架构
  • Red Hat Enterprise Linux 7 Server 的最新版本
  • 至少 4 核 2.0 GHz CPU
  • Satellite 服务器需要至少 20 GB RAM 才能正常工作。另外,还建议使用至少 4 GB RAM swap 空间。比最小值小的 RAM 运行的 Satellite 可能无法正常工作。
  • 唯一主机名,可以包含小写字母、数字、句点(.)和连字符(-)
  • 当前的 Red Hat Satellite 订阅
  • 管理用户(root)访问权限
  • 系统 umask 为 0022
  • 使用完全限定域名进行全正向和反向 DNS 解析

在安装卫星服务器前,请确保您的环境满足安装要求。

除了运行卫星服务器外,必须在全新调配的系统上安装卫星服务器,该系统中不提供其他功能。全新置备的系统不得由外部身份提供程序提供以下用户,以避免与 Satellite 服务器创建的本地用户冲突:

  • postgres
  • mongodb
  • Apache
  • qpidd
  • qdrouterd
  • squid
  • foreman
  • tomcat
  • foreman-proxy
  • puppet
  • puppetserver

认证的虚拟机监控程序

卫星服务器在支持运行 Red Hat Enterprise Linux 的虚拟机监控程序上运行的物理系统和虚拟机均完全支持。有关认证的虚拟机监控程序的更多信息,请参阅 哪个管理程序经过认证来运行 Red Hat Enterprise Linux?

SELinux Mode

必须启用 SELinux,可以是 enforcing 或 permissive 模式。不支持使用禁用 SELinux 进行安装。

FIPS 模式

您可以在在 FIPS 模式中运行的 Red Hat Enterprise Linux 系统上安装 Satellite 服务器。如需更多信息,请参阅 Red Hat Enterprise Linux 安全指南 中的 启用 FIPS 模式

1.2. 存储要求

下表详细介绍了特定目录的存储要求。这些值基于预期的用例情景,可能视各个环境而异。

运行时大小通过 Red Hat Enterprise Linux 6、7 和 8 个同步功能来衡量。

Expand
表 1.1. Satellite 服务器安装的存储要求
目录安装大小运行时大小

/var/cache/pulp/

1 MB

20 GB

/var/lib/pulp/

1 MB

300 GB

/var/lib/mongodb/

3.5 GB

50 GB

/var/lib/qpidd/

25 MB

不适用

/var/log/

10 MB

10 GB

/var/opt/rh/rh-postgresql12

100 MB

10 GB

/var/spool/squid/

0 MB

10 GB

/usr

3 GB

不适用

/opt

3 GB

不适用

/opt/puppetlabs

500 MB

不适用

1.3. 存储指南

在安装卫星服务器以提高效率时,请考虑以下指南:

  • 如果将 /tmp 目录挂载为单独的文件系统,则必须使用 /etc/fstab 文件中的 exec 挂载选项。如果 /tmp 已通过 noexec 选项挂载,您必须将选项更改为 exec 并重新挂载文件系统。这是 puppetserver 服务正常工作的要求。
  • 因为大多数 Satellite 服务器数据都存储在 /var 目录中,所以在 LVM 存储中挂载 /var 可以帮助系统扩展。
  • 在同步后,对 /var/cache/pulp/ 目录和 /var/lib/pulp/ 目录使用相同的卷可以减少将内容从 /var/cache/pulp/ 移动到 /var/lib/pulp/ 所需的时间。
  • /var/lib/qpidd/ 目录为每个由 goferd 服务管理的内容主机使用的时间稍超过 2 MB。例如: 10 000 内容主机需要在 /var/lib/qpidd/ 中有 20 GB 磁盘空间。
  • /var/lib/pulp//var/lib/mongodb/ 目录使用高带宽、低延迟存储。因为红帽卫星具有许多 I/O 密集型操作,使用高延迟和低带宽存储会导致性能下降。确保您的安装有范围 60 - 80 兆字节每秒的速度。您可以使用 fio 工具获取此数据。有关使用 fio 工具的更多信息,请参阅关于卫星操作的磁盘解决方案影响

文件系统指南

  • 将 XFS 文件系统用于 Red Hat Satellite 6,因为它没有 ext4 的内节点限制。由于卫星服务器使用很多符号链接,因此如果使用的是 ext4 和默认内节点数量,您的系统可能会从内节点中运行。
  • 不要将 NFS 与 MongoDB 搭配使用,因为 MongoDB 不使用传统的 I/O 访问数据文件和当数据文件托管在 NFS 中时发生的性能问题。如果需要使用 NFS,请使用 /etc/fstab 文件中的以下选项挂载卷: bgnolocknoatime
  • 不要将 NFS 用于 Pulp 数据存储。将 NFS 用于 Pulp 对内容同步具有负面影响。
  • 不要使用 GFS2 文件系统作为输入-输出延迟过高。

日志文件存储

日志文件被写入 /var/log/messages/、/ var/log/httpd//var/lib/foreman-proxy/openscap/content/。您可以使用 logrotate 管理这些文件的大小。如需更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的日志轮转https://access.redhat.com/documentation/en-us/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/content  nfs  context="system_u:object_r:httpd_sys_rw_content_t:s0"  1 2
Copy to Clipboard Toggle word wrap

如果 NFS 共享已被挂载,使用上述配置重新挂载它,并输入以下命令:

# chcon -R system_u:object_r:httpd_sys_rw_content_t:s0 /var/lib/pulp
Copy to Clipboard Toggle word wrap

重复的软件包

在不同存储库中重复的软件包仅在磁盘上存储一次。包含重复软件包的额外软件仓库不需要较少的存储。大量存储位于 /var/lib/mongodb//var/lib/pulp/ 目录中。这些端点不是手动配置的。确定 /var 文件系统中有存储以防止存储问题。

临时存储

/var/cache/pulp/ 目录用于在同步时临时存储内容。完成完整同步任务后,内容将移到 /var/lib/pulp/ 目录中。

对于 RPM 格式的内容,每个 RPM 文件会在同步后移到 /var/lib/pulp 目录中。最多 5 RPM 文件存储在 /var/cache/pulp/ 目录中。默认情况下,最多 8 个 RPM 内容同步任务可以同时运行,每个任务都使用最多 1 GB 元数据。

Software Collections

软件集合安装在 /opt/rh//opt/theforeman/ 目录中。

安装至 /opt 目录需要 root 用户写入和执行权限。

符号链接

您不能对 /var/lib/pulp//var/lib/mongodb/ 使用符号链接。

同步 RHEL ISO

如果您计划将 RHEL 内容 ISO 与 Satellite 同步,请注意,所有 Red Hat Enterprise Linux 次要版本也会同步。您必须计划在 Satellite 上有足够的存储来管理它。

1.4. 支持的操作系统

您可以从磁盘、本地 ISO 镜像、kickstart 或者红帽支持的任何其他方法安装操作系统。安装卫星服务器 6.9 时,仅在最新版本的红帽企业 Linux 7 服务器上支持红帽卫星服务器。不支持以前版本的 Red Hat Enterprise Linux,包括 EUS 或 z-stream。

Red Hat Enterprise Linux 需要带有 @Base 软件包组的 Red Hat Enterprise Linux 安装,且没有其他软件包的修改,且不需要第三方配置或软件来直接进行服务器直接操作。这种限制包括强化和其它非红帽安全软件。如果您的基础架构需要此类软件,首先安装和验证完整的卫星服务器,然后在添加任何非红帽软件前创建系统的备份。

在新调配的系统上安装卫星服务器。

除了运行卫星服务器外,红帽不支持将系统用于任何其他内容。

1.5. 支持的浏览器

Satellite 支持 Firefox 和 Google Chrome 浏览器的最新版本。

卫星 Web UI 和命令行界面支持英语、葡萄牙语、简体中文、韩语、韩语、意大利语、西班牙语、俄语、法语和德语。

1.6. 端口和防火墙要求

若要使卫星架构的组件进行通信,请确保在基础操作系统中打开并释放所需的网络端口。您还必须在任何基于网络的防火墙中打开所需的网络端口。

使用此信息配置任何基于网络的防火墙。请注意,有些云解决方案必须经过特别配置,以允许计算机间的通信,因为它们与基于网络的防火墙类似隔离计算机。如果您使用基于应用程序的防火墙,请确保基于应用程序的防火墙允许所有在表中列出并在防火墙中已知的应用程序。如果可能,禁用应用程序检查并允许基于协议打开的端口通信。

集成胶囊

卫星服务器具有一个集成的胶囊,并且任何直接连接到卫星服务器的主机都是本节上下文中卫星的客户端。这包括运行胶囊服务器的基础操作系统。

胶囊的客户端

主机(即卫星的集成胶囊以外的客户端)不需要访问卫星服务器。有关 Satellite 拓扑的更多信息,请参阅规划 Red Hat Satellite 6 中的 胶囊网络

所需端口可能会根据您的配置而改变。

有关端口列表,请访问红帽知识库解决方案 Red Hat Satellite Networking List of Network Ports

下表描述了目的地端口和网络流量的方向:

Expand
表 1.2. Satellite 到红帽 CDN 通信的端口
端口协议Service必需

443

TCP

HTTPS

订阅管理服务(access.redhat.com),并连接到红帽 CDN(cdn.redhat.com)。

Satellite 服务器需要访问红帽 CDN。如需红帽 CDN(cdn.redhat.com)使用的 IP 地址列表,请参阅红帽客户门户网站中 红帽公共 CIDR 列表 文章。

Expand
表 1.3. Satellite 的基于浏览器的用户界面访问的端口
端口协议Service必需

443

TCP

HTTPS

基于浏览器的 UI 访问 Satellite

80

TCP

HTTP

重定向至 HTTPS,以便 Web UI 访问 Satellite(可选)

Expand
表 1.4. 客户端到 Satellite 通信的端口
端口协议Service必需

80

TCP

HTTP

Anaconda、yum 用于获取 Katello 证书、模板以及下载 iPXE 固件

443

TCP

HTTPS

订阅管理服务、yum、Teleme Services 和连接到 Katello Agent

5646

TCP

AMQP

Capsule Qpid 将路由器分配到卫星中的 Qpid 分配路由器

5647

TCP

AMQP

Katello Agent 与卫星的 Qpid 分配路由器通信

8000

TCP

HTTP

Anaconda 以将 kickstart 模板下载到主机,以及下载 iPXE 固件

8140

TCP

HTTPS

Puppet 代理连接到 Puppet master 连接

9090

TCP

HTTPS

将 SCAP 报告发送到集成胶囊,在调配期间进行发现镜像,以及与卫星服务器通信,以复制用于远程执行(Rex)配置的 SSH 密钥

7

TCP 和 UDP

ICMP

客户端上的外部 DHCP 到 Satellite 网络,验证 IP 地址是空闲的(可选)

53

TCP 和 UDP

DNS

客户端 DNS 查询卫星的集成胶囊 DNS 服务(可选)

67

UDP

DHCP

客户端到卫星的集成胶囊广播,从卫星的集成胶囊(可选)客户端调配的 DHCP 广播

69

UDP

TFTP

客户端从卫星的集成胶囊下载 PXE 引导镜像文件,以进行调配(可选)

5000

TCP

HTTPS

与 Katello 连接,用于 Docker registry(可选)

任何直接连接到卫星服务器的受管主机都是此上下文中的客户端,因为它是集成胶囊的客户端。这包括运行胶囊服务器的基础操作系统。

Expand
表 1.5. Satellite 与胶囊通信的端口
端口协议Service需要的目的

443

TCP

HTTPS

在胶囊中连接到 Pulp 服务器

9090

TCP

HTTPS

连接到 Capsule 中的代理

80

TCP

HTTP

下载引导磁盘(可选)

Expand
表 1.6. 可选网络端口
端口协议Service必需

22

TCP

SSH

卫星和胶囊源自用于远程执行(Rex)和 Ansible 的通信。

443

TCP

HTTPS

Satellite 源自于 vCenter 计算资源的通信。

5000

TCP

HTTP

卫星源自于 OpenStack 中的计算资源或用于运行容器的通信。

22, 16514

TCP

SSH, SSL/TLS

Satellite 发起通信,用于 libvirt 中的计算资源。

389, 636

TCP

LDAP, LDAPS

Satellite 发起了通信,对于 LDAP 和受保护的 LDAP 验证源。

5900 到 5930

TCP

SSL/TLS

卫星发起了通信,即 Web UI 中的 NoVNC 控制台到虚拟机监控程序。

1.7. 启用从客户端到卫星服务器的连接

作为卫星服务器内部胶囊的客户端的胶囊和内容主机需要通过基于 Satellite 的防火墙和任何基于网络的防火墙进行访问。

使用这个流程在 Satellite 安装的 Red Hat Enterprise Linux 7 系统中配置基于主机的防火墙,以启用来自客户端的进入连接,并使配置在系统重启后持久保留。有关使用端口的详情请参考 第 1.6 节 “端口和防火墙要求”

流程

  1. 要为客户端打开 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" \
    --add-port="5000/tcp"
    Copy to Clipboard Toggle word wrap
  2. 使更改持久:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap

1.8. 验证防火墙设置

使用这个步骤验证对防火墙设置的更改。

流程

要验证防火墙设置,请完成以下步骤:

  1. 使用以下命令:

    # firewall-cmd --list-all
    Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 Red Hat Enterprise Linux 7 安全指南 中的 firewalld 入门

1.9. 验证 DNS 解析

使用完全限定域名验证完整的转发和反向 DNS 解析,以防止安装 Satellite 时出现问题。

流程

  1. 确保主机名和本地主机正确解析:

    # ping -c1 localhost
    # ping -c1 `hostname -f` # my_system.domain.com
    Copy to Clipboard Toggle word wrap

    成功名称解析结果会类似以下示例:

    # 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
    Copy to Clipboard Toggle word wrap
  2. 为了避免与静态和临时主机名冲突,请输入以下命令设置系统中的所有主机名:

    # hostnamectl set-hostname name
    Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 Red Hat Enterprise Linux 7 网络指南中的 使用 hostnamectl 配置主机名

警告

名称解析对 Satellite 6 操作至关重要。如果 Satellite 无法正确解析其完全限定域名,则内容管理、订阅管理和调配等任务将失败。

您可以在 IPv6 网络中安装和使用 Satellite。在 IPv6 网络中安装 Satellite 前,请查看限制并确保您满足要求。

要在 IPv6 网络中置备主机,在安装 Satellite 后,还必须为 UEFI HTTP 引导置备配置 Satellite。更多信息请参阅 第 4.5 节 “在 IPv6 网络中为 UEFI HTTP 引导置备配置 Satellite”

2.1. IPv6 网络中 Satellite 安装的限制

在 IPv6 网络中安装 Satellite 有以下限制:

  • 您可以在只使用 IPv6 的系统中安装 Satellite 和 Capsules,不支持双栈安装。
  • 虽然 Satellite 自定义模板包括 PXE 和 HTTP(iPXE)置备 IPv6 支持,但唯一经过测试和验证的置备工作流是 UEFI HTTP 引导置备。此限制仅与计划使用 Satellite 置备主机的用户相关。

2.2. 在 IPv6 网络中安装 Satellite 的要求

在 IPv6 网络中安装 Satellite 前,请确定您满足以下要求:

  • 如果您计划从 Satellite 或 Capsules 置备主机,则必须在 Red Hat Enterprise Linux 版本 7.9 或更高版本上安装 Satellite 和 Capsules,因为这些版本包括 grub2 软件包的最新版本。
  • 您必须将外部 DHCP IPv6 服务器部署为单独的非受管服务,以便引导客户端到 GRUB2 中,然后使用 DHCPv6 配置 IPv6 联网或分配静态 IPv6 地址。这是必要的,因为 Red Hat Enterprise Linux(ISC DHCP)中的 DHCP 服务器不提供用于管理 IPv6 记录的集成 API,因此提供 DHCP 管理的 Capsule DHCP 插件仅限于 IPv4 子网。
  • 您必须部署外部 IPv4 HTTP 代理服务器。这是必要的,因为 Satellite 仅通过 IPv4 网络分发内容,因此您必须使用 IPv4 代理将内容重定向到 IPv6 网络中的主机。
  • 您必须将 Satellite 配置为使用此 IPv4 HTTP 代理服务器作为默认代理。如需更多信息,请参阅在 Satellite 中添加默认 HTTP 代理

第 3 章 安装 Satellite 服务器

从连接的网络安装卫星服务器时,您可以获取软件包并直接从 Red Hat Content Delivery Network 接收更新。

注意

您不能将卫星服务器注册到自身。

使用以下步骤安装 Satellite 服务器,执行初始配置和导入订阅清单。有关订阅清单的更多信息,请参阅 内容管理指南中的管理订阅https://access.redhat.com/documentation/en-us/red_hat_satellite/6.9/html-single/content_management_guide/index#Managing_Subscriptions

请注意,Satellite 6 安装脚本基于 Puppet,这意味着如果您运行安装脚本多次,它可能会覆盖任何手动配置更改。要避免这种情况并确定哪些更改,请在运行安装脚本时使用 --noop 参数。此参数确保不进行实际更改。潜在的更改被写入 /var/log/foreman-installer/satellite.log

文件始终被备份,以便您可以恢复任何不需要的更改。例如,在 foreman-installer 日志中,您可以看到类似如下的一个类似于 Filebucket 的条目:

/Stage[main]/Dhcp/File[/etc/dhcp/dhcpd.conf]: Filebucketed /etc/dhcp/dhcpd.conf to puppet with sum 622d9820b8e764ab124367c68f5fa3a1
Copy to Clipboard Toggle word wrap

您可以按照以下方式恢复前面的文件:

# puppet filebucket -l \
restore /etc/dhcp/dhcpd.conf 622d9820b8e764ab124367c68f5fa3a1
Copy to Clipboard Toggle word wrap

3.1. 注册到 Red Hat Subscription Management

将主机注册到红帽订阅管理可让主机订阅并使用用户任何可用的订阅的内容。这包括 Red Hat Enterprise Linux、Red Hat Software Collections(RHSCL)和 Red Hat Satellite 等内容。

流程

  • 使用 Red Hat Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:

    # subscription-manager register
    Copy to Clipboard Toggle word wrap

    该命令显示类似如下的输出:

    # subscription-manager register
    Username: user_name
    Password:
    The system has been registered with ID: 541084ff2-44cab-4eb1-9fa1-7683431bcf9a
    Copy to Clipboard Toggle word wrap

3.2. 附加 Satellite 基础架构订阅

注册 Satellite 服务器后,您必须识别您的订阅池 ID 并附加可用订阅。Red Hat Satellite Infrastructure 订阅提供对 Red Hat Satellite、Red Hat Enterprise Linux 和 Red Hat Software Collections(RHSCL)内容的访问。这是唯一需要的订阅。

Red Hat Satellite 基础架构包括在所有包含智能管理的订阅中。如需更多信息,请参阅红帽知识库解决方案 Satellite Infrastructure 订阅 MCT3718 MCT3719

如果订阅没有附加到系统,则订阅会被分类。如果您无法找到可用的 Satellite 订阅,请参阅红帽知识库解决方案 如何确定在 Red Hat Subscription Manager 下注册的客户端使用哪个订阅? 运行脚本,以查看您的订阅是否被另一个系统消耗。

流程

  1. 确定 Satellite 基础架构订阅的池 ID:

    # subscription-manager list --all --available --matches 'Red Hat Satellite Infrastructure Subscription'
    Copy to Clipboard Toggle word wrap

    该命令显示类似如下的输出:

    Subscription Name:   Red Hat Satellite Infrastructure Subscription
    Provides:            Red Hat Satellite
                          Red Hat Software Collections (for RHEL Server)
                          Red Hat CodeReady Linux Builder for x86_64
                          Red Hat Ansible Engine
                          Red Hat Enterprise Linux Load Balancer (for RHEL Server)
                          Red Hat
                          Red Hat Software Collections (for RHEL Server)
                          Red Hat Enterprise Linux Server
                          Red Hat Satellite Capsule
                          Red Hat Enterprise Linux for x86_64
                          Red Hat Enterprise Linux High Availability for x86_64
                          Red Hat Satellite
                          Red Hat Satellite 5 Managed DB
                          Red Hat Satellite 6
                          Red Hat Discovery
    SKU:                 MCT3719
    Contract:            11878983
    Pool ID:             8a85f99968b92c3701694ee998cf03b8
    Provides Management: No
    Available:           1
    Suggested:           1
    Service Level:       Premium
    Service Type:        L1-L3
    Subscription Type:   Standard
    Ends:                03/04/2020
    System Type:         Physical
    Copy to Clipboard Toggle word wrap
  2. 记录订阅池 ID。您的订阅池 ID 与提供的示例不同。
  3. 将 Satellite Infrastructure 订阅附加到 Satellite 服务器运行的基本操作系统:

    # subscription-manager attach --pool=pool_id
    Copy to Clipboard Toggle word wrap

    该命令显示类似如下的输出:

    Successfully attached a subscription for: Red Hat Satellite Infrastructure Subscription
    Copy to Clipboard Toggle word wrap
  4. 可选:验证 Satellite Infrastructure 订阅是否已附加:

    # subscription-manager list --consumed
    Copy to Clipboard Toggle word wrap

3.3. 配置软件仓库

使用此流程启用安装卫星服务器所需的存储库。

流程

  1. 禁用所有软件仓库:

    # subscription-manager repos --disable "*"
    Copy to Clipboard Toggle word wrap
  2. 启用以下软件仓库:

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-6.9-rpms \
    --enable=rhel-7-server-satellite-maintenance-6-rpms \
    --enable=rhel-server-rhscl-7-rpms \
    --enable=rhel-7-server-ansible-2.9-rpms
    Copy to Clipboard Toggle word wrap
    注意

    如果您要将卫星服务器安装为托管在 Red Hat Virtualization 上的虚拟机,还必须启用 Red Hat Common 软件仓库并安装 Red Hat Virtualization 客户机代理和驱动程序。如需更多信息,请参阅 虚拟机管理指南中的在 Red Hat Enterprise Linux 上安装客户机代理和驱动程序。

  3. 清除任何元数据:

    # yum clean all
    Copy to Clipboard Toggle word wrap
  4. 可选:验证是否启用了所需的软件仓库:

    # yum repolist enabled
    Copy to Clipboard Toggle word wrap

3.4. 安装 Satellite 服务器软件包

您必须在安装 Satellite 服务器软件包前更新所有软件包。

流程

  1. 更新所有软件包:

    # yum update
    Copy to Clipboard Toggle word wrap
  2. 安装 Satellite 服务器软件包:

    # yum install satellite
    Copy to Clipboard Toggle word wrap

3.5. 使用 chronyd 同步系统时钟

为尽量减少时间偏差的影响,您必须将系统时钟同步到要与网络时间协议(NTP)服务器安装卫星服务器的基础操作系统上。如果操作系统时钟配置不正确,证书验证可能会失败。

有关 chrony 套件的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员 指南中的使用 chrony 套件配置 NTP

流程

  1. 安装 chrony 软件包:

    # yum install chrony
    Copy to Clipboard Toggle word wrap
  2. 启动并启用 chronyd 服务:

    # systemctl start chronyd
    # systemctl enable chronyd
    Copy to Clipboard Toggle word wrap

3.6. 在基础操作系统上安装 SOS 软件包

在基础操作系统上安装 sos 软件包,以便您可以从 Red Hat Enterprise Linux 系统收集配置和诊断信息。您还可以使用它来提供初始系统分析,该分析是在向红帽技术支持打开服务请求时所必需的。有关使用 sos 的更多信息,请参阅 知识库解决方案 是什么 sosreport 以及如何在 Red Hat Enterprise Linux 4.6 及之后的版本中创建?

流程

  1. 安装 sos 软件包:

    # yum install sos
    Copy to Clipboard Toggle word wrap

3.7. 配置 Satellite 服务器

使用 satellite-installer 安装脚本安装卫星服务器。从以下任一方法中选择:

  • 第 3.7.1 节 “手动配置 Satellite”.此方法通过使用一个或多个命令选项运行安装脚本来执行。命令选项覆盖对应的默认初始配置选项,并在卫星回答文件中记录。您可以根据需要运行该脚本,以配置任何必要的选项。
  • 第 3.7.2 节 “使用回答文件自动配置卫星”.此方法通过使用回答文件在运行安装脚本时自动执行配置过程。默认的 Satellite 回答文件为 /etc/foreman-installer/scenarios.d/satellite-answers.yaml。使用中的回答文件由 /etc/foreman-installer/scenarios.d/satellite.yaml 配置文件中的 answer_file 指令设置。
注意

根据运行 Satellite 安装程序时所使用的选项,配置可能需要几分钟来完成。管理员可以查看 回答文件,以查看以前使用这两种方法的选项。

3.7.1. 手动配置 Satellite

此初始配置步骤创建机构、位置、用户名和密码。在初始配置后,您可以根据需要创建额外的机构和位置。初始配置还会在同一服务器上安装 MongoDB 和 PostgreSQL 数据库。

完成安装过程可能需要十分钟时间。如果您要远程连接到系统,请使用一些工具(如 screentmux ),该工具允许暂停并重新附加通信会话,以便您可以检查安装进度,以防从远程系统断开连接。红帽知识库文章 如何使用 screen 命令描述安装屏幕; 另外,请参阅页面手册页。如果您丢失了运行安装命令的 shell,请参阅 /var/log/foreman-installer/satellite.log 中的日志,以确定进程是否已成功完成。

手动配置注意事项

  • 使用 satellite-installer --scenario satellite --help 命令显示可用选项和任何默认值。如果没有指定任何值,则使用默认值。
  • 为选项指定一个有意义的值 :--foreman-initial-organization。这可以是您的公司名称。也会创建与值匹配的内部标签,之后无法更改。如果没有指定值,则会创建一个名为 Default Organization 的组织,标签为 Default_Organization。您可以重命名机构名称,但不能命名标签。
  • 默认情况下,安装程序配置的所有配置文件都由 Puppet 管理。当 satellite-installer 运行时,它会使用初始值覆盖对 Puppet 管理的文件的任何手动更改。默认情况下,卫星服务器安装有作为服务运行的 Puppet 代理。如果需要,您可以使用 --puppet-runmode=none 选项在卫星服务器中禁用 Puppet 代理。
  • 如果要手动管理 DNS 文件和 DHCP 文件,请使用 --foreman-proxy-dns-managed=false--foreman-proxy-dhcp-managed=false 选项,以便 Puppet 不会管理与相应服务相关的文件。有关如何在其他服务中应用自定义配置的详情请参考 附录 A, 将自定义配置应用到 Red Hat Satellite

流程

  1. 输入以下命令以及您要使用的任何附加选项:

    # 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
    Copy to Clipboard Toggle word wrap

    这个脚本会显示其进度,并将日志写入 /var/log/foreman-installer/satellite.log

3.7.2. 使用回答文件自动配置卫星

您可以使用回答文件来自动执行安装及自定义选项。初始回答文件是稀疏填充。第一次运行 satellite-installer 脚本后,将填充了安装的标准参数值。您可以随时更改卫星服务器的配置。

在网络更改时,您应该尽可能使用 FQDN 而不是 IP 地址。

流程

  1. 将默认回答文件 /etc/foreman-installer/scenarios.d/satellite-answers.yaml 复制到本地文件系统中的位置。

    # cp /etc/foreman-installer/scenarios.d/satellite-answers.yaml \
    /etc/foreman-installer/scenarios.d/my-answer-file.yaml
    Copy to Clipboard Toggle word wrap
  2. 要查看所有可配置的选项,请输入 satellite-installer --scenario satellite --help 命令。
  3. 打开回答文件的副本,编辑值以适应您的环境,并保存文件。
  4. 打开 /etc/foreman-installer/scenarios.d/satellite.yaml 文件,并编辑回答文件以指向您的自定义回答文件。

    :answer_file: /etc/foreman-installer/scenarios.d/my-answer-file.yaml
    Copy to Clipboard Toggle word wrap
  5. 运行 satellite-installer 脚本。

    # satellite-installer --scenario satellite
    Copy to Clipboard Toggle word wrap

3.8. 将订阅清单导入到卫星服务器

使用以下步骤将订阅清单导入到卫星服务器中。

先决条件

  • 您必须有从客户门户网站导出的订阅清单文件。如需更多信息,请参阅 使用红帽订阅管理指南中的使用 清单。

流程

  1. 在卫星 Web UI 中,确保将上下文设置为您要使用的组织。
  2. 导航到 Content > Subscriptions,点 Manage Manifest
  3. 在 Manage Manifest 窗口中,单击 Browse
  4. 导航到包含 Subscription Manifest 文件的位置,然后单击 Open。如果 Manage Manifest 窗口没有自动关闭,点 Close 返回 Subscriptions 窗口。

对于 CLI 用户

  1. 将订阅清单文件从客户端复制到 Satellite 服务器:

    $ scp ~/manifest_file.zip root@satellite.example.com:~/.
    Copy to Clipboard Toggle word wrap
  2. root 用户身份登录到卫星服务器,再导入 Subscription Manifest 文件:

    # hammer subscription upload \
    --file ~/manifest_file.zip \
    --organization "organization_name"
    Copy to Clipboard Toggle word wrap

第 4 章 在卫星服务器上执行额外的配置

您可以使用 Red Hat Insights 诊断与安全漏洞相关的系统和停机时间、性能下降和稳定性故障。您可以使用控制面板快速识别稳定性、安全性和性能的关键风险。您可以按类别排序,查看影响和解决方案的详细信息,然后确定受影响的系统。

请注意,在订阅清单中不需要 Red Hat Insights 权利。有关 Satellite 和 Red Hat Insights 的更多信息,请参阅 Satellite Red Hat Enterprise Linux(RHEL) 上的 Red Hat Insights

要维护您的 Satellite 服务器,并改进您监控和诊断您可能在 Satellite 中发现的问题的能力,在卫星服务器上安装 Red Hat Insights,并在 Red Hat Insights 中注册 Satellite Server。

调度 insights-client

请注意,您可以通过在 Satellite 上配置 insights-client.timer 来更改运行 insights-client 的默认调度。如需更多信息,请参阅 Red Hat Insights 的客户端配置指南中的更改 insights-client 调度

流程

  1. 要在 Satellite Server 上安装 Red Hat Insights,请输入以下命令:

    # satellite-maintain packages install insights-client
    Copy to Clipboard Toggle word wrap
  2. 要在 Red Hat Insights 中注册 Satellite 服务器,请输入以下命令:

    # satellite-installer --register-with-insights
    Copy to Clipboard Toggle word wrap

4.2. 禁用 Red Hat Insights 的注册

安装或升级 Satellite 后,您可以选择需要取消注册或注册 Red Hat Insights。例如,如果需要在断开连接的环境中使用 Satellite,您可以从 Satellite 服务器取消注册 insights-client

先决条件

  1. 您已在红帽客户门户网站中注册了 Satellite。

流程

  1. 可选: 要从 Satellite Server 取消注册 Red Hat Insights,请输入以下命令:

    # insights-client --unregister
    Copy to Clipboard Toggle word wrap
  2. 可选: 要将 Satellite 服务器注册到 Red Hat Insights,请输入以下命令:

    # satellite-installer --register-with-insights
    Copy to Clipboard Toggle word wrap

4.3. 启用 Satellite 工具 6.9 软件仓库

卫星工具 6.9 存储库提供 katello-agentkatello-host-tools,以及用于注册到卫星服务器的客户端的 puppet 软件包。

流程

  1. 在 Satellite Web UI 中,进入 Content > Red Hat Repositories
  2. 使用 Search 字段输入以下存储库名称: Satellite Tools 6.9(用于 RHEL 7 服务器)(RPMs)
  3. 在 Available Repositories 窗格中,单击 Satellite Tools 6.9(用于 RHEL 7 服务器)(RPMs) 以展开存储库集。

    如果 Satellite Tools 6.9 项目不可见,则可能是因为它们没有包含在从客户门户网站获取的订阅清单中。要更正这一点,请登录客户门户网站,添加这些软件仓库,下载订阅清单并将它导入到 Satellite。

  4. 对于 x86_64 条目,请单击 Enable 图标以启用存储库。

为主机上运行的每个 Red Hat Enterprise Linux 主版本启用 Satellite Tools 6.9 软件仓库。启用红帽存储库后,将自动创建此软件仓库的产品。

对于 CLI 用户

  • 使用 hammer repository-set enable 命令启用 Satellite 工具 6.9 存储库:

    # hammer repository-set enable --organization "initial_organization_name" \
    --product 'Red Hat Enterprise Linux Server' \
    --basearch='x86_64' \
    --name 'Red Hat Satellite Tools 6.9 (for RHEL 7 Server) (RPMs)'
    Copy to Clipboard Toggle word wrap

4.4. 同步 Satellite 工具 6.9 存储库

使用这个部分将 Satellite Tools 6.9 存储库从 Red Hat Content Delivery Network(CDN)同步到 Satellite。此存储库为注册了卫星服务器的客户端提供 katello-agentkatello-host-toolspuppet 软件包。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Sync Status

    此时会显示可用于同步的产品存储库列表。

  2. Red Hat Enterprise Linux Server 产品旁的箭头查看可用内容。
  3. 选择 Satellite Tools 6.9(适用于 RHEL 7 服务器)RPM x86_64
  4. 单击 立即同步

对于 CLI 用户

  • 使用 hammer 存储库同步您的 Satellite 工具 6.9 存储库

    # hammer repository synchronize --organization "initial_organization_name" \
    --product 'Red Hat Enterprise Linux Server' \
    --name 'Red Hat Satellite Tools 6.9 for RHEL 7 Server RPMs x86_64' \
    --async
    Copy to Clipboard Toggle word wrap

使用这个步骤将 Satellite 配置为在 IPv6 网络中置备 UEFI HTTP 引导置备的主机。

先决条件

  • 确保您的客户端可以访问 DHCP 和 HTTP 服务器。
  • 确保客户端可以访问 UDP 端口 67 和 68,以便客户端能够发送 DHCP 请求并接收 DHCP 提供。
  • 确保为客户端打开 TCP 端口 8000,以便从 Satellite 和 Capsules 下载文件和 Kickstart 模板。
  • 确保主机置备接口子网设置了 HTTP 引导菜单和 Templates Capsule。有关更多信息,请参阅 《部署指南》 中的 "将子网添加到卫星服务器 "。
  • 导航到 Administer > Settings > Provisioning,并确保 Token 持续时间 设置没有设置为 0。卫星无法识别通过远程 IPv6 地址从网络引导的客户端,因为未托管的 DHCPv6 服务,因此必须启用置备令牌。

流程

  1. 您必须在安装程序中禁用 DHCP 管理,或者没有使用它。
  2. 对于在 Satellite 中创建的所有 IPv6 子网,将 DHCP Capsule 设置为空白。
  3. 可选:如果主机和 DHCP 服务器由路由器分开,请配置 DHCP 中继代理并指向 DHCP 服务器。
  4. 在您置备的 Satellite 或 Capsule 上,将 grub2-efi 软件包更新至最新版本:

    # satellite-maintain packages install grub2-efi
    Copy to Clipboard Toggle word wrap
  5. 同步 Red Hat Enterprise Linux 8 kickstart 软件仓库。

4.6. 使用 HTTP 代理配置卫星服务器

使用以下步骤使用 HTTP 代理配置 Satellite。

4.6.1. 在 Satellite 中添加默认 HTTP 代理

如果您的网络使用 HTTP 代理,您可以将 Satellite 服务器配置为使用 HTTP 代理来请求发送到 Red Hat Content Delivery Network(CDN)或其他内容源。使用 FQDN 而不是 IP 地址来避免因为网络更改而丢失连接。

以下步骤配置代理,仅用于下载 Satellite 内容。

流程

  1. 在 Satellite Web UI 中,导航到 Infrastructure > HTTP Proxies
  2. 单击 New HTTP Proxy
  3. Name 字段中输入 HTTP 代理的名称。
  4. Url 字段中,以下列格式输入 HTTP 代理的 URL: https://proxy.example.com:8080
  5. 可选:如果需要身份验证,在 Username 字段中输入用户名以进行身份验证。
  6. 可选: 如果需要身份验证,在 Password 字段中输入密码以进行身份验证。
  7. 要测试与代理的连接,请单击 Test Connection 按钮。
  8. Submit
  9. 导航到 Administer > Settings,然后点 Content 选项卡。
  10. Default HTTP Proxy 设置设置为创建的 HTTP 代理。

对于 CLI 用户

  1. 验证 http_proxyhttps_proxyno_proxy 变量是否未设置。

    # unset http_proxy
    # unset https_proxy
    # unset no_proxy
    Copy to Clipboard Toggle word wrap
  2. 在 Satellite 中添加 HTTP 代理条目:

    # hammer http-proxy create --name=myproxy \
    --url http://myproxy.example.com:8080  \
    --username=proxy_username \
    --password=proxy_password
    Copy to Clipboard Toggle word wrap
  3. 将 Satellite 配置为默认使用此 HTTP 代理:

    # hammer settings set --name=content_default_http_proxy --value=myproxy
    Copy to Clipboard Toggle word wrap

4.6.2. 将 HTTP 代理配置为连接到红帽 CDN

验证 Satellite 是否可以连接到红帽 CDN,并可以同步其存储库。

流程

  1. 在网络网关和 HTTP 代理中,为以下主机名启用 TCP:

    Expand
    主机名端口协议

    subscription.rhsm.redhat.com

    443

    HTTPS

    cdn.redhat.com

    443

    HTTPS

    *.akamaiedge.net

    443

    HTTPS

    cert-api.access.redhat.com(如果使用 Red Hat Insights)

    443

    HTTPS

    api.access.redhat.com(如果使用 Red Hat Insights)

    443

    HTTPS

    Satellite 服务器使用 SSL 来安全地与红帽 CDN 通信。使用 SSL 拦截器会干扰这个通信。这些主机必须在代理上列入白名单。

    如需红帽 CDN(cdn.redhat.com)使用的 IP 地址列表,请参阅红帽客户门户网站中 红帽公共 CIDR 列表 文章。

  2. 在控制台中,在 /etc/rhsm/rhsm.conf 文件中完成以下详情:

    # an http proxy server to use (enter server FQDN)
    proxy_hostname = myproxy.example.com
    
    # port for http proxy server
    proxy_port = 8080
    
    # user name for authenticating to an http proxy, if needed
    proxy_user =
    
    # password for basic http proxy auth, if needed
    proxy_password =
    Copy to Clipboard Toggle word wrap

SELinux 只在特定端口上保证对 Red Hat Satellite 6 和 Red Hat Subscription Manager 的访问。如果是 HTTP 缓存,TCP 端口为 8080、8118、8123 和 10001 - 10010。如果您使用 SELinux 类型为 http_cache_port_t 的端口,请完成以下步骤。

流程

  1. 在 Satellite 中,要验证 SELinux 为 HTTP 缓存允许的端口,请输入以下命令:

    # semanage port -l | grep http_cache
    http_cache_port_t       tcp    8080, 8118, 8123, 10001-10010
    [output truncated]
    Copy to Clipboard Toggle word wrap
  2. 要将 SELinux 配置为允许 HTTP 缓存的端口,如 8088,请输入以下命令:

    # semanage port -a -t http_cache_port_t -p tcp 8088
    Copy to Clipboard Toggle word wrap

如果您的卫星服务器必须保持在阻止 HTTP 和 HTTPS 的防火墙后面,您可以配置用于与外部系统通信的代理,包括计算资源。

请注意,如果您使用计算资源进行调配,并且您希望使用与计算资源使用不同的 HTTP 代理,您为所有 Satellite 通信设置的代理优先于您为计算资源设置的代理。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. HTTP(S)代理 行中,选择相邻的 Value 列并输入代理 URL。
  3. 点 tick 图标保存您的更改。

对于 CLI 用户

  • 使用以下命令:

    # hammer settings set --name=http_proxy --value=Proxy_URL
    Copy to Clipboard Toggle word wrap

4.6.5. 从接收代理请求中排除主机

如果您将 HTTP 代理用于所有 Satellite HTTP 或 HTTPS 请求,您可以防止某些主机通过代理进行通信。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. HTTP(S)代理中,选择主机行,选择相邻的 Value 列,并输入您要从代理请求中排除的一个或多个主机的名称。
  3. 点 tick 图标保存您的更改。

对于 CLI 用户

  • 使用以下命令:

    # hammer settings set --name=http_proxy_except_list --value=[hostname1.hostname2...]
    Copy to Clipboard Toggle word wrap

4.6.6. 重置 HTTP 代理

如果要重置当前 HTTP 代理设置,请取消设置 Default HTTP Proxy 设置。

流程

  1. 导航到 Administer > Settings,然后点 Content 选项卡。
  2. Default HTTP Proxy 设置设置为 no global default

对于 CLI 用户

  • content_default_http_proxy 设置设置为空字符串:

    # hammer settings set --name=content_default_http_proxy --value=""
    Copy to Clipboard Toggle word wrap

4.7. 在受管主机上启用电源管理

要使用智能平台管理接口(IPMI)或类似协议对受管主机执行电源管理任务,您必须在卫星服务器上启用基板管理控制器(BMC)模块。

先决条件

  • 所有受管主机都必须具有 BMC 类型的网络接口。Satellite 服务器使用此 NIC 将适当的凭据传递给主机。如需更多信息,请参阅管理 主机 中的 添加基板管理控制器(BMC)接口

流程

  • 要启用 BMC,请输入以下命令:

    # satellite-installer --foreman-proxy-bmc "true" \
    --foreman-proxy-bmc-default-provider "freeipmi"
    Copy to Clipboard Toggle word wrap

4.8. 在卫星服务器上配置 DNS、DHCP 和 TFTP

要在卫星服务器上配置 DNS、DHCP 和 TFTP 服务,请使用 satellite-installer 命令以及适合您的环境的选项。要查看可配置选项的完整列表,请输入 satellite-installer --scenario satellite --help 命令。

对设置的任何更改都需要再次输入 satellite-installer 命令。您可以多次输入命令,每次更新带有更改的值的所有配置文件时。

要使用外部 DNS、DHCP 和 TFTP 服务,请参阅 第 5 章 使用外部服务配置卫星服务器

添加 Multihomed DHCP 详情

如果要使用 Multihomed DHCP,您必须更新网络接口文件。

  1. /etc/systemd/system/dhcpd.service.d/interfaces.conf 文件中,编辑以下行来添加 Multihomed DHCP:

    [Service]
    ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eth0 eth1 eth2
    Copy to Clipboard Toggle word wrap

    如果此文件尚不存在,请创建该文件。

  2. 输入以下命令执行守护进程重新载入:

    # systemctl --system daemon-reload
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令重启 dhcpd 服务:

    # systemctl restart dhcpd.service
    Copy to Clipboard Toggle word wrap

先决条件

  • 确保以下信息可用:

    • 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-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
    Copy to Clipboard Toggle word wrap

您可以监控提示中显示的 satellite-installer 命令的进度。您可以查看 /var/log/foreman-installer/satellite.log 中的日志。您可以在 /etc/foreman-installer/scenarios.d/satellite-answers.yaml 文件中查看所用的设置,包括 initial_admin_password 参数。

有关配置 DHCP、DNS 和 TFTP 服务的更多信息,请参阅 《配置指南》 中的" 配置网络服务 "部分。

4.9. 为非受管网络禁用 DNS、DHCP 和 TFTP

如果要手动管理 TFTP、DHCP 和 DNS 服务,您必须防止 Satellite 在操作系统中维护这些服务并禁用编配以避免 DHCP 和 DNS 验证错误。但是,卫星不会删除操作系统上的后端服务。

流程

  1. 在 Satellite 服务器中输入以下命令:

    # satellite-installer --foreman-proxy-dhcp false \
    --foreman-proxy-dns false \
    --foreman-proxy-tftp false
    Copy to Clipboard Toggle word wrap
  2. 在 Satellite Web UI 中,导航到 Infrastructure > Subnets 并选择子网。
  3. 单击 Capsules 选项卡,再清除 DHCP CapsuleTFTP CapsuleReverse DNS Capsule 字段。
  4. 进入 Infrastructure > Domains 并选择一个域。
  5. 清除 DNS Capsule 字段。
  6. 可选:如果您使用第三方提供的 DHCP 服务,请将 DHCP 服务器配置为传递以下选项:

    Option 66: IP address of Satellite or Capsule
    Option 67: /pxelinux.0
    Copy to Clipboard Toggle word wrap

    有关 DHCP 选项的详情,请查看 RFC 2132

注意

当给定子网和域没有设置胶囊时,卫星 6 不会执行编配。在启用或禁用胶囊关联时,如果预期的记录和配置文件不存在,现有主机的编配命令可能会失败。在关联胶囊来打开编配时,请确保现有 Satellite 主机所需的 DHCP 和 DNS 记录以及 TFTP 文件,以防止主机删除失败。

4.10. 配置卫星服务器以进行传出电子邮件

要从卫星服务器发送电子邮件信息,您可以使用 SMTP 服务器或 sendmail 命令。

流程

  1. 在卫星 Web UI 中,导航到 AdministerSettings
  2. 单击 Email 选项卡,再设置配置选项以匹配您首选的交付方法。这些更改会立即生效。

    1. 以下示例显示了使用 SMTP 服务器的配置选项:

      Expand
      表 4.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 服务器的登录凭证。

    2. 以下示例将 gmail.com 用作 SMTP 服务器:

      Expand
      表 4.2. 使用 gmail.com 作为 SMTP 服务器
      Name示例值

      交付方法

      SMTP

      SMTP 地址

      smtp.gmail.com

      SMTP 身份验证

      plain

      SMTP HELO/EHLO 域

      smtp.gmail.com

      SMTP 启用 StartTLS auto

      SMTP 密码

      password

      SMTP 端口

      587

      SMTP 用户名

      user@gmail.com

    3. 以下示例将 sendmail 命令用作发送方法:

      Expand
      表 4.3. 使用 sendmail 作为发送方法
      Name示例值

      交付方法

      sendmail

      Sendmail 参数

      -i -t -G

      Sendmail 参数指定传递到 sendmail 命令的选项。默认值为 -i -t。详情请查看 sendmail 1 man page。

  3. 如果您决定使用 TLS 验证的 SMTP 服务器发送电子邮件,还要执行以下步骤之一:

    • 将 SMTP 服务器的 CA 证书标记为可信。要做到这一点,请在卫星服务器上执行以下命令:

      # cp mailca.crt /etc/pki/ca-trust/source/anchors/
      # update-ca-trust enable
      # update-ca-trust
      Copy to Clipboard Toggle word wrap

      其中 mailca.crt 是 SMTP 服务器的 CA 证书。

    • 另外,在 Web UI 中,将 SMTP 启用 StartTLS 自动 选项设置为 No
  4. 单击 Test email 以向用户的电子邮件地址发送测试消息,以确认配置正常工作。如果消息无法发送,Web UI 会显示错误。详情请查看 /var/log/foreman/production.log 中的日志。
注意

有关为单个用户或用户组配置电子邮件通知的详情,请参考 管理 Red Hat Satellite 中的配置 电子邮件通知

4.11. 为 Satellite 配置 Alternate CNAME

您可以为 Satellite 配置备用 CNAME。如果要将卫星 Web 界面部署到不同于客户端系统用来连接到 Satellite 的其他域名中的域名,这可能会很有用。在安装胶囊和将主机注册到 Satellite 之前,您必须提前规划备用 CNAME 配置,以避免将新证书部署到主机。

4.11.1. 使用 Alternate CNAME 配置 Satellite

使用这个流程为 Satellite 配置备用 CNAME。请注意,默认 Satellite 证书和自定义证书的用户的步骤有所不同。

对于默认 Satellite 证书用户

  • 如果您已经安装了具有默认 Satellite 证书并且想要使用备用 CNAME 配置 Satellite,则在卫星上输入以下命令生成一个新的默认卫星 SSL 证书,并使用额外的 CNAME 生成新的默认卫星 SSL 证书。

    # satellite-installer --certs-cname alternate_fqdn --certs-update-server
    Copy to Clipboard Toggle word wrap
  • 如果您尚未安装 Satellite,您可以在 satellite-installer 命令中添加 --certs-cname alternate_fqdn 选项,以使用备用 CNAME 安装 Satellite。

对于自定义证书用户

如果您将 Satellite 与自定义证书搭配使用,在创建自定义证书时,请将备用 CNAME 记录包含在自定义证书中。如需更多信息,请参阅为 Satellite 服务器创建自定义 SSL 证书

如果卫星配置了备用 CNAME,您可以将主机配置为使用备用卫星 CNAME 进行内容管理。为此,您必须在将主机注册到卫星之前将主机指向备用卫星 CNAME。您可以使用 bootstrap 脚本或手动进行此操作。

使用 bootstrap 脚本配置主机

在主机上,使用 --server alternate_fqdn.example.com 选项运行 bootstrap 脚本,将主机注册到备用 Satellite CNAME:

# ./bootstrap.py --server alternate_fqdn.example.com
Copy to Clipboard Toggle word wrap

手动配置主机

在主机上,编辑 /etc/rhsm/rhsm.conf 文件以更新 主机名和 baseurl 设置以指向备用主机名,例如:

[server]
# Server hostname:
hostname = alternate_fqdn.example.com

content omitted

[rhsm]
# Content base URL:
baseurl=https://alternate_fqdn.example.com/pulp/repos
Copy to Clipboard Toggle word wrap

现在,您可以使用 subscription-manager 注册主机。

4.12. 使用自定义 SSL 证书配置卫星服务器

默认情况下,红帽卫星 6 使用自签名 SSL 证书在卫星服务器、外部胶囊服务器和所有主机之间启用加密通信。如果无法使用 Satellite 自签名证书,您可以将卫星服务器配置为使用外部证书颁发机构签名的 SSL 证书。

要使用自定义证书配置 Satellite 服务器,请完成以下步骤:

  1. 第 4.12.1 节 “为 Satellite 服务器创建自定义 SSL 证书”
  2. 第 4.12.2 节 “将自定义 SSL 证书部署到卫星服务器”
  3. 第 4.12.3 节 “将自定义 SSL 证书部署到主机”
  4. 如果您向卫星服务器注册了外部胶囊服务器,则必须使用自定义 SSL 证书配置它们。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。如需更多信息,请参阅安装胶囊服务器中的使用自定义 SSL 证书 配置胶囊服务器

4.12.1. 为 Satellite 服务器创建自定义 SSL 证书

使用此流程为卫星服务器创建自定义 SSL 证书。如果您已经有 Satellite 服务器的自定义 SSL 证书,请跳过此步骤。

当您使用自定义证书配置 Satellite 服务器时,请注意以下注意事项:

  • 您必须对 SSL 证书使用 Privacy-Enhanced mail(PEM)编码。
  • 您不能将相同的证书用于卫星服务器和胶囊服务器。
  • 相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。

流程

要创建自定义 SSL 证书,请完成以下步骤:

  1. 要存储所有源证书文件,请创建一个仅可供 root 用户访问的目录。

    # mkdir /root/satellite_cert
    Copy to Clipboard Toggle word wrap
  2. 创建为证书签名请求(CSR)签名的私钥。

    请注意,私钥必须未加密的。如果您使用受密码保护的私钥,请删除私钥密码。

    如果您已拥有此卫星服务器的私钥,请跳过这一步。

    # openssl genrsa -out /root/satellite_cert/satellite_cert_key.pem 4096
    Copy to Clipboard Toggle word wrap
  3. 为证书签名请求(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
    Copy to Clipboard Toggle word wrap
    1
    [ req_distinguished_name ] 部分,输入您的机构信息。
    2
    将证书的 Common Name CN 设置为与 Satellite 服务器的完全限定域名(FQDN)匹配。要确认该服务器上的 FQDN,请输入 hostname -f 命令。这需要确保 katello-certs-check 命令正确验证证书。
    3
    将 Subject Alternative Name(SAN) DNS.1 设置为与服务器的完全限定域名(FQDN)匹配。
  4. 生成证书签名请求(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
    Copy to Clipboard Toggle word wrap
    1
    私钥路径。
    2
    配置文件的路径。
    3
    要生成的 CSR 的路径。
  5. 将证书签名请求发送到证书颁发机构。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。

    提交请求时,指定证书的寿命。发送证书请求的方法各不相同,因此请查阅证书颁发机构以获取首选方法。为了响应请求,预计可以在单独的文件中接收证书颁发机构捆绑包和签名证书。

4.12.2. 将自定义 SSL 证书部署到卫星服务器

使用这个步骤将 Satellite 服务器配置为使用由证书颁发机构签名的自定义 SSL 证书。katello-certs-check 命令验证输入证书文件,并将自定义 SSL 证书部署到卫星服务器所需的命令返回。

流程

要在卫星服务器上部署自定义证书,请完成以下步骤:

  1. 验证自定义 SSL 证书输入文件。请注意,对于 katello-certs-check 命令可以正常工作,证书中的 Common Name(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
    Copy to Clipboard Toggle word wrap
    1
    由证书颁发机构签名的 Satellite 服务器证书文件的路径。
    2
    用于为胶囊服务器证书签名的私钥的路径。
    3
    证书颁发机构捆绑包的路径。

    如果命令成功,它将返回两个 satellite-installer 命令,其中一个必须使用它来将证书部署到卫星服务器。

    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
    Copy to Clipboard Toggle word wrap

  2. katello-certs-check 命令的输出中,根据您的要求,输入 satellite-installer 命令,该命令使用自定义 SSL 证书在当前正在运行的 Satellite 上安装新 Satellite 或更新证书。

    如果您不确定要运行的命令,您可以通过检查文件 /etc/foreman-installer/scenarios.d/.installed 来验证是否安装了 Satellite。如果文件存在,请运行更新证书的第二个 satellite-installer 命令。

    重要

    不要在部署证书后删除证书归档文件。例如,升级卫星服务器时需要它。

  3. 在可访问卫星服务器的计算机中,导航到以下 URL: https://satellite.example.com
  4. 在浏览器中,查看证书详情以验证部署的证书。

4.12.3. 将自定义 SSL 证书部署到主机

将卫星服务器配置为使用自定义 SSL 证书后,您还必须在注册到此卫星服务器的每个主机上安装 katello-ca-consumer 软件包。

流程

  • 在每个主机上安装 katello-ca-consumer 软件包:

    # yum localinstall \
    http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap

4.13. 将外部数据库与 Satellite 搭配使用

作为 Red Hat Satellite 的安装过程的一部分,satellite-installer 命令会将 MongoDB 和 PostgreSQL 数据库安装到与 Satellite 相同的服务器上。在某些 Satellite 部署中,使用外部数据库而不是默认本地数据库可帮助服务器加载。根据您的要求,您可以将外部数据库用于 MongoDB 或 PostgreSQL 数据库,或两者。

红帽不提供对外部数据库维护的支持或工具。这包括备份、升级和数据库调整。您必须具有自己的数据库管理员才能支持和维护外部数据库。

使用 MongoDB 作为外部数据库注意事项PostgreSQL 作为外部数据库注意事项,以确定是否要将外部数据库用于 Satellite 部署。

要为 Satellite 创建并使用外部数据库,您必须完成以下步骤:

  1. 第 4.13.3 节 “为外部数据库准备主机”.准备 Red Hat Enterprise Linux 7 服务器以托管外部数据库。
  2. 第 4.13.4 节 “安装 MongoDB”.使用用户 pulp _database准备 MongoDB
  3. 第 4.13.5 节 “安装 PostgreSQL”.使用具有所属卫星、Candlepin 和 Pulp 的数据库准备 PostgreSQL。
  4. 第 4.13.6 节 “配置 Satellite 使用外部数据库”.编辑 satellite-installer 的参数以指向新数据库,并运行 satellite-installer

4.13.1. MongoDB 作为外部数据库注意事项

Pulp 使用 MongoDB 数据库。如果要使用 MongoDB 作为外部数据库,则以下信息可帮助您确定此选项是否适合您的 Satellite 配置。卫星支持 MongoDB 版本 3.4。

外部 MongoDB 的优点

  • 增加 Satellite 中的可用内存和可用 CPU
  • 在不影响 Satellite 操作的情况下对 MongoDB 服务器系统进行灵活调整

外部 MongoDB 的缺陷

  • 增加部署复杂性,使故障排除更困难
  • 外部 MongoDB 服务器是补丁和维护的额外系统
  • 如果 Satellite 或 Mongo 数据库服务器遇到硬件或存储故障,则卫星无法运行
  • 如果 Satellite 和外部数据库服务器之间存在延迟,则性能可能会会受到影响

FIPS 相关限制

  • 您不能在 FIPS 模式中使用外部 MongoDB 和 Satellite。

4.13.2. PostgreSQL 作为外部数据库注意事项

Foreman、Karnish 和 Candlepin 使用 PostgreSQL 数据库。如果要使用 PostgreSQL 作为外部数据库,则以下信息可帮助您确定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 12.1。

外部 PostgreSQL 的优点:

  • 增加 Satellite 中的可用内存和可用 CPU
  • 在 PostgreSQL 数据库上将 shared_buffers 的灵活性设置为高数值,而不影响 Satellite 上的其他服务的风险
  • 在不影响 Satellite 操作的情况下对 PostgreSQL 服务器系统进行灵活调整

外部 PostgreSQL 的缺陷

  • 增加部署复杂性,使故障排除更困难
  • 外部 PostgreSQL 服务器是补丁和维护的额外系统
  • 如果 Satellite 或 PostgreSQL 数据库服务器遇到硬件或存储故障,卫星无法正常运行
  • 如果 Satellite 服务器和数据库服务器之间存在延迟,性能可能会会受到影响

如果您怀疑 Satellite 上的 PostgreSQL 数据库导致性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志来检测运行速度慢的问题,以确定您是否 有慢的问题查询。需要一秒钟的查询通常是由于大型安装出现性能问题,而移动到外部数据库的查询通常不是帮助。如果您有慢的查询,请联络红帽支持。

4.13.3. 为外部数据库准备主机

使用最新 Red Hat Enterprise Linux 7 服务器安装一个最新置备的系统,以托管外部数据库。

Red Hat Software Collections 和 Red Hat Enterprise Linux 的订阅不提供将 Satellite 与外部数据库一起使用的正确服务级别协议。您还必须将 Satellite 订阅附加到要用于外部数据库的基础操作系统中。

先决条件

  • Red Hat Enterprise Linux 7 服务器必须满足 Satellite 的存储要求

流程

  1. 使用 将 Satellite Infrastructure 订阅附加到服务器中的说明。
  2. 禁用所有软件仓库并只启用以下软件仓库:

    # subscription-manager repos --disable '*'
    # subscription-manager repos --enable=rhel-server-rhscl-7-rpms \
    --enable=rhel-7-server-rpms --enable=rhel-7-server-satellite-6.9-rpms
    Copy to Clipboard Toggle word wrap

4.13.4. 安装 MongoDB

在内部数据库安装过程中,您只能安装与 satellite-installer 工具安装的相同的 MongoDB 版本。只要支持版本,您可以使用 Red Hat Software Collections(RHSCL)软件仓库或从外部来源安装 MongoDB。卫星支持 MongoDB 版本 3.4。

流程

  1. 要安装 MongoDB,请输入以下命令:

    # yum install rh-mongodb34 rh-mongodb34-syspaths
    Copy to Clipboard Toggle word wrap
  2. 启动并启用 rh-mongodb34 服务:

    # systemctl start rh-mongodb34-mongod
    # systemctl enable rh-mongodb34-mongod
    Copy to Clipboard Toggle word wrap
  3. 在 MongoDB 上为数据库 pulp_database 创建 Pulp 用户:

    # mongo pulp_database \
    --eval "db.createUser({user:'pulp',pwd:'pulp_password',roles:[{role:'dbOwner', db:'pulp_database'},{ role: 'readWrite', db: 'pulp_database'}]})"
    Copy to Clipboard Toggle word wrap
  4. /etc/opt/rh/rh-mongodb34/mongod.conf 文件中,指定绑定 IP:

    bindIp: your_mongodb_server_bind_IP,::1
    Copy to Clipboard Toggle word wrap
  5. 编辑 /etc/opt/rh/rh-mongodb34/mongod.conf 文件,以便在 security 部分启用身份验证:

    security:
      authorization: enabled
    Copy to Clipboard Toggle word wrap
  6. 重启 rh-mongodb34-mongod 服务:

    # systemctl restart rh-mongodb34-mongod
    Copy to Clipboard Toggle word wrap
  7. 为 MongoDB 打开端口 27017:

    # firewall-cmd --add-port=27017/tcp
    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  8. 从卫星服务器,测试您可以访问数据库。如果连接成功,命令会返回 1

    # scl enable rh-mongodb34 " mongo --host mongo.example.com \
    -u pulp -p pulp_password --port 27017 --eval 'ping:1' pulp_database"
    Copy to Clipboard Toggle word wrap

4.13.5. 安装 PostgreSQL

在内部数据库安装过程中,您只能安装与 satellite-installer 工具安装的相同版本的 PostgreSQL。只要支持版本,您可以使用 Red Hat Enterprise Linux Server 7 软件仓库或从外部源安装 PostgreSQL。Satellite 支持 PostgreSQL 版本 12.1。

流程

  1. 要安装 PostgreSQL,请输入以下命令:

    # yum install rh-postgresql12-postgresql-server \
    rh-postgresql12-syspaths \
    rh-postgresql12-postgresql-evr
    Copy to Clipboard Toggle word wrap
  2. 要初始化 PostgreSQL,请输入以下命令:

    # postgresql-setup initdb
    Copy to Clipboard Toggle word wrap
  3. 编辑 /var/opt/rh-postgresql12/lib/pgsql/data/postgresql.conf 文件:

    # vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf
    Copy to Clipboard Toggle word wrap
  4. 删除 # 并编辑 以侦听入站连接:

    listen_addresses = '*'
    Copy to Clipboard Toggle word wrap
  5. 编辑 /var/opt/rh-postgresql12/lib/pgsql/data/pg_hba.conf 文件:

    # vi /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
    Copy to Clipboard Toggle word wrap
  6. 在文件中添加以下行:

      host  all   all   Satellite_ip/24   md5
    Copy to Clipboard Toggle word wrap
  7. 要启动并启用 PostgreSQL 服务,请输入以下命令:

    # systemctl start postgresql
    # systemctl enable postgresql
    Copy to Clipboard Toggle word wrap
  8. 打开外部 PostgreSQL 服务器上的 postgresql 端口:

    # firewall-cmd --add-service=postgresql
    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  9. 切换到 postgres 用户并启动 PostgreSQL 客户端:

    $ su - postgres -c psql
    Copy to Clipboard Toggle word wrap
  10. 创建三个数据库和专用角色:一个用于 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;
    Copy to Clipboard Toggle word wrap
  11. 退出 postgres 用户:

    # \q
    Copy to Clipboard Toggle word wrap
  12. 从卫星服务器,测试您可以访问数据库。如果连接成功,命令会返回 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 pulpcore -d pulpcore -c "SELECT 1 as ping"
    Copy to Clipboard Toggle word wrap

4.13.6. 配置 Satellite 使用外部数据库

使用 satellite-installer 命令配置 Satellite 以连接到外部 MongoDB 和 PostgreSQL 数据库。

先决条件

  • 您已在 Red Hat Enterprise Linux 服务器中安装了并配置了 MongoDB 和 PostgreSQL 数据库。

流程

  1. 要为 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 \
      --katello-pulp-db-username pulp \
      --katello-pulp-db-password pulp_password \
      --katello-pulp-db-seeds mongo.example.com:27017 \
      --katello-pulp-db-name pulp_database
    Copy to Clipboard Toggle word wrap
  2. 验证数据库的状态:

    • 对于 PostgreSQL,请输入以下命令:

      # satellite-maintain service status --only postgresql
      Copy to Clipboard Toggle word wrap
    • 对于 MongoDB,请输入以下命令:

      # satellite-maintain service status --only rh-mongodb34-mongod
      Copy to Clipboard Toggle word wrap

4.14. 限制访问 mongod

要减少数据丢失的风险,请仅配置 apacheroot 用户,以访问 MongoDB 数据库守护进程,变为 mongod

要限制为卫星服务器上的 mongod,您必须更新防火墙配置。

流程

  1. 输入以下命令更新防火墙配置:

    # firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 27017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 27017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 27017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner apache -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 0 -o lo -p \
    tcp -m tcp --dport 28017 -m owner --uid-owner root -j ACCEPT \
    && firewall-cmd  --direct --add-rule ipv4 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 28017 -j DROP \
    && firewall-cmd  --direct --add-rule ipv6 filter OUTPUT 1 -o lo -p \
    tcp -m tcp --dport 28017 -j DROP
    Copy to Clipboard Toggle word wrap
  2. 使更改持久:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap

4.15. 使用预定义的配置集调整卫星服务器

如果您的 Satellite 部署包含 5000 的主机,您可以使用预定义的调优配置文件来改进 Satellite 的性能。

请注意,您不能在 Capsules 上使用调优配置集。

您可以根据 Satellite 管理及可用的硬件资源的主机数量,选择其中一个配置集。

调优配置文件位于 /usr/share/foreman-installer/config/foreman.hiera/tuning/sizes 目录中。

当使用 --tuning 选项运行 satellite-installer 命令时,请按照以下顺序将部署配置设置应用到 Satellite:

  1. /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml 文件中定义的默认调优配置文件
  2. 要应用到部署的调优配置文件,并在 /usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/ 目录中定义
  3. 可选:如果您配置了 /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 文件中删除任何重复的配置。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 部署配置调优配置文件,请完成以下步骤:

  1. 可选: 如果您已经在 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
    Copy to Clipboard Toggle word wrap
  2. 可选: 如果您已经在 Satellite 服务器中配置了 custom-hiera.yaml 文件,请查看 /usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml 和您要在 / usr/share/foreman-installer/config/foreman-installer.hiera/tuning/size.yaml 中应用的默认调节配置文件的定义。将配置条目与 /etc/foreman-installer/custom-hiera.yaml 文件中的条目进行比较,并删除 /etc/foreman-installer/custom-hiera.yaml 文件中的任何重复配置设置。
  3. 使用您要应用的配置集的 --tuning 选项输入 satellite-installer 命令。例如,要应用 medium 调节配置集设置,请输入以下命令:

    # satellite-installer --tuning medium
    Copy to Clipboard Toggle word wrap

第 5 章 使用外部服务配置卫星服务器

如果您不想在卫星服务器上配置 DNS、DHCP 和 TFTP 服务,请使用本节将卫星服务器配置为使用外部 DNS、DHCP 和 TFTP 服务。

5.1. 使用外部 DNS 配置卫星服务器

您可以使用外部 DNS 配置卫星服务器。Satellite 服务器使用 nsupdate 工具更新远程服务器上的 DNS 记录。

要使任何更改都持久,您必须输入 satellite-installer 命令以及适合您的环境的选项。

先决条件

  • 您必须有配置的外部 DNS 服务器。

流程

  1. 安装 bind-utils 软件包:

    # yum install bind bind-utils
    Copy to Clipboard Toggle word wrap
  2. /etc/rndc.key 文件从外部 DNS 服务器复制到 Satellite 服务器:

    # scp root@dns.example.com:/etc/rndc.key /etc/rndc.key
    Copy to Clipboard Toggle word wrap
  3. 配置所有权、权限和 SELinux 上下文:

    # restorecon -v /etc/rndc.key
    # chown -v root:named /etc/rndc.key
    # chmod -v 640 /etc/rndc.key
    Copy to Clipboard Toggle word wrap
  4. 要测试 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
    Copy to Clipboard Toggle word wrap
  5. foreman-proxy 用户手动分配给 指定组。通常, satellite-installer 可确保 foreman-proxy 用户属于 命名 UNIX 组,但在这种情形中,卫星不管理用户和组,因此您需要手动将 foreman-proxy 用户分配给指定组。

    # usermod -a -G named foreman-proxy
    Copy to Clipboard Toggle word wrap
  6. 输入 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
    Copy to Clipboard Toggle word wrap
  7. 重启 foreman-proxy 服务:

    # systemctl restart foreman-proxy
    Copy to Clipboard Toggle word wrap
  8. 登录卫星服务器 Web UI。
  9. 导航到 Infrastructure > Capsules,找到 Satellite Server,然后从 Actions 列的列表中,选择 Refresh
  10. 将 DNS 服务与适当的子网和域关联。

5.2. 使用外部 DHCP 配置卫星服务器

要使用外部 DHCP 配置 Satellite 服务器,您必须完成以下步骤:

要将外部 DHCP 服务器配置为与卫星服务器一起使用,在 Red Hat Enterprise Linux 服务器上,您必须安装 ISC DHCP Service 和 Berkeley Internet Name Domain(BIND)软件包。您还必须与卫星服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。

注意

如果您将 dnsmasq 用作外部 DHCP 服务器,请启用 dhcp-no-override 设置。这是必要的,因为 Satellite 在 TFTP 服务器上的 grub2/ 子目录中创建配置文件。如果禁用了 dhcp-no-override 设置,客户端会从根目录获取引导装载程序及其配置,这可能导致错误。

流程

  1. 在 Red Hat Enterprise Linux Server 服务器中,安装 ISC DHCP Service 和 Berkeley Internet Name Domain(BIND)软件包:

    # yum install dhcp bind
    Copy to Clipboard Toggle word wrap
  2. 生成安全令牌:

    # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
    Copy to Clipboard Toggle word wrap

    因此,在当前目录中创建由两个文件组成的密钥对。

  3. 从密钥复制 secret 哈希:

    # cat Komapi_key.+*.private |grep ^Key|cut -d ' ' -f2
    Copy to Clipboard Toggle word wrap
  4. 编辑所有子网的 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;
    Copy to Clipboard Toggle word wrap

    请注意,选项路由器 值是您要用于外部 DHCP 服务的 Satellite 或 Capsule IP 地址。

  5. 从其在其中创建的目录中删除这两个密钥文件。
  6. 在卫星服务器上,定义每个子网。暂时不要为定义的子网设置 DHCP Capsule。

    要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在 Satellite Web UI 中将保留范围定义为 192.168.38.101 到 192.168.38.250。

  7. 配置防火墙以从外部访问 DHCP 服务器:

    # firewall-cmd --add-service dhcp \
    && firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  8. 在卫星服务器上,确定 foreman 用户的 UID 和 GID:

    # id -u foreman
    993
    # id -g foreman
    990
    Copy to Clipboard Toggle word wrap
  9. 在 DHCP 服务器中,创建 foreman 用户和组,其 ID 与上一步中确定的 ID 相同:

    # groupadd -g 990 foreman
    # useradd -u 993 -g 990 -s /sbin/nologin foreman
    Copy to Clipboard Toggle word wrap
  10. 要确保配置文件可以访问,请恢复读和执行标志:

    # chmod o+rx /etc/dhcp/
    # chmod o+r /etc/dhcp/dhcpd.conf
    # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
    Copy to Clipboard Toggle word wrap
  11. 启动 DHCP 服务:

    # systemctl start dhcpd
    Copy to Clipboard Toggle word wrap
  12. 使用 NFS 导出 DHCP 配置和租期文件:

    # yum install nfs-utils
    # systemctl enable rpcbind nfs-server
    # systemctl start rpcbind nfs-server nfs-lock nfs-idmapd
    Copy to Clipboard Toggle word wrap
  13. 为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:

    # mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
    Copy to Clipboard Toggle word wrap
  14. 要为创建的目录创建挂载点,请在 /etc/fstab 文件中添加以下行:

    /var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0
    /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
    Copy to Clipboard Toggle word wrap
  15. /etc/fstab 中挂载文件系统:

    # mount -a
    Copy to Clipboard Toggle word wrap
  16. 确定 /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)
    Copy to Clipboard Toggle word wrap

    请注意,您输入的 IP 地址是您要用于外部 DHCP 服务的 Satellite 或 Capsule IP 地址。

  17. 重新载入 NFS 服务器:

    # exportfs -rva
    Copy to Clipboard Toggle word wrap
  18. 配置 DHCP omapi 端口 7911 的防火墙:

    # firewall-cmd --add-port="7911/tcp" \
    && firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  19. 可选:配置用于从外部访问 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
    Copy to Clipboard Toggle word wrap

5.2.2. 使用外部 DHCP 服务器配置卫星服务器

您可以使用外部 DHCP 服务器配置卫星服务器。

前提条件

流程

  1. 安装 nfs-utils 工具:

    # yum install nfs-utils
    Copy to Clipboard Toggle word wrap
  2. 为 NFS 创建 DHCP 目录:

    # mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
    Copy to Clipboard Toggle word wrap
  3. 更改文件所有者:

    # chown -R foreman-proxy /mnt/nfs
    Copy to Clipboard Toggle word wrap
  4. 验证与 NFS 服务器和远程过程调用(RPC)通信路径的通信:

    # showmount -e DHCP_Server_FQDN
    # rpcinfo -p DHCP_Server_FQDN
    Copy to Clipboard Toggle word wrap
  5. /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
    Copy to Clipboard Toggle word wrap
  6. /etc/fstab 中挂载文件系统:

    # mount -a
    Copy to Clipboard Toggle word wrap
  7. 要验证 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
    Copy to Clipboard Toggle word wrap
  8. 输入 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
    Copy to Clipboard Toggle word wrap
  9. 重启 foreman-proxy 服务:

    # systemctl restart foreman-proxy
    Copy to Clipboard Toggle word wrap
  10. 登录卫星服务器 Web UI。
  11. 导航到 Infrastructure > Capsules,找到 Satellite Server,然后从 Actions 列的列表中,选择 Refresh
  12. 将 DHCP 服务与适当的子网和域关联。

5.3. 使用外部 TFTP 配置卫星服务器

您可以使用外部 TFTP 服务配置卫星服务器。

流程

  1. 为 NFS 创建 TFTP 目录:

    # mkdir -p /mnt/nfs/var/lib/tftpboot
    Copy to Clipboard Toggle word wrap
  2. /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
    Copy to Clipboard Toggle word wrap
  3. /etc/fstab 中挂载文件系统:

    # mount -a
    Copy to Clipboard Toggle word wrap
  4. 输入 satellite-installer 命令,对 /etc/foreman-proxy/settings.d/tftp.yml 文件进行以下更改:

    # satellite-installer --foreman-proxy-tftp=true \
    --foreman-proxy-tftp-root /mnt/nfs/var/lib/tftpboot
    Copy to Clipboard Toggle word wrap
  5. 如果 TFTP 服务在不同于 DHCP 服务的不同服务器中运行,请使用 TFTP 服务运行的服务器的 FQDN 或 IP 地址更新 tftp_servername 设置:

    # satellite-installer --foreman-proxy-tftp-servername=TFTP_Server_FQDN
    Copy to Clipboard Toggle word wrap
  6. 登录卫星服务器 Web UI。
  7. 导航到 Infrastructure > Capsules,找到 Satellite Server,然后从 Actions 列的列表中,选择 Refresh
  8. 将 TFTP 服务与适当的子网和域关联。

5.4. 使用外部 IdM DNS 配置 Satellite 服务器

当卫星服务器为主机添加 DNS 记录时,它首先确定为该域提供 DNS 的胶囊。然后,它将与配置为为您的部署提供 DNS 服务的胶囊通信,并添加记录。此过程中不涉及主机。因此,您必须在当前被配置为使用 IdM 服务器管理的域的 Satellite 或 Capsule 上安装和配置 IdM 客户端。

Satellite 服务器可以配置为使用 Red Hat Identity Management(IdM)服务器来提供 DNS 服务。有关 Red Hat Identity Management 的更多信息,请参阅 Linux 域身份、身份验证和策略指南

要将 Satellite 服务器配置为使用 Red Hat Identity Management(IdM)服务器来提供 DNS 服务,请使用以下步骤之一:

要恢复到内部 DNS 服务,请使用以下步骤:

注意

您不需要使用 Satellite 服务器来管理 DNS。当您使用 Satellite 的 realm 注册功能时,置备的主机会自动注册到 IdM,ipa-client-install 脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置卫星服务器是互斥的。有关配置域注册的更多信息,请参阅 管理 Red Hat Satellite 中的 Provisioned 主机的外部身份验证

5.4.1. 使用 GSS-TSIG 身份验证配置动态 DNS 更新

您可以将 IdM 服务器配置为使用 RFC3645 中定义的 secret 密钥事务(GSS-TSIG)技术的通用安全服务算法。要将 IdM 服务器配置为使用 GSS-TSIG 技术,您必须在 Satellite 服务器基础操作系统上安装 IdM 客户端。

先决条件

  • 您必须确保 IdM 服务器已部署并正确配置基于主机的防火墙。如需更多信息,请参阅 Linux 域身份、身份验证和策略指南中的 端口要求
  • 您必须联系 IdM 服务器管理员,以确保在 IdM 服务器中获取具有在 IdM 服务器中创建的区的权限。
  • 您必须确认 Satellite 服务器或胶囊服务器是否配置为为您的部署提供 DNS 服务。
  • 您必须在用于管理用于部署的 DNS 服务的卫星或胶囊的基础操作系统上配置 DNS、DHCP 和 TFTP 服务。
  • 您必须创建回答文件的备份。如果已损坏,您可以使用备份将回答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器

流程

要使用 GSS-TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:

在 IdM 服务器上创建 Kerberos 主体

  1. 获取从 IdM 管理员获取的帐户的 Kerberos ticket:

    # kinit idm_user
    Copy to Clipboard Toggle word wrap
  2. 为 Satellite 服务器创建一个新的 Kerberos 主体,用于在 IdM 服务器中进行身份验证。

    # ipa service-add satellite.example.com
    Copy to Clipboard Toggle word wrap

安装和配置 IdM 客户端

  1. 在管理用于部署的 DNS 服务的 Satellite 或 Capsule 的基础操作系统上,安装 ipa-client 软件包:

    # satellite-maintain packages install ipa-client
    Copy to Clipboard Toggle word wrap
  2. 运行安装脚本并根据屏幕提示配置 IdM 客户端:

    # ipa-client-install
    Copy to Clipboard Toggle word wrap
  3. 获取Kerberos ticket:

    # kinit admin
    Copy to Clipboard Toggle word wrap
  4. 删除任何已存在的 keytab

    # rm /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
  5. 获取此系统的 keytab

    # ipa-getkeytab -p capsule/satellite.example.com@EXAMPLE.COM \
    -s idm1.example.com -k /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
    注意

    当将 keytab 添加到与服务中原始系统相同的主机名的备用系统中时,添加 r 选项以防止生成新凭证,并在原始系统上渲染凭证无效。

  6. 对于 dns.keytab 文件,将 group 和 owner 设置为 foreman-proxy

    # chown foreman-proxy:foreman-proxy /etc/foreman-proxy/dns.keytab
    Copy to Clipboard Toggle word wrap
  7. 可选: 要验证 keytab 文件是否有效,请输入以下命令:

    # kinit -kt /etc/foreman-proxy/dns.keytab \
    capsule/satellite.example.com@EXAMPLE.COM
    Copy to Clipboard Toggle word wrap

在 IdM Web UI 中配置 DNS 区域

  1. 创建并配置您要管理的区域:

    1. 进入 Network Services > DNS > DNS Zones
    2. 选择 Add 并输入区域名称。例如: example.com
    3. Add and Edit
    4. 点 Settings 标签页并在 BIND 更新策略 框中,在分号分开的列表中添加以下内容:

      grant capsule/047satellite.example.com@EXAMPLE.COM wildcard * ANY;
      Copy to Clipboard Toggle word wrap
    5. Dynamic update 设置为 True
    6. 启用 Allow PTR 同步
    7. Save 保存更改。
  2. 创建并配置反向区:

    1. 进入 Network Services > DNS > DNS Zones
    2. Add
    3. 选择 Reverse zone IP 网络 并使用 CIDR 格式添加网络地址以启用反向查找。
    4. Add and Edit
    5. Settings 标签页并在 BIND 更新策略 框中,在分号分开的列表中添加以下内容:

      grant capsule\047satellite.example.com@EXAMPLE.COM wildcard * ANY;
      Copy to Clipboard Toggle word wrap
    6. Dynamic update 设置为 True
    7. Save 保存更改。

配置为域管理 DNS 服务的 Satellite 或 Capsule Server

  1. 使用 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
      Copy to Clipboard Toggle word wrap
    • 在 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
      Copy to Clipboard Toggle word wrap
  2. 重启 Satellite 或 Capsule 的代理服务。

    # systemctl restart foreman-proxy
    Copy to Clipboard Toggle word wrap

运行 satellite-installer 命令后,对胶囊配置进行任何更改,您必须在卫星 Web UI 中更新每个受影响的胶囊的配置。

在 Satellite Web UI 中更新配置

  1. 导航到 Infrastructure > Capsules,找到 Satellite Server,然后从 Actions 列的列表中,选择 Refresh
  2. 配置域:

    1. 进入 Infrastructure > Domains 并选择域名。
    2. Domain 选项卡中,确保 DNS Capsule 设置为连接子网的胶囊。
  3. 配置子网:

    1. 进入 Infrastructure > Subnets 并选择子网名称。
    2. Subnet 选项卡中,将 IPAM 设置为 None
    3. Domains 选项卡中,选择您要使用 IdM 服务器管理的域。
    4. Capsules 选项卡中,确保将 Reverse DNS Capsule 设置为连接子网的胶囊。
    5. Submit 保存更改。

5.4.2. 使用 TSIG 身份验证配置动态 DNS 更新

您可以将 IdM 服务器配置为使用 rndc.key 密钥文件对 DNS(TSIG)技术的 secret key 事务身份验证进行身份验证。TSIG 协议在 RFC2845 中定义。

先决条件

  • 您必须确保 IdM 服务器已部署并正确配置基于主机的防火墙。如需更多信息,请参阅 Linux 域身份、身份验证和策略指南中的 端口要求
  • 您必须在 IdM 服务器上获取 root 用户访问。
  • 您必须确认 Satellite 服务器或胶囊服务器是否配置为为您的部署提供 DNS 服务。
  • 您必须在用于管理用于部署的 DNS 服务的卫星或胶囊的基础操作系统上配置 DNS、DHCP 和 TFTP 服务。
  • 您必须创建回答文件的备份。如果已损坏,您可以使用备份将回答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器

流程

要使用 TSIG 身份验证配置动态 DNS 更新,请完成以下步骤:

在 IdM 服务器中启用对 DNS 区的外部更新

  1. 在 IdM 服务器中,在 /etc/named.conf 文件的顶部添加以下内容:

    ########################################################################
    
    include "/etc/rndc.key";
    controls  {
    inet _IdM_Server_IP_Address_ port 953 allow { _Satellite_IP_Address_; } keys { "rndc-key"; };
    };
    ########################################################################
    Copy to Clipboard Toggle word wrap
  2. 重新载入 named 服务以使更改生效:

    # systemctl reload named
    Copy to Clipboard Toggle word wrap
  3. 在 IdM web UI 中,进入 Network Services > DNS > DNS Zones 并点区的名称。在 Settings 选项卡中,应用以下更改:

    1. BIND 更新策略 框中添加以下内容:

      grant "rndc-key" zonesub ANY;
      Copy to Clipboard Toggle word wrap
    2. Dynamic update 设置为 True
    3. Update 保存更改。
  4. /etc/rndc.key 文件从 IdM 服务器复制到 Satellite 服务器的基础操作系统。使用以下命令:

    # scp /etc/rndc.key root@satellite.example.com:/etc/rndc.key
    Copy to Clipboard Toggle word wrap
  5. 要为 rndc.key 文件设置正确的所有权、权限和 SELinux 上下文,请输入以下命令:

    # restorecon -v /etc/rndc.key
    # chown -v root:named /etc/rndc.key
    # chmod -v 640 /etc/rndc.key
    Copy to Clipboard Toggle word wrap
  6. foreman-proxy 用户手动分配给 指定组。通常, satellite-installer 可确保 foreman-proxy 用户属于 命名 UNIX 组,但在这种情形中,卫星不管理用户和组,因此您需要手动将 foreman-proxy 用户分配给指定组。

    # usermod -a -G named foreman-proxy
    Copy to Clipboard Toggle word wrap
  7. 在控制台中,输入以下 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
    Copy to Clipboard Toggle word wrap

将外部更新测试到 IdM 服务器中的 DNS 区

  1. 安装 bind-utils 工具:

    # yum install bind-utils
    Copy to Clipboard Toggle word wrap
  2. 确保卫星服务器的 /etc/rndc.key 文件中的密钥与 IdM 服务器上的 /etc/rndc.key 文件中的密钥相同:

    key "rndc-key" {
            algorithm hmac-md5;
            secret "secret-key==";
    };
    Copy to Clipboard Toggle word wrap
  3. 在卫星服务器上,为主机创建一个测试 DNS 条目。例如,在 IdM 服务器上具有 A 记录 192.168.25.20 的主机 test.example.com,地址为 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
    Copy to Clipboard Toggle word wrap
  4. 在 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
    Copy to Clipboard Toggle word wrap
  5. 要在 IdM web UI 中查看条目,请导航至 Network Services > DNS Zones。点区域的名称,并按名称搜索主机。
  6. 如果成功解析,请删除测试 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
    Copy to Clipboard Toggle word wrap
  7. 确认 DNS 条目已被删除:

    # nslookup test.example.com 192.168.25.1
    Copy to Clipboard Toggle word wrap

    如果成功删除了记录,上面的 nslookup 命令会失败并返回 SERVFAIL 错误消息。

5.4.3. 恢复到内部 DNS 服务

您可以使用 Satellite 服务器和 Capsule Server 作为 DNS 提供程序恢复到。您可以使用配置外部 DNS 之前创建的回答文件备份,或者创建回答文件备份。有关回答文件的更多信息,请参阅 配置卫星服务器

流程

在您要配置用来管理域的 DNS 服务的 Satellite 或 Capsule 服务器中,请完成以下步骤:

将 Satellite 或 Capsule 配置为 DNS 服务器

  • 如果您在配置外部 DNS 前创建了回答文件的备份,请恢复回答文件,然后输入 satellite-installer 命令:

    # satellite-installer
    Copy to Clipboard Toggle word wrap
  • 如果您没有回答文件的适当备份,请立即创建回答文件的备份。要在不使用回答文件的情况下将 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
    Copy to Clipboard Toggle word wrap

    如需更多信息,请参阅 在胶囊服务器上配置 DNS、DHCP 和 TFTP

运行 satellite-installer 命令后,对胶囊配置进行任何更改,您必须在卫星 Web UI 中更新每个受影响的胶囊的配置。

在 Satellite Web UI 中更新配置

  1. 进入 Infrastructure > Capsules
  2. 对于您要更新的每个胶囊,从 Actions 列表中选择 Refresh
  3. 配置域:

    1. 进入 Infrastructure > Domains 并点击您要配置的域名。
    2. Domain 选项卡中,将 DNS Capsule 设置为连接子网的胶囊。
  4. 配置子网:

    1. 进入 Infrastructure > Subnets 并选择子网名称。
    2. 子网 选项卡中,将 IPAM 设置为 DHCP 或内部数据库
    3. Domains 选项卡中,选择您要使用 Satellite 或 Capsule 管理的域。
    4. Capsules 选项卡中,将 Reverse DNS Capsule 设置为连接子网的胶囊。
    5. Submit 保存更改。

附录 A. 将自定义配置应用到 Red Hat Satellite

当您首次使用 satellite-installer 安装并配置 Satellite 时,您可以使用安装程序标志 --foreman-proxy-dns-managed=false--foreman-proxy-dhcp-managed=false 指定 DNS 和 DHCP 配置文件不是由 Puppet 管理。如果在初始安装程序运行期间未指定这些标记,则重新运行安装程序会覆盖所有手动更改,例如在升级中重新运行。如果更改被覆盖,您必须运行恢复过程来恢复手动更改。更多信息请参阅 附录 B, 恢复由 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
    Copy to Clipboard Toggle word wrap
  • 要完全关闭 Apache 服务器签名:

    apache::server_signature: Off
    Copy to Clipboard Toggle word wrap
  • 对于 Pulp,以配置 pulp worker 的数量:

    pulp::num_workers: 8
    Copy to Clipboard Toggle word wrap

Satellite 安装程序的 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 配置文件。

流程

  1. 复制您要恢复的 文件。这可让您比较文件来检查升级所需的任何强制更改。DNS 或 DHCP 服务不常见。

    # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.backup
    Copy to Clipboard Toggle word wrap
  2. 检查日志文件,以记下覆盖文件的 md5sum。例如:

    # journalctl -xe
    ...
    /Stage[main]/Dhcp/File[/etc/dhcp/dhcpd.conf]: Filebucketed /etc/dhcp/dhcpd.conf to puppet with sum 622d9820b8e764ab124367c68f5fa3a1
    ...
    Copy to Clipboard Toggle word wrap
  3. 恢复覆盖的文件:

    # puppet filebucket restore --local --bucket \
    /var/lib/puppet/clientbucket /etc/dhcp/dhcpd.conf \ 622d9820b8e764ab124367c68f5fa3a1
    Copy to Clipboard Toggle word wrap
  4. 比较备份文件和恢复的文件,并编辑恢复的文件,使其包含升级所需的任何强制更改。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat