安装 Capsule 服务器


Red Hat Satellite 6.16

安装和配置 Capsule

Red Hat Satellite Documentation Team

摘要

本指南介绍了如何安装 Red Hat Satellite Capsule 服务器、执行初始配置以及配置外部服务。

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

使用 Red Hat Jira 中的 Create Issue 表单提供您的反馈。JIRA 问题是在 Red Hat Satellite Jira 项目中创建的,您可以在其中跟踪其进度。

先决条件

流程

  1. 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
  2. 完成 SummaryDescription 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
  3. Create

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

在安装 Capsule 服务器前,请先参阅以下先决条件。

有关执行安装的交互式说明,您可以在红帽客户门户网站上使用 Red Hat Satellite Installation Helper。此应用程序为您提供了准备为所需 Satellite 版本号和配置自定义的安装说明的交互式方法。如需更多信息,请参阅红帽客户门户网站上的 Red Hat Satellite 安装 Helper

1.1. 系统要求

以下要求适用于网络的基本操作系统:

  • x86_64 架构
  • Red Hat Enterprise Linux 9 或 Red Hat Enterprise Linux 8 的最新版本
  • 至少 4 核 2.0 GHz CPU
  • 胶囊式服务器正常工作至少需要 12 GB RAM。此外,还建议至少 4 GB RAM 的交换空间。运行 RAM 少于最小值的 Capsule 可能无法正常工作。
  • 唯一的主机名,可以包含小写字母、数字、点(.)和连字符(-)
  • 当前的 Red Hat Satellite 订阅
  • 管理用户(root)访问
  • 使用完全限定域名进行全正向和反向 DNS 解析

Satellite 只支持 UTF-8 编码。如果您的 territory 是美国,且您的语言为英语,请将 en_US.utf-8 设置为系统范围的区域设置。有关在 Red Hat Enterprise Linux 中配置系统区域设置的更多信息,请参阅 Red Hat Enterprise Linux 9 配置基本系统设置 中的 配置系统区域设置

您的 Satellite 在您的客户门户网站中必须具有 Red Hat Satellite Infrastructure Subscription 清单。Satellite 必须启用并同步 satellite-capsule-6.x 存储库。要在客户门户网站中创建、管理和导出红帽订阅清单,请参阅 Subscription Central 中为连接的 Satellite Server 创建和管理清单

Satellite 服务器和 Capsule 服务器不支持主机名中的短名称。使用自定义证书时,自定义证书的通用名称(CN)必须是完全限定域名(FQDN),而不是短名称。这不适用于 Satellite 的客户端。

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

警告

Capsule 的版本必须与安装的 Satellite 版本匹配。它不应该是不同的。例如,胶囊版本 6.16 无法注册到 Satellite 版本 6.15 中。

除了运行胶囊服务器外,必须在全新置备的系统上安装 Capsule 服务器。新置备的系统不能有外部身份提供程序提供的以下用户,以避免与 Capsule Server 创建的本地用户冲突:

  • Apache
  • foreman-proxy
  • postgres
  • Pulp
  • puppet
  • redis

有关扩展 Capsule 服务器的更多信息,请参阅 Capsule 服务器可扩展性注意事项

认证的虚拟机监控程序

胶囊式服务器在支持运行 Red Hat Enterprise Linux 的虚拟机监控程序上运行的物理系统和虚拟机上被完全支持。有关认证的hypervisor 的更多信息,请参阅 OpenShift、Red Hat Virtualization、Red Hat OpenShift Virtualization 和带有 KVM 的 Red Hat OpenStack Services 中的认证的客户机操作系统

SELinux 模式

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

同步系统时钟

安装 Capsule 服务器的基本操作系统上的系统时钟必须在网络间同步。如果系统时钟没有同步,SSL 证书验证可能会失败。例如,您可以使用 Chrony 套件进行计时。如需更多信息,请参阅以下文档:

  • Red Hat Enterprise Linux 9 配置基本系统设置中配置 时间同步
  • Red Hat Enterprise Linux 8 配置基本系统设置中配置 时间同步

FIPS 模式

您可以在以 FIPS 模式运行的 Red Hat Enterprise Linux 系统上安装 Capsule。安装 Capsule 后您无法启用 FIPS 模式。如需更多信息,请参阅 Red Hat Enterprise Linux 9 安全强化 中的 将 RHEL 切换到 FIPS 模式,或将 RHEL 切换到 FIPS 模式。https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/security_hardening/switching-rhel-to-fips-mode_security-hardening

注意

Satellite 支持 DEFAULT 和 FIPS 加密策略。FUTURE 加密策略不支持 Satellite 和 Capsule 安装 。FUTURE 策略是更严格的安全级别,用于测试可能的未来策略。如需更多信息,请参阅 Red Hat Enterprise Linux 9 安全强化 中的 使用系统范围的加密策略

1.2. 存储要求

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

运行时大小由 Red Hat Enterprise Linux 7、8 和 9 软件仓库同步来测量。

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

/var/lib/pulp

1 MB

300 GB

/var/lib/pgsql

100 MB

20 GB

/usr

3 GB

不适用

/opt/puppetlabs

500 MB

不适用

胶囊服务器上的 PostgreSQL 数据库的大小可能会显著增长,同时增加了从 Satellite 服务器同步的生命周期环境、内容视图或存储库的数量。在最大的 Satellite 环境中,胶囊服务器上的 /var/lib/pgsql 的大小可以增加到 Satellite 服务器上 /var/lib/pgsql 的大小加倍或三倍。

1.3. 存储指南

在安装 Capsule 服务器以提高效率时请考虑以下准则。

  • 如果将 /tmp 目录挂载为单独的文件系统,则必须使用 /etc/fstab 文件中的 exec 挂载选项。如果 /tmp 已使用 noexec 选项挂载,则必须将选项更改为 exec 并重新安装文件系统。这是 puppetserver 服务正常工作的要求。
  • 由于大多数胶囊服务器数据都存储在 /var 目录中,因此在 LVM 存储上挂载 /var 可以帮助系统扩展。
  • /var/lib/pulp/ 和 PostgreSQL /var/lib/pgsql 目录使用高带宽、低延迟存储。因为 Red Hat Satellite 具有很多 I/O 密集型操作,使用高延迟、低带宽存储会导致性能下降。

您可以使用 storage-benchmark 脚本获取此数据。有关使用 storage-benchmark 脚本的更多信息,请参阅 对 Satellite 操作磁盘的影响

文件系统指南

  • 不要使用 GFS2 文件系统作为输入输出延迟太大。

日志文件存储

日志文件被写入 /var/log/messages//var/log/httpd//var/lib/foreman-proxy/openscap/content/。您可以使用 logrotate 管理这些文件的大小。如需更多信息,请参阅 如何使用 logrotate 实用程序轮转日志文件

日志消息的具体存储量取决于您的安装和设置。

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

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

# restorecon -R /var/lib/pulp
Copy to Clipboard Toggle word wrap

重复的软件包

在不同存储库中重复的软件包仅存储在磁盘上一次。包含重复软件包的额外软件仓库需要较少的额外存储。批量存储驻留在 /var/lib/pulp/ 目录中。这些端点无法手动配置。确保存储在 /var 文件系统上可用,以防止存储问题。

符号链接

您不能将符号链接用于 /var/lib/pulp/

同步 RHEL ISO

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

1.4. 支持的操作系统

您可以从磁盘、本地 ISO 镜像、Kickstart 或者红帽支持的任何其他方法安装操作系统。安装 Capsule 服务器时,可以在最新版本的 Red Hat Enterprise Linux 9 和 Red Hat Enterprise Linux 8 上支持 Red Hat Capsule Server。以前的 Red Hat Enterprise Linux 版本(包括 EUS 或 z-stream)不被支持。

安装程序支持以下操作系统,有软件包,并经过测试用于部署 Satellite:

Expand
表 1.2. satellite-installer 支持的操作系统

操作系统

架构

Red Hat Enterprise Linux 9

仅限 x86_64

 

Red Hat Enterprise Linux 8

仅限 x86_64

 

红帽建议使用现有系统,因为 Satellite 安装程序会影响多个组件的配置。Red Hat Capsule 服务器需要一个 Red Hat Enterprise Linux 安装,没有其它软件包设置修改的 @Base 软件包组,而不需要直接进行服务器直接操作的第三方配置或软件。这个限制包括强化和其他非红帽安全软件。如果您在基础架构中需要此类软件,请首先安装和验证完整的胶囊服务器,然后在添加任何非红帽软件前创建系统的备份。

不要将 Capsule 服务器注册到 Red Hat Content Delivery Network (CDN)。

除了运行 Capsule Server 外,红帽不支持将系统用于任何其他系统。

1.5. 端口和防火墙要求

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

如果在安装启动前没有打开 Satellite 服务器和 Capsule 服务器之间的端口,则胶囊服务器的安装会失败。

使用这些信息来配置任何基于网络的防火墙。请注意,一些解决方案必须专门配置为允许机器之间的通信,因为它们与基于网络的防火墙隔离机器。如果您使用基于应用程序的防火墙,请确保基于应用程序的防火墙允许所有在表中列出的应用程序以及防火墙已知的应用程序。如果可能,禁用应用程序检查并允许基于协议打开端口通信。

集成的 Capsule

Satellite 服务器有一个集成的 Capsule,任何直接连接到 Satellite 服务器的主机是本节上下文中的 Satellite 客户端。这包括在其上运行胶囊式服务器的基本操作系统。

Capsule 的客户端

作为 Capsule 客户端(Satellite 集成胶囊以外的主机)不需要访问 Satellite 服务器。如需有关 Satellite 拓扑的更多信息,请参阅 Overview、概念和部署注意事项 中的 Capsule 网络

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

下表表示目的地端口和网络流量的方向:

Expand
表 1.3. Capsule 传入流量
目的地端口协议服务必填号描述

53

TCP 和 UDP

DNS

DNS 服务器和客户端

名称解析

DNS (可选)

67

UDP

DHCP

客户端

动态 IP

DHCP (可选)

69

UDP

TFTP

客户端

TFTP 服务器(可选)

 

443, 80

TCP

HTTPS、HTTP

客户端

内容重试

内容

443, 80

TCP

HTTPS、HTTP

客户端

内容主机注册

胶囊 CA RPM 安装

443

TCP

HTTPS

Red Hat Satellite

内容镜像

管理

443

TCP

HTTPS

Red Hat Satellite

Capsule API

智能代理功能

443

TCP

HTTPS

客户端

内容主机注册

启动

上传事实

发送安装的软件包和追踪

1883

TCP

MQTT

客户端

基于拉取的 REX (可选)

REX 作业通知的内容主机(可选)

8000

TCP

HTTP

客户端

自定义模板

客户端安装程序、i iPXE 或 UEFI HTTP 引导的模板检索

8000

TCP

HTTP

客户端

PXE 引导

安装

8140

TCP

HTTPS

客户端

Puppet 代理

客户端更新(可选)

8443

TCP

HTTPS

客户端

内容主机注册

弃用且只需要在升级前部署的客户端主机

9090

TCP

HTTPS

Red Hat Satellite

Capsule API

Capsule 功能

9090

TCP

HTTPS

客户端

注册端点

使用 Capsule 服务器进行客户端注册

9090

TCP

HTTPS

客户端

OpenSCAP

配置客户端(如果安装了 OpenSCAP 插件)

9090

TCP

HTTPS

发现的节点

Discovery(发现)

主机发现和置备(如果安装了发现插件)

9090

TCP

HTTPS

客户端

基于拉取的 REX (可选)

REX 作业通知的内容主机(可选)

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

DHCP Capsule 执行 ICMP ping 和 TCP 回显连接尝试设置 DHCP IPAM 的子网的主机,以找出被视为使用的 IP 地址是空闲的。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false 关闭此行为。

Expand
表 1.4. 胶囊传出流量
目的地端口协议服务目的地必填号描述
 

ICMP

ping

客户端

DHCP

免费 IP 检查(可选)

7

TCP

echo

客户端

DHCP

免费 IP 检查(可选)

22

TCP

SSH

目标主机

远程执行

运行作业

53

TCP 和 UDP

DNS

互联网上的 DNS 服务器

DNS 服务器

解析 DNS 记录(可选)

53

TCP 和 UDP

DNS

DNS 服务器

Capsule DNS

验证 DNS 冲突(可选)

68

UDP

DHCP

客户端

动态 IP

DHCP (可选)

443

TCP

HTTPS

Satellite

Capsule

Capsule

配置管理

模板检索

OpenSCAP

远程执行结果上传

443

TCP

HTTPS

Red Hat Portal

SOS 报告

辅助支持问题单(可选)

443

TCP

HTTPS

Satellite

内容

同步

443

TCP

HTTPS

Satellite

客户端通信

将请求从客户端转发到 Satellite

443

TCP

HTTPS

Infoblox DHCP 服务器

DHCP 管理

使用 Infoblox 进行 DHCP 时,管理 DHCP 租期(可选)

623

  

客户端

电源管理

BMC On/Off/Cycle/Status

7911

TCP

DHCP, OMAPI

DHCP Server

DHCP

DHCP 目标使用 --foreman-proxy-dhcp-server 配置,默认为 localhost

ISC 和 remote_isc 使用了一个可配置的端口,默认为 7911,并使用 OMAPI

8443

TCP

HTTPS

客户端

Discovery(发现)

Capsule 将 reboot 命令发送到发现的主机(可选)

注意

对端口 7 UDP 和 TCP 的 ICMP 不能被拒绝,但可以丢弃。DHCP Capsule 将 ECHO REQUEST 发送到客户端网络,以验证 IP 地址是否可用。响应可防止分配 IP 地址。

在您要在其上安装 Capsule 的基本操作系统上,您必须启用从 Satellite 服务器和客户端到 Capsule 服务器的传入连接,并使这些规则在重新引导后仍然有效。

流程

  1. 在 Capsule 服务器上为客户端打开端口:

    # firewall-cmd \
    --add-port="8000/tcp" \
    --add-port="9090/tcp"
    Copy to Clipboard Toggle word wrap
  2. 允许访问 Capsule 服务器上的服务:

    # firewall-cmd \
    --add-service=dns \
    --add-service=dhcp \
    --add-service=tftp \
    --add-service=http \
    --add-service=https \
    --add-service=puppetmaster
    Copy to Clipboard Toggle word wrap
  3. 使更改持久:

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

验证

  • 输入以下命令:

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

如需更多信息,请参阅在 Red Hat Enterprise Linux 9 配置防火墙和数据包过滤器 中使用 和配置 firewalld,或者在 Red Hat Enterprise Linux 8 配置和管理网络 中使用和配置 firewalld。https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_firewalls_and_packet_filters/using-and-configuring-firewalld_firewall-packet-filters

第 2 章 安装 Capsule 服务器

在安装 Capsule 服务器前,您必须确保您的环境满足安装要求。如需更多信息,请参阅 为安装准备您的环境

2.1. 注册到 Satellite 服务器

使用这个流程将要在其上安装胶囊式服务器的基本操作系统注册到 Satellite 服务器。

Red Hat 订阅清单先决条件

  • 在服务器上,必须安装清单,并且必须包含您要胶囊所属的组织的适当存储库。
  • 清单必须包含您要在其上安装 Capsule 的基本操作系统的软件仓库,以及您要连接到 Capsule 的任何客户端。
  • 必须同步存储库。

如需有关清单和存储库的更多信息, 请参阅管理内容中的红帽订阅

代理和网络先决条件

  • 卫星服务器基础操作系统必须能够解析胶囊基础操作系统的主机名,反之亦然。
  • 确保 Capsule 服务器和 Satellite 服务器之间可以使用客户端证书身份验证的 HTTPS 连接。不支持胶囊服务器和 Satellite 服务器之间的 HTTP 代理。
  • 您必须相应地配置主机和基于网络的防火墙。如需更多信息,请参阅安装 Capsule 服务器 中的 端口和防火墙要求。您可以使用 Satellite Web UI、Hammer CLI 或 Satellite API 中的主机注册功能将主机注册到 Satellite。如需更多信息,请参阅 管理主机 中的 注册主机和设置主机集成

流程

  1. 在 Satellite Web UI 中,进入到 Hosts > Register Host
  2. Activation Keys 列表中,选择要分配给主机的激活密钥。
  3. Generate 来创建注册命令。
  4. files 图标将命令复制到您的剪贴板。
  5. 使用 SSH 连接到您的主机并运行注册命令。
  6. 检查 /etc/yum.repos.d/redhat.repo 文件,并确保启用了适当的软件仓库。

CLI 过程

  1. 使用 Hammer CLI 生成主机注册命令:

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key"
    Copy to Clipboard Toggle word wrap

    如果您的主机不信任 Satellite 服务器的 SSL 证书,您可以通过在注册命令中添加- insecure 标志来禁用 SSL 验证。

    # hammer host-registration generate-command \
    --activation-keys "My_Activation_Key" \
    --insecure true
    Copy to Clipboard Toggle word wrap
  2. 使用 SSH 连接到您的主机并运行注册命令。
  3. 检查 /etc/yum.repos.d/redhat.repo 文件,并确保启用了适当的软件仓库。

API 流程

  1. 使用 Satellite API 生成主机注册命令:

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"] }}'
    Copy to Clipboard Toggle word wrap

    如果您的主机不信任 Satellite 服务器的 SSL 证书,您可以通过在注册命令中添加- insecure 标志来禁用 SSL 验证。

    # curl -X POST https://satellite.example.com/api/registration_commands \
    --user "My_User_Name" \
    -H 'Content-Type: application/json' \
    -d '{ "registration_command": { "activation_keys": ["My_Activation_Key_1, My_Activation_Key_2"], "insecure": true }}'
    Copy to Clipboard Toggle word wrap

    使用激活码来简化指定环境。如需更多信息,请参阅管理内容中的管理 激活码

    要输入密码作为命令行参数,请使用 username:password 语法。请记住,这会将密码保存到 shell 历史记录中。或者,您可以使用临时个人访问令牌而不是密码。要在 Satellite Web UI 中生成令牌,请导航到 My Account > Personal Access Tokens

  2. 使用 SSH 连接到您的主机并运行注册命令。
  3. 检查 /etc/yum.repos.d/redhat.repo 文件,并确保启用了适当的软件仓库。

2.2. 配置软件仓库

前提条件

流程

选择您要在其中安装的操作系统和版本:

2.2.1. Red Hat Enterprise Linux 9

  1. 禁用所有软件仓库:

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

    # subscription-manager repos \
    --enable=rhel-9-for-x86_64-baseos-rpms \
    --enable=rhel-9-for-x86_64-appstream-rpms \
    --enable=satellite-capsule-6.16-for-rhel-9-x86_64-rpms \
    --enable=satellite-maintenance-6.16-for-rhel-9-x86_64-rpms
    Copy to Clipboard Toggle word wrap

验证

  • 验证是否启用了所需的软件仓库:

    # dnf repolist enabled
    Copy to Clipboard Toggle word wrap

2.2.2. Red Hat Enterprise Linux 8

  1. 禁用所有软件仓库:

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

    # subscription-manager repos \
    --enable=rhel-8-for-x86_64-baseos-rpms \
    --enable=rhel-8-for-x86_64-appstream-rpms \
    --enable=satellite-capsule-6.16-for-rhel-8-x86_64-rpms \
    --enable=satellite-maintenance-6.16-for-rhel-8-x86_64-rpms
    Copy to Clipboard Toggle word wrap
  3. 启用模块:

    # dnf module enable satellite-capsule:el8
    Copy to Clipboard Toggle word wrap

验证

  • 验证是否启用了所需的软件仓库:

    # dnf repolist enabled
    Copy to Clipboard Toggle word wrap

其它资源

2.3. 可选:在 Capsule 服务器上使用 fapolicyd

通过在 Satellite 服务器上启用 fapolicyd,您可以通过监控并控制对文件和目录的访问来提供额外的安全层。fapolicyd 守护进程使用 RPM 数据库作为可信二进制文件和脚本的存储库。

您可以在 Satellite 服务器或 Capsule 服务器上打开或关闭 fapolicyd。

2.3.1. 在 Capsule 服务器上安装 fapolicyd

您可以与 Capsule 服务器一起安装 fapolicyd,也可以安装到现有的 Capsule 服务器上。如果您要安装 fapolicyd 以及新的 Capsule 服务器,安装过程会在 Red Hat Enterprise Linux 主机中检测到 fapolicyd,并自动部署 Capsule Server 规则。

先决条件

  • 确保您的主机有权访问 Red Hat Enterprise Linux 的 BaseOS 软件仓库。

流程

  1. 对于新安装,请安装 fapolicyd :

    # dnf install fapolicyd
    Copy to Clipboard Toggle word wrap
  2. 对于现有安装,使用 satellite-maintain 软件包安装 fapolicyd:

    # satellite-maintain packages install fapolicyd
    Copy to Clipboard Toggle word wrap
  3. 启动 fapolicyd 服务:

    # systemctl enable --now fapolicyd
    Copy to Clipboard Toggle word wrap

验证

  • 验证 fapolicyd 服务是否正常运行:

    # systemctl status fapolicyd
    Copy to Clipboard Toggle word wrap

新的 Satellite 服务器或 Capsule 服务器安装

如果是新的 Satellite 服务器或 Capsule 服务器安装,请在 Red Hat Enterprise Linux 主机上安装并启用 fapolicyd 后按照标准安装过程进行操作。

其他资源

有关 fapolicyd 的更多信息,请参阅 Red Hat Enterprise Linux 9 安全强化阻塞 中的使用 fapolicyd 的应用程序,并在 Red Hat Enterprise Linux 8 安全强化 中使用 fapolicyd 的应用程序。

2.4. 安装 Capsule Server 软件包

在安装胶囊式服务器软件包前,您必须更新安装在基本操作系统上的所有软件包。

流程

要安装 Capsule 服务器,请完成以下步骤:

  1. 更新所有软件包:

    # dnf upgrade
    Copy to Clipboard Toggle word wrap
  2. 安装 Capsule Server 软件包:

    # dnf install satellite-capsule
    Copy to Clipboard Toggle word wrap

2.5. 使用 SSL 证书配置 Capsule 服务器

Red Hat Satellite 使用 SSL 证书在 Satellite 服务器、胶囊的服务器和所有主机之间启用加密通信。根据机构的要求,您必须使用默认或自定义证书配置 Capsule 服务器。

2.5.1. 使用默认 SSL 证书配置胶囊服务器

使用本节配置由 Satellite 服务器默认证书颁发机构(CA)签名的 SSL 证书的 Capsule 服务器。

先决条件

流程

  1. 在 Satellite 服务器上,要为您的胶囊服务器存储所有源证书文件,请创建一个只能被 root 用户访问的目录,如 /root/capsule_cert

    # mkdir /root/capsule_cert
    Copy to Clipboard Toggle word wrap
  2. 在 Satellite 服务器上,为您的 Capsule 服务器生成 /root/capsule_cert/capsule.example.com-certs.tar 证书存档:

    # capsule-certs-generate \
    --foreman-proxy-fqdn capsule.example.com \
    --certs-tar /root/capsule_cert/capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap

    保留 satellite-installer 命令的副本,使 capsule-certs-generate 命令将证书部署到您的胶囊服务器。

    capsule-certs-generate的输出示例

    output omitted
    satellite-installer --scenario capsule \
    --certs-tar-file "/root/capsule_cert/capsule.example.com-certs.tar" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com" \
    --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \
    --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY"
    Copy to Clipboard Toggle word wrap

  3. 在 Satellite 服务器上,将证书存档文件复制到您的胶囊服务器中:

    # scp /root/capsule_cert/capsule.example.com-certs.tar \
    root@capsule.example.com:/root/capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  4. 在 Capsule 服务器上,要部署证书,请输入 capsule-certs-generate 命令返回的 satellite-installer 命令。

    当网络连接或端口到 Satellite 尚未打开时,您可以将 --foreman-proxy-register-in-foreman 选项设置为 false,以防止 Capsule 尝试连接 Satellite 并报告错误。在正确配置网络和防火墙时,再次运行安装程序,此选项设为 true

    重要

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

2.5.2. 使用自定义 SSL 证书配置 Capsule 服务器

如果将 Satellite 服务器配置为使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个胶囊服务器。

要使用自定义证书配置 Capsule 服务器,请在每个 Capsule 服务器上完成以下步骤:

2.5.2.1. 为胶囊服务器创建自定义 SSL 证书

在 Satellite 服务器上,为您的胶囊服务器创建一个自定义证书。如果您已经为 Capsule 服务器有自定义 SSL 证书,请跳过此步骤。

流程

  1. 要存储所有源证书文件,请创建一个只能被 root 用户访问的目录:

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

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

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

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
    Copy to Clipboard Toggle word wrap
  3. 为 CSR 创建 /root/capsule_cert/openssl.cnf 配置文件并包含以下内容:

    [ req ]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    prompt = no
    
    [ req_distinguished_name ]
    commonName = capsule.example.com
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth
    subjectAltName = @alt_names
    
    [ alt_names ]
    DNS.1 = capsule.example.com
    Copy to Clipboard Toggle word wrap

    有关 [ v3_req ] 参数及其目的的更多信息,请参阅 RFC 5280: Internet X.509 公钥基础架构证书和证书撤销列表(CRL)配置文件

  4. 可选:如果要在 CSR 中添加可辨识名称(DN)详情,请在 [ req_distinguished_name ] 部分中添加以下信息:

    [req_distinguished_name]
    CN = capsule.example.com
    countryName = My_Country_Name 
    1
    
    stateOrProvinceName = My_State_Or_Province_Name 
    2
    
    localityName = My_Locality_Name 
    3
    
    organizationName = My_Organization_Or_Company_Name
    organizationalUnitName = My_Organizational_Unit_Name 
    4
    Copy to Clipboard Toggle word wrap
    1
    两个字母代码
    2
    全名
    3
    全名(例如:New York)
    4
    负责证书的部门(示例:IT 部门)
  5. 生成 CSR:

    # openssl req -new \
    -key /root/capsule_cert/capsule_cert_key.pem \ 
    1
    
    -config /root/capsule_cert/openssl.cnf \ 
    2
    
    -out /root/capsule_cert/capsule_cert_csr.pem 
    3
    Copy to Clipboard Toggle word wrap
    1
    私钥的路径
    2
    配置文件的路径
    3
    要生成的 CSR 的路径
  6. 将证书签名请求发送到证书颁发机构(CA)。同一 CA 必须为 Satellite 服务器和胶囊服务器签名证书。

    提交请求时,指定证书的期限。发送证书请求的方法会有所不同,因此请查阅 CA 了解首选方法。根据请求,您可以预期在单独的文件中接收 CA 捆绑包和签名证书。

2.5.2.2. 将自定义 SSL 证书部署到胶囊服务器

使用这个流程为胶囊服务器配置由证书颁发机构签名的自定义 SSL 证书。satellite-installer 命令( Capsule -certs-generate 命令返回)对每个 Capsule 服务器是唯一的。不要在多个胶囊服务器上使用相同的命令。

先决条件

流程

  1. 在 Satellite 服务器上,生成证书捆绑包:

    # capsule-certs-generate \
    --foreman-proxy-fqdn capsule.example.com \
    --certs-tar ~/capsule.example.com-certs.tar \
    --server-cert /root/capsule_cert/capsule_cert.pem \ 
    1
    
    --server-key /root/capsule_cert/capsule_cert_key.pem \ 
    2
    
    --server-ca-cert /root/capsule_cert/ca_cert_bundle.pem 
    3
    Copy to Clipboard Toggle word wrap
    1
    由证书颁发机构签名的胶囊服务器证书文件的路径。
    2
    用于为胶囊服务器证书签名的私钥的路径。
    3
    证书颁发机构捆绑包的路径。
  2. 保留 satellite-installer 命令的副本,使 capsule-certs-generate 命令将证书部署到您的胶囊服务器。

    capsule-certs-generate的输出示例

    output omitted
    satellite-installer --scenario capsule \
    --certs-tar-file "/root/capsule.example.com-certs.tar" \
    --foreman-proxy-register-in-foreman "true" \
    --foreman-proxy-foreman-base-url "https://satellite.example.com" \
    --foreman-proxy-trusted-hosts "satellite.example.com" \
    --foreman-proxy-trusted-hosts "capsule.example.com" \
    --foreman-proxy-oauth-consumer-key "My_OAuth_Consumer_Key" \
    --foreman-proxy-oauth-consumer-secret "My_OAuth_Consumer_Secret"
    Copy to Clipboard Toggle word wrap

  3. 在 Satellite 服务器上,将证书存档文件复制到您的胶囊服务器中:

    # scp ~/capsule.example.com-certs.tar \
    root@capsule.example.com:/root/capsule.example.com-certs.tar
    Copy to Clipboard Toggle word wrap
  4. 在 Capsule 服务器上,要部署证书,请输入 capsule-certs-generate 命令返回的 satellite-installer 命令。

    如果网络连接或端口还未打开,您可以将 --foreman-proxy-register-in-foreman 选项设置为 false,以防止 Capsule 尝试连接 Satellite 并报告错误。在正确配置网络和防火墙时,再次运行安装程序,此选项设为 true

    重要

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

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

在将 Satellite 配置为使用自定义 SSL 证书后,您必须将证书部署到注册到 Satellite 的主机。

流程

  • 更新每个主机上的 SSL 证书:

    # dnf install http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard Toggle word wrap

要将自定义 SSL 证书重置为 Capsule 服务器上的默认自签名证书,您必须通过 全局 注册重新注册您的胶囊服务器。如需更多信息,请参阅 管理主机 中的 使用全局注册注册主机

验证

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules 并选择任何 Capsule 服务器。
  2. Overview 选项卡上,单击 Refresh features

安装 Capsule 服务器软件包后,如果有多个机构或位置,您必须将正确的机构和位置分配给 Capsule,以便在 Satellite Web UI 中看到 Capsule。

注意

使用嵌入式 Capsule 将 Capsule 分配给与 Satellite 服务器相同的位置,可防止 Red Hat Insights 上传 Insights 清单。若要启用清单上传,可同步两个胶囊的 SSH 密钥。

流程

  1. 登录 Satellite Web UI。
  2. 从屏幕左上角的 Organization 列表中,选择 Any Organization
  3. 从屏幕左上角的 Location 列表,选择 Any Location
  4. 在 Satellite Web UI 中,进入到 Hosts > All Hosts 并选择 Capsule Server。
  5. Select Actions 列表中,选择 Assign Organization
  6. Organization 列表中,选择要分配此胶囊的组织。
  7. 单击 Mismatch 上的 Fix Organization
  8. Submit
  9. 选择胶囊式服务器。从 Select Actions 列表中,选择 Assign Location
  10. Location 列表中,选择要分配此胶囊的位置。
  11. 单击 Mismatch 上的 Fix Location
  12. Submit
  13. 在 Satellite Web UI 中,进入到 Administer > Organizations,点您为其分配 Capsule 的组织。
  14. 单击 Capsules 选项卡,并确保 Capsule Server 在 Selected items 列表下列出,然后单击 Submit
  15. 在 Satellite Web UI 中,进入到 Administer > Locations,点您为其分配 Capsule 的位置。
  16. 单击 Capsules 选项卡,并确保 Capsule Server 在 Selected items 列表下列出,然后单击 Submit

验证

另外,您还可以验证 Capsule 服务器是否在 Satellite Web UI 中正确列出。

  1. Organization 列表中选择机构。
  2. Location 列表中选择位置。
  3. 在 Satellite Web UI 中,进入到 Hosts > All Hosts
  4. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules

第 3 章 在 Capsule 服务器上执行额外的配置

安装后,您可以在 Capsule 服务器上配置额外的设置。

3.1. 配置 Capsule 以进行主机注册和置备

使用此流程配置 Capsule,以便您可以使用 Capsule 服务器而不是 Satellite 服务器注册和置备主机。

流程

  • 在服务器上,将胶囊添加到可信代理列表中。

    Satellite 需要此功能来识别通过 Capsule 设置的 X-Forwarded-For HTTP 标头转发的主机 IP 地址。为了安全起见,Satellite 默认只识别来自 localhost 的 HTTP 标头。您可以输入可信代理作为 Capsules 或网络范围的有效 IPv4 或 IPv6 地址。

    警告

    不要使用太广泛的网络范围,因为这可能导致安全风险。

    输入以下命令。请注意,命令会覆盖当前存储在 Satellite 中的列表。因此,如果您之前已设置了任何可信代理,还必须将它们包含在命令中:

    # satellite-installer \
    --foreman-trusted-proxies "127.0.0.1/8" \
    --foreman-trusted-proxies "::1" \
    --foreman-trusted-proxies "My_IP_address" \
    --foreman-trusted-proxies "My_IP_range"
    Copy to Clipboard Toggle word wrap

    需要 localhost 条目,不要省略它们。

验证

  1. 使用 Satellite 安装程序的完整帮助列出当前的可信代理:

    # satellite-installer --full-help | grep -A 2 "trusted-proxies"
    Copy to Clipboard Toggle word wrap
  2. 当前列表包含您需要的所有可信代理。

3.2. 为远程执行配置基于拉取的传输

默认情况下,远程执行使用基于推送的 SSH 作为脚本供应商的传输机制。如果您的基础架构禁止从 Capsule 服务器到主机的传出连接,您可以使用带有基于 pull 的传输的远程执行,因为主机启动与 Capsule 服务器的连接。使用基于拉取的传输不会限制这些基础架构。

基于拉取的传输在 Capsule 上包括 pull-mqtt 模式,以及主机上运行的拉取客户端。

注意

pull-mqtt 模式仅适用于 Script 提供程序。Ansible 和其他提供程序将继续使用其默认传输设置。

模式为每个胶囊服务器配置。某些胶囊服务器可以配置为使用 pull-mqtt 模式,而其他胶囊服务器则配置为使用 SSH。如果出现这种情况,则给定主机上的一个远程作业将使用拉取客户端,并且同一主机上的下一个作业将使用 SSH。如果要避免这种情况,请将所有胶囊服务器配置为使用相同的模式。

流程

  1. 在 Capsule 服务器上启用基于拉取的传输:

    # satellite-installer --foreman-proxy-plugin-remote-execution-script-mode=pull-mqtt
    Copy to Clipboard Toggle word wrap
  2. 配置防火墙以允许端口 1883 上的 MQTT 服务:

    # firewall-cmd --add-service=mqtt
    Copy to Clipboard Toggle word wrap
  3. 使更改持久:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  4. pull-mqtt 模式中,主机订阅作业通知到您的 Satellite 服务器或它们注册的任何胶囊服务器。确保 Satellite 服务器将远程执行作业发送到相同的 Satellite 服务器或 Capsule 服务器:

    1. 在 Satellite Web UI 中,进入到 Administer > Settings
    2. Content 选项卡上,将 Prefer registered through Capsule for remote execution 的值设为 Yes

后续步骤

3.3. 在 Capsule 服务器上启用 OpenSCAP

在 Satellite 服务器和 Satellite 服务器的集成胶囊上,OpenSCAP 会被默认启用。要在外部胶囊上使用 OpenSCAP 插件和内容,您必须在每个胶囊上启用 OpenSCAP。

流程

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

    # satellite-installer \
    --enable-foreman-proxy-plugin-openscap \
    --foreman-proxy-plugin-openscap-ansible-module true \
    --foreman-proxy-plugin-openscap-puppet-module true
    Copy to Clipboard Toggle word wrap

    如果要使用 Puppet 部署合规策略,您必须首先启用它。有关更多信息,请参阅使用 Puppet 集成管理配置

3.4. 将生命周期环境添加到胶囊服务器

如果您的胶囊服务器启用了内容功能,您必须添加一个环境,以便 Capsule 可以从 Satellite 服务器同步内容,并为主机系统提供内容。

不要将 Library 生命周期环境分配给您的胶囊服务器,因为它在每次 CDN 更新存储库时触发自动胶囊同步。这可能会在 Capsules、Satellite 和 Capsules 之间消耗多个系统资源,以及 Capsules 上的可用磁盘空间。

您可以在 Satellite 服务器或 Satellite Web UI 上使用 Hammer CLI。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules,再选择您要添加生命周期的 Capsule。
  2. 单击 Edit,再单击 Lifecycle Environments 选项卡。
  3. 在左侧菜单中选择您要添加到胶囊的生命周期环境,然后单击 Submit
  4. 要同步胶囊的内容,请单击 Overview 选项卡,再单击 Synchronize
  5. 选择 Optimized SyncComplete Sync

    有关每个同步类型的定义 ,请参阅恢复存储库

CLI 过程

  1. 要显示所有 Capsule 服务器的列表,请在 Satellite 服务器上输入以下命令:

    # hammer capsule list
    Copy to Clipboard Toggle word wrap

    请注意您要添加生命周期的 Capsule 的 Capsule ID。

  2. 使用 ID,验证您的 Capsule 的详细信息:

    # hammer capsule info \
    --id My_Capsule_ID
    Copy to Clipboard Toggle word wrap
  3. 要查看您的 Capsule 服务器可用的生命周期环境,请输入以下命令并记录 ID 和机构名称:

    # hammer capsule content available-lifecycle-environments \
    --id My_Capsule_ID
    Copy to Clipboard Toggle word wrap
  4. 在您的 Capsule 服务器中添加生命周期环境:

    # hammer capsule content add-lifecycle-environment \
    --id My_Capsule_ID \
    --lifecycle-environment-id My_Lifecycle_Environment_ID
    --organization "My_Organization"
    Copy to Clipboard Toggle word wrap

    对您要添加到胶囊服务器的每个生命周期环境重复此操作。

  5. 将内容从 Satellite 同步到 Capsule。

    • 要将 Satellite 服务器环境中的所有内容同步到 Capsule 服务器,请输入以下命令:

      # hammer capsule content synchronize \
      --id My_Capsule_ID
      Copy to Clipboard Toggle word wrap
    • 要将特定的生命周期环境从 Satellite 服务器同步到 Capsule 服务器,请输入以下命令:

      # hammer capsule content synchronize \
      --id My_Capsule_ID \
      --lifecycle-environment-id My_Lifecycle_Environment_ID
      Copy to Clipboard Toggle word wrap
    • 在不检查元数据的情况下,将 Satellite 服务器中的所有内容同步到您的 Capsule 服务器:

      # hammer capsule content synchronize \
      --id My_Capsule_ID \
      --skip-metadata-check true
      Copy to Clipboard Toggle word wrap

      这等同于在 Satellite Web UI 中选择 Complete Sync

3.5. 在主机上启用电源管理

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

先决条件

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

流程

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

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

3.6. 在胶囊服务器上配置 DNS、DHCP 和 TFTP

要在 Capsule 服务器上配置 DNS、DHCP 和 TFTP 服务,请使用 satellite-installer 命令以及适合您的环境的选项。

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

先决条件

  • 您必须有 DNS 服务器的正确网络名称(dns-interface)。
  • 您必须具有 DHCP 服务器的正确接口名称(dhcp-interface)。
  • 请联系您的网络管理员,以确保您有正确的设置。

流程

  • 输入 satellite-installer 命令,以及适合您的环境的选项。以下示例演示了配置完整置备服务:

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-managed true \
    --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-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 中的日志。

其他资源

第 4 章 使用外部服务配置 Capsule 服务器

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

4.1. 使用外部 DNS 配置 Capsule 服务器

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

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

先决条件

  • 您必须有一个配置了外部 DNS 服务器。
  • 本指南假定您已有安装。

流程

  1. /etc/rndc.key 文件从外部 DNS 服务器复制到 Capsule 服务器:

    # scp root@dns.example.com:/etc/rndc.key /etc/foreman-proxy/rndc.key
    Copy to Clipboard Toggle word wrap
  2. 配置所有权、权限和 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
    Copy to Clipboard Toggle word wrap
  3. 要测试 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
    Copy to Clipboard Toggle word wrap
  4. 输入 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
    Copy to Clipboard Toggle word wrap
  5. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules
  6. 找到 Capsule 服务器,然后从 Actions 列中的列表中选择 Refresh
  7. 将 DNS 服务与适当的子网和域关联。

4.2. 使用外部 DHCP 配置 Capsule 服务器

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

4.2.1. 配置外部 DHCP 服务器以用于胶囊服务器

要将运行 Red Hat Enterprise Linux 的外部 DHCP 服务器配置为 Capsule 服务器,您必须安装 ISC DHCP 服务和 Berkeley Internet 名称域(BIND)工具软件包。您还必须与胶囊服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。

注意

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

流程

  1. 在 Red Hat Enterprise Linux 主机上,安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)工具软件包:

    # dnf install dhcp-server bind-utils
    Copy to Clipboard Toggle word wrap
  2. 生成安全令牌:

    # tsig-keygen -a hmac-md5 omapi_key
    Copy to Clipboard Toggle word wrap
  3. 编辑所有子网的 dhcpd 配置文件并添加 tsig-keygen 生成的密钥。以下是一个示例:

    # 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 "My_Secret";
    };
    omapi-key omapi_key;
    Copy to Clipboard Toggle word wrap

    请注意,选项 router 值是您要与外部 DHCP 服务一起使用的 Satellite 服务器或 Capsule 服务器的 IP 地址。

  4. 在服务器上,定义每个子网。不要为定义的子网设置 DHCP Capsule。

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

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

    # firewall-cmd --add-service dhcp
    Copy to Clipboard Toggle word wrap
  6. 使更改持久:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  7. 在 Satellite 服务器上,确定 foreman 用户的 UID 和 GID:

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

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

    # 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
  10. 启用并启动 DHCP 服务:

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

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

    # mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
    Copy to Clipboard Toggle word wrap
  13. 要为创建的目录创建挂载点,请在 /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
  14. /etc/fstab 中挂载文件系统:

    # mount -a
    Copy to Clipboard Toggle word wrap
  15. 确保 /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 地址。

  16. 重新载入 NFS 服务器:

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

    # firewall-cmd --add-port=7911/tcp
    Copy to Clipboard Toggle word wrap
  18. 可选:配置防火墙以从外部访问 NFS。客户端使用 NFSv3 配置。

    # firewall-cmd \
    --add-service mountd \
    --add-service nfs \
    --add-service rpc-bind \
    --zone public
    Copy to Clipboard Toggle word wrap
  19. 使更改持久:

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

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

先决条件

流程

  1. 安装 nfs-utils 软件包:

    # satellite-maintain packages 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
    $ cat /mnt/nfs/etc/dhcp/dhcpd.conf
    $ cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases
    $ exit
    Copy to Clipboard Toggle word wrap
  8. 输入 satellite-installer 命令,对 /etc/foreman-proxy/settings.d/dhcp.yml 文件进行以下更改:

    # satellite-installer \
    --enable-foreman-proxy-plugin-dhcp-remote-isc \
    --foreman-proxy-dhcp-provider=remote_isc \
    --foreman-proxy-dhcp-server=My_DHCP_Server_FQDN \
    --foreman-proxy-dhcp=true \
    --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=My_Secret \
    --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911
    Copy to Clipboard Toggle word wrap
  9. 将 DHCP 服务与适当的子网和域关联。

4.3. 使用外部 TFTP 配置 Capsule 服务器

您可以使用外部 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-root /mnt/nfs/var/lib/tftpboot \
    --foreman-proxy-tftp=true
    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. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules
  7. 找到 Capsule 服务器,然后从 Actions 列中的列表中选择 Refresh
  8. 将 TFTP 服务与适当的子网和域关联。

4.4. 使用外部 IdM DNS 配置 Capsule 服务器

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

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

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

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

注意

您不需要使用 Capsule 服务器来管理 DNS。当您使用 Satellite 的域注册功能时,置备的主机会自动注册到 IdM,ipa-client-install 脚本会为客户端创建 DNS 记录。使用外部 IdM DNS 和域注册配置 Capsule 服务器是互斥的。有关配置域注册的更多信息,请参阅配置 Satellite,以便在 连接的网络环境中安装 Satellite 服务器 中的 管理注册到身份管理域的主机的生命周期

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

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

先决条件

  • 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 Red Hat Enterprise Linux 8 安装身份管理或端口 要求 中的 Red Hat Enterprise Linux 9 安装身份管理 或端口 要求中的 IdM 的端口 要求。
  • 您必须联系 IdM 服务器管理员,以确保在 IdM 服务器上获得具有权限的帐户,以便在 IdM 服务器上创建区域。
  • 您应创建应答文件的备份。如果应答文件损坏,您可以使用备份将应答文件恢复到其原始状态。如需更多信息,请参阅配置 Satellite 服务器

流程

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

在 IdM 服务器上创建 Kerberos 主体

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

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

    # ipa service-add capsule.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 文件,将 组和所有者设置为 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 sync
    7. Save 保存更改。
  2. 创建并配置反向区:

    1. 导航到 Network Services > DNS > DNS Zones
    2. 点击 Add
    3. 选择 反向区 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 服务器

  1. 配置 Satellite 服务器或 Capsule 服务器以连接到您的 DNS 服务:

    # satellite-installer \
    --foreman-proxy-dns-managed=false \
    --foreman-proxy-dns-provider=nsupdate_gss \
    --foreman-proxy-dns-server="idm1.example.com" \
    --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab \
    --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \
    --foreman-proxy-dns=true
    Copy to Clipboard Toggle word wrap
  2. 对于每个受影响的 Capsule,在 Satellite Web UI 中更新该 Capsule 的配置:

    1. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules,找到 Capsule 服务器,然后从 Actions 列中的列表中,选择 Refresh
    2. 配置域:

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

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

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

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

先决条件

  • 您必须确保 IdM 服务器已部署,并且基于主机的防火墙已正确配置。如需更多信息,请参阅 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南中的 端口要求
  • 您必须在 IdM 服务器上获取 root 用户访问权限。
  • 您必须确认 Satellite 服务器或 Capsule 服务器是否被配置为为您的部署提供 DNS 服务。
  • 您必须在管理部署的 DNS 服务的 Satellite 或 Capsule 操作系统上配置 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 & gt; 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 用户分配给 named 组。通常,satellite-installer 确保 foreman-proxy 用户属于 named UNIX 组,但是在这种情况下,Satellite 不管理用户和组,因此您需要手动将 foreman-proxy 用户分配给 named 组。

    # usermod -a -G named foreman-proxy
    Copy to Clipboard Toggle word wrap
  7. 在 Satellite 服务器上,输入以下 satellite-installer 命令将 Satellite 配置为使用外部 DNS 服务器:

    # satellite-installer \
    --foreman-proxy-dns-managed=false \
    --foreman-proxy-dns-provider=nsupdate \
    --foreman-proxy-dns-server="IdM_Server_IP_Address" \
    --foreman-proxy-dns-ttl=86400 \
    --foreman-proxy-dns=true \
    --foreman-proxy-keyfile=/etc/rndc.key
    Copy to Clipboard Toggle word wrap

在 IdM 服务器中测试 DNS 区域的外部更新

  1. 确保 Satellite 服务器上的 /etc/rndc.key 文件中的密钥与 IdM 服务器中使用的密钥文件相同:

    key "rndc-key" {
            algorithm hmac-md5;
            secret "secret-key==";
    };
    Copy to Clipboard Toggle word wrap
  2. 在服务器上,为主机创建测试 DNS 条目。例如,在 192.168.25.1 的 IdM 服务器上带有 A 记录 192.168.25.20 的主机 test.example.com

    # echo -e "server 192.168.25.1\n \
    update add test.example.com 3600 IN A 192.168.25.20\n \
    send\n" | nsupdate -k /etc/rndc.key
    Copy to Clipboard Toggle word wrap
  3. 在 Satellite 服务器上测试 DNS 条目:

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

    输出示例:

    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
  4. 要在 IdM web UI 中查看条目,请进入 Network Services > DNS > DNS Zones。单击区域的名称,再按名称搜索主机。
  5. 如果成功解析,请删除测试 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
  6. 确认 DNS 条目已被删除:

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

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

4.4.3. 恢复到内部 DNS 服务

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

流程

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

将 Satellite 或 Capsule 配置为 DNS 服务器

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

    # satellite-installer
    Copy to Clipboard Toggle word wrap
  • 如果您没有合适的应答文件备份,请立即创建应答文件的备份。要在不使用应答文件的情况下将 Satellite 或 Capsule 配置为 DNS 服务器,在 Satellite 或 Capsule 上输入以下 satellite-installer 命令:

    # satellite-installer \
    --foreman-proxy-dns-managed=true \
    --foreman-proxy-dns-provider=nsupdate \
    --foreman-proxy-dns-server="127.0.0.1" \
    --foreman-proxy-dns=true
    Copy to Clipboard Toggle word wrap

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

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

在 Satellite Web UI 中更新配置

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

    1. 在 Satellite Web UI 中,进入到 Infrastructure > Domains,然后点击您要配置的域名。
    2. Domain 选项卡中,将 DNS Capsule 设置为子网连接的 Capsule。
  4. 配置子网:

    1. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets 并选择子网名称。
    2. Subnet 选项卡中,将 IPAM 设置为 DHCPInternal DB
    3. Domains 选项卡中,选择您要使用 Satellite 或 Capsule 管理的域。
    4. Capsules 选项卡中,将 Reverse DNS Capsule 设置为子网连接的 Capsule。
    5. Submit 以保存更改。

除了提供对 Satellite 服务器的访问外,通过 Satellite 置备的主机也可以与身份管理域集成。Red Hat Satellite 有一个域功能,可自动管理注册到域或域提供程序的任何系统的生命周期。

使用本节为身份管理域支持配置 Satellite 服务器或 Capsule 服务器,然后将主机添加到 Identity Management realm 组中。

先决条件

  • 注册到 Content Delivery Network 或您注册到 Satellite 服务器的 Satellite 服务器。
  • 部署的域或域提供程序,如身份管理。

在 Satellite 服务器或 Capsule 服务器上安装和配置身份管理软件包:

要将身份管理用于置备的主机,请完成以下步骤,在 Satellite 服务器或 Capsule 服务器上安装和配置身份管理软件包:

  1. 在 Satellite 服务器或 Capsule 服务器中安装 ipa-client 软件包:

    # satellite-maintain packages install ipa-client
    Copy to Clipboard Toggle word wrap
  2. 将服务器配置为身份管理客户端:

    # ipa-client-install
    Copy to Clipboard Toggle word wrap
  3. 在身份管理中创建 realm 代理用户 realm-capsule 以及相关角色:

    # foreman-prepare-realm admin realm-capsule
    Copy to Clipboard Toggle word wrap

    请注意,返回主体名称和身份管理服务器配置详情,因为您需要它们用于以下流程。

要为身份管理域支持配置 Satellite 服务器或 Capsule 服务器:

在 Satellite 和您要使用的每个 Capsule 上完成以下步骤:

  1. /root/freeipa.keytab 文件复制到您要在同一主体和域中包含的任何 Capsule 服务器:

    # scp /root/freeipa.keytab root@capsule.example.com:/etc/foreman-proxy/freeipa.keytab
    Copy to Clipboard Toggle word wrap
  2. 在 Satellite 服务器上,将 /root/freeipa.keytab 文件移到 /etc/foreman-proxy 目录中:

    # mv /root/freeipa.keytab /etc/foreman-proxy
    Copy to Clipboard Toggle word wrap
  3. 在 Satellite 服务器和 Capsule 服务器上,将所有权设置为 foreman-proxy 用户和组:

    # chown foreman-proxy:foreman-proxy /etc/foreman-proxy/freeipa.keytab
    Copy to Clipboard Toggle word wrap
  4. 在您要包含在域中的所有 Capsule 上输入以下命令。如果您在 Satellite 上使用集成胶囊,请在 Satellite 服务器上输入以下命令:

    # satellite-installer --foreman-proxy-realm true \
    --foreman-proxy-realm-keytab /etc/foreman-proxy/freeipa.keytab \
    --foreman-proxy-realm-principal realm-capsule@EXAMPLE.COM \
    --foreman-proxy-realm-provider freeipa
    Copy to Clipboard Toggle word wrap

    您也可以在首次配置 Satellite 服务器时使用这些选项。

  5. 确保安装了 ca-certificates 软件包的最更新版本,并信任身份管理证书颁发机构:

    # cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
    # update-ca-trust enable
    # update-ca-trust
    Copy to Clipboard Toggle word wrap
  6. 可选:如果您在现有 Satellite 服务器或 Capsule 服务器上配置身份管理,请完成以下步骤以确保配置更改生效:

    1. 重启 foreman-proxy 服务:

      # systemctl restart foreman-proxy
      Copy to Clipboard Toggle word wrap
    2. 在 Satellite Web UI 中,进入到 Infrastructure > Capsules
    3. 找到您为身份管理配置的胶囊,并从 Actions 列中的列表中,选择 Refresh

为启用了 Identity Management 的 Capsule 创建域

使用身份管理配置 Capsule 后,您必须创建一个域,并将 Identity Management-configured Capsule 添加到域中。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Realms,再点 Create Realm
  2. Name 字段中输入域的名称。
  3. Realm Type 列表中,选择 realm 的类型。
  4. Realm Capsule 列表中,选择您配置的身份管理的 Capsule 服务器。
  5. 单击 Locations 选项卡,然后从 Locations 列表中选择您要添加新域的位置。
  6. 单击 Organizations 选项卡,再从 Organizations 列表中选择您要添加新域的组织。
  7. Submit

使用域信息更新主机组

您必须更新您要与新域信息搭配使用的任何主机组。

  1. 在 Satellite Web UI 中,进入 Configure > Host Groups,选择您要更新的主机组,然后点击 Network 选项卡。
  2. Realm 列表中,选择您创建的域作为此流程的一部分,然后单击 Submit

将主机添加到身份管理主机组

身份管理支持根据系统的属性设置自动成员资格规则。Red Hat Satellite 的域功能可帮助管理员将 Red Hat Satellite 主机组映射到身份管理参数 用户类,供管理员配置自动成员。

使用嵌套式主机组时,它们将发送到身份管理服务器,因为它们显示在 Red Hat Satellite 用户界面中。例如:"Parent/Child/Child"。

Satellite 服务器或胶囊服务器将更新发送到身份管理服务器,但自动成员规则仅在初始注册时应用。

将主机添加到身份管理主机组中:

  1. 在身份管理服务器上,创建一个主机组:

    # ipa hostgroup-add hostgroup_name --desc=hostgroup_description
    Copy to Clipboard Toggle word wrap
  2. 创建自动成员规则

    # ipa automember-add --type=hostgroup hostgroup_name automember_rule
    Copy to Clipboard Toggle word wrap

    其中您可以使用以下选项:

    • automember-add 将组标记为自动成员组。
    • --type=hostgroup 标识目标组是主机组,而不是用户组。
    • automember_rule 添加您要用来识别自动成员规则的名称。
  3. 根据 userclass 属性定义自动成员条件:

    # ipa automember-add-condition --key=userclass --type=hostgroup --inclusive-regex=^webserver hostgroup_name
    ----------------------------------
    Added condition(s) to "hostgroup_name"
    ----------------------------------
    Automember Rule: automember_rule
    Inclusive Regex: userclass=^webserver
    ----------------------------
    Number of conditions added 1
    ----------------------------
    Copy to Clipboard Toggle word wrap

    其中您可以使用以下选项:

    • automember-add-condition 添加正则表达式条件来识别组成员。
    • --key=userclass 指定 key 属性作为 userclass
    • --type=hostgroup 标识目标组是主机组,而不是用户组。
    • --inclusive-regex= ^webserver 使用正则表达式模式标识匹配值。
    • hostgroup_name - 标识目标主机组的名称。

当系统添加到 Satellite 服务器的 hostgroup_name 主机组时,它会自动添加到身份管理服务器的"hostgroup_name"主机组中。身份管理主机组允许基于主机的访问控制(HBAC)、sudo 策略和其他身份管理功能。

第 5 章 使用 Capsule 管理 DHCP

Satellite 可以使用您的胶囊与 DHCP 服务集成。胶囊具有多个 DHCP 提供程序,可用于将 Satellite 与现有 DHCP 基础架构集成或部署新的 DHCP。您可以使用 Capsule 的 DHCP 模块来查询可用的 IP 地址、添加新和删除现有保留。请注意,您的 Capsule 无法管理 subnet 声明。

可用的 DHCP 提供商

5.1. 保护 dhcpd API

Capsule 使用 dhcpd API 与 DHCP 守护进程交互,以管理 DHCP。默认情况下,dhcpd API 在没有访问控制的情况下侦听任何主机。您可以添加 omapi_key 来提供基本安全性。

流程

  1. 在 Capsule 上安装所需软件包:

    # satellite-maintain packages install bind-utils
    Copy to Clipboard Toggle word wrap
  2. 生成密钥:

    # dnssec-keygen -r /dev/urandom -a HMAC-MD5 -b 512 -n HOST omapi_key
    # cat Komapi_key.+*.private | grep ^Key|cut -d ' ' -f2-
    Copy to Clipboard Toggle word wrap
  3. 使用 satellite-installer 保护 dhcpd API:

    # satellite-installer \
    --foreman-proxy-dhcp-key-name "My_Name" \
    --foreman-proxy-dhcp-key-secret "My_Secret"
    Copy to Clipboard Toggle word wrap

第 6 章 使用 Capsule 管理 DNS

Satellite 可以使用您的 Capsule 管理 DNS 记录。DNS 管理包含从现有 DNS 区域更新和删除 DNS 记录。胶囊具有多个 DNS 提供程序,可用于将 Satellite 与现有 DNS 基础架构集成或部署新的 DNS 基础架构。

启用 DNS 后,您的胶囊可以使用 dns_nsupdate 供应商处理任何符合 RFC 2136 的 DNS 服务器。其他提供商提供更多直接集成,如 Infobloxdns_infoblox

可用的 DNS 供应商

6.1. 配置 dns_nsupdate

dns_nsupdate DNS 供应商使用 nsupdate 工具管理 DNS 记录。您可以将 dns_nsupdateRFC2136 兼容的任何 DNS 服务器一起使用。默认情况下,dns_nsupdate 安装 ISC BIND 服务器。有关没有 ISC BIND 的安装,请参考 第 4.1 节 “使用外部 DNS 配置 Capsule 服务器”

流程

  • 配置 dns_nsupdate

    # satellite-installer \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider nsupdate \
    --foreman-proxy-dns-managed true \
    --foreman-proxy-dns-zone example.com \
    --foreman-proxy-dns-reverse 2.0.192.in-addr.arpa
    Copy to Clipboard Toggle word wrap

第 7 章 使用 Infoblox 作为 DHCP 和 DNS 供应商

您可以使用 Capsule 服务器连接到 Infoblox 应用程序来创建和管理 DHCP 和 DNS 记录,以及保留 IP 地址。

支持的 Infoblox 版本为 NIOS 8.0 或更高版本。

7.1. Infoblox 限制

所有 DHCP 和 DNS 记录只能在单个网络或 DNS 视图中管理。在 Capsule 服务器上安装 Infoblox 模块并使用 satellite-installer 命令设置视图后,您无法编辑视图。

Capsule 服务器使用标准 HTTPS Web API 与单个 Infoblox 节点通信。如果要配置集群和高可用性,请在 Infoblox 中进行配置。

不支持使用 Infoblox 的 TFTP 功能托管与 PXE 相关的文件。您必须使用 Capsule 服务器作为 TFTP 服务器进行 PXE 置备。如需更多信息,请参阅 置备主机 中的 配置网络

Satellite IPAM 功能无法与 Infoblox 集成。

7.2. Infoblox 先决条件

  • 您必须具有 Infoblox 帐户凭证来管理 Satellite 中的 DHCP 和 DNS 条目。
  • 确保您有 Infoblox 管理角色,其名称为: DHCP AdminDNS Admin
  • 管理角色必须具有权限或属于 admin 组,以允许帐户通过 Infoblox API 执行任务。

7.3. 安装 Infoblox CA 证书

您必须在 Capsule 服务器的基本系统上安装 Infoblox HTTPS CA 证书。

流程

  • 从 Infoblox Web UI 下载证书,或者您使用以下 OpenSSL 命令下载证书:

    # update-ca-trust enable
    # openssl s_client -showcerts -connect infoblox.example.com:443 </dev/null | \
    openssl x509 -text >/etc/pki/ca-trust/source/anchors/infoblox.crt
    # update-ca-trust extract
    Copy to Clipboard Toggle word wrap

    infoblox.example.com 条目必须与 X509 证书中的 Infoblox 应用程序的主机名匹配。

验证

  • 使用 curl 查询测试 CA 证书:

    $ curl \
    --user My_User_Name:My_Password \
    https://infoblox.example.com/wapi/v2.0/network
    Copy to Clipboard Toggle word wrap

    正响应示例:

    [
        {
            "_ref": "network/ZG5zLm5ldHdvcmskMTkyLjE2OC4yMDIuMC8yNC8w:infoblox.example.com/24/default",
            "network": "192.168.202.0/24",
            "network_view": "default"
        }
    ]
    Copy to Clipboard Toggle word wrap

7.4. 安装 DHCP Infoblox 模块

在 Capsule 服务器上安装 DHCP Infoblox 模块。请注意,您无法在单独的视图中管理记录。

您还可以通过组合这个过程和 第 7.5 节 “安装 DNS Infoblox 模块” 来同时安装 DHCP 和 DNS Infoblox 模块。

DHCP Infoblox 记录类型注意事项

如果要将 DHCP 和 DNS Infoblox 模块一起使用,请只使用 fixedaddress 记录类型配置 DHCP Infoblox 模块。主机 记录类型会导致 DNS 冲突,且不被支持。

如果您使用 主机 记录类型配置 DHCP Infoblox 模块,您必须取消设置 Infoblox-managed 子网上的 DNS Capsule 和 Reverse DNS Capsule 选项,因为 Infoblox 本身执行 DNS 管理。使用主机 记录类型会导致冲突,且无法在 Satellite 中重命名主机。

流程

  1. 在 Capsule 服务器上输入以下命令:

    # satellite-installer --enable-foreman-proxy-plugin-dhcp-infoblox \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-provider infoblox \
    --foreman-proxy-dhcp-server infoblox.example.com \
    --foreman-proxy-plugin-dhcp-infoblox-username admin \
    --foreman-proxy-plugin-dhcp-infoblox-password infoblox \
    --foreman-proxy-plugin-dhcp-infoblox-record-type fixedaddress \
    --foreman-proxy-plugin-dhcp-infoblox-dns-view default \
    --foreman-proxy-plugin-dhcp-infoblox-network-view default
    Copy to Clipboard Toggle word wrap
  2. 可选: 在 Satellite Web UI 中,进入到 Infrastructure > Capsules,选择带有 DHCP Infoblox 模块的 Capsule,并确保列出了 dhcp 功能。
  3. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  4. 对于通过 Infoblox 管理的所有子网,请确保将子网的 IP 地址管理(IPAM)方法设置为 DHCP

7.5. 安装 DNS Infoblox 模块

在 Capsule 服务器上安装 DNS Infoblox 模块。您还可以通过组合这个过程和 第 7.4 节 “安装 DHCP Infoblox 模块” 来同时安装 DHCP 和 DNS Infoblox 模块。

流程

  1. 在 Capsule 服务器上,输入以下命令来配置 Infoblox 模块:

    # satellite-installer --enable-foreman-proxy-plugin-dns-infoblox \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-provider infoblox \
    --foreman-proxy-plugin-dns-infoblox-dns-server infoblox.example.com \
    --foreman-proxy-plugin-dns-infoblox-username admin \
    --foreman-proxy-plugin-dns-infoblox-password infoblox \
    --foreman-proxy-plugin-dns-infoblox-dns-view default
    Copy to Clipboard Toggle word wrap

    另外,您还可以更改 --foreman-proxy-plugin-dns-infoblox-dns-view 选项的值,以指定默认视图以外的 Infoblox DNS 视图。

  2. 可选: 在 Satellite Web UI 中,进入到 Infrastructure > Capsules,选择带有 Infoblox DNS 模块的 Capsule,并确保列出了 dns 功能。
  3. 在 Satellite Web UI 中,进入到 Infrastructure > Domains
  4. 对于通过 Infoblox 管理的所有域,请确保为这些域设置了 DNS 代理
  5. 在 Satellite Web UI 中,进入到 Infrastructure > Subnets
  6. 对于通过 Infoblox 管理的所有子网,请确保为这些子网设置了 DNS CapsuleReverse DNS Capsule

附录 A. Capsule 服务器可扩展性注意事项

Satellite 服务器可以支持的最大胶囊服务器数量没有固定限制。它测试了 Satellite 服务器可以支持带有 2 个 vCPU 的 17 个 Capsule 服务器。但是,可扩展性是高度的变量,特别是在管理 Puppet 客户端时。

在管理 Puppet 客户端时,胶囊式服务器可扩展性取决于 CPU 数量、运行时分发和 Puppet 受管资源的数量。胶囊服务器限制在任何单一时间点运行 100 个并发 Puppet 代理。运行超过 100 个并发 Puppet 代理会导致 503 HTTP 错误。

例如,假设 Puppet 代理在运行一次期间在任意单一点上平均分配有 100 个并发 Puppet 代理,具有 4 个 CPU 的胶囊服务器最多具有 12505-6-kcs1600 Puppet 客户端,并且每个 Puppet 客户端分配有 10 个 Puppet 类的工作负载。根据所需的 Puppet 客户端数量,卫星安装可以扩展胶囊服务器数量来支持它们。

如果要在管理 Puppet 客户端时扩展胶囊服务器,则进行以下假设:

  • 没有外部 Puppet 客户端直接报告到您的 Satellite 服务器。
  • 所有其他 Puppet 客户端直接报告到胶囊服务器。
  • 所有 Puppet 代理都有平均分布式的 run-interval。
注意

从甚至分发中开发会增加过载 Satellite 服务器的风险。应用 100 个并发请求的限值。

下表描述了使用推荐的 4 个 CPU 的可扩展性限制。

Expand
表 A.1. 使用 4 个 CPU 的 Puppet 可扩展性
每个主机的 Puppet 管理资源run-Interval Distribution

1

3000 – 2500

10

2400 – 2000

20

1700 – 1400

下表描述了使用最少 2 个 CPU 的扩展性限制。

Expand
表 A.2. 使用 2 个 CPU 的 Puppet 可扩展性
每个主机的 Puppet 管理资源run-Interval Distribution

1

1700 – 1450

10

1500 – 1250

20

850 – 700

附录 B. DNF 模块故障排除

如果 DNF 模块无法启用,这可能意味着启用不正确的模块。在这种情况下,您必须手动解析依赖项,如下所示。列出启用的模块:

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

B.1. Ruby

如果 Ruby 模块无法启用,这可能意味着启用不正确的模块。在这种情况下,您必须手动解析依赖项,如下所示:

列出启用的模块:

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

如果已经启用了 Ruby 2.5 模块,请执行模块重置:

# dnf module reset ruby
Copy to Clipboard Toggle word wrap

B.2. PostgreSQL

如果 PostgreSQL 模块无法启用,这可能意味着启用不正确的模块。在这种情况下,您必须手动解析依赖项,如下所示:

列出启用的模块:

# dnf module list --enabled
Copy to Clipboard Toggle word wrap

如果已经启用了 PostgreSQL 10 模块,请执行模块重置:

# dnf module reset postgresql
Copy to Clipboard Toggle word wrap

如果您创建了 PostgreSQL 10 数据库,请执行升级:

  1. 启用 DNF 模块:

    # dnf module enable satellite-capsule:el8
    Copy to Clipboard Toggle word wrap
  2. 安装 PostgreSQL 升级软件包:

    # dnf install postgresql-upgrade
    Copy to Clipboard Toggle word wrap
  3. 执行升级:

    # postgresql-setup --upgrade
    Copy to Clipboard Toggle word wrap

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat