在断开连接的网络环境中安装 Satellite 服务器

Red Hat Satellite 6.12

安装在没有互联网连接的网络中部署的 Red Hat Satellite Server

Red Hat Satellite Documentation Team

摘要

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

向红帽文档提供反馈

我们感谢您对文档提供反馈信息。请让我们了解如何改进文档。

您可以通过在 Bugzilla 中记录一个 ticket 来提交反馈:

  1. 导航到 Bugzilla 网站。
  2. Component 字段中,使用 Documentation
  3. Description 字段中,输入您要改进的建议。包括文档相关部分的链接。
  4. Submit Bug

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

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

1.1. 系统要求

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

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

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

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

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

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

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

  • Apache
  • foreman
  • foreman-proxy
  • postgres
  • Pulp
  • puppet
  • qdrouterd
  • qpidd
  • redis
  • tomcat

认证的虚拟机监控程序

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

SELinux Mode

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

FIPS 模式

您可以在以 FIPS 模式运行的 Red Hat Enterprise Linux 系统上安装 Satellite。安装 Satellite 后您无法启用 FIPS 模式。如需更多信息,请参阅 Red Hat Enterprise Linux 安全强化 中安装启用了 FIPS 模式的 RHEL 8 系统

注意

Satellite 支持 DEFAULT 和 FIPS 加密操作。Satellite 和 Capsule 安装不支持 FUTURE crypto-policy。

卫星间同步(ISS)

在带有ir-gapped Satellite 服务器的场景中,您的所有卫星服务器必须位于同一 Satellite 版本,以便 ISS Export Sync 才能运行。ISS Network Sync 可在支持它的所有 Satellite 版本间正常工作。有关更多信息,请参阅管理 内容,在卫星服务器之间同步 内容

1.2. 存储要求

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

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

表 1.1. Satellite 服务器安装的存储要求

目录安装大小运行时大小

/var/log

10 MB

10 GB

/var/lib/pgsql

100 MB

20 GB

/usr

5 GB

不适用

/opt/puppetlabs

500 MB

不适用

/var/lib/pulp

1 MB

300 GB

/var/lib/qpidd

25 MB

请参阅存储指南

对于外部数据库服务器:安装大小为 100 MB 的 /var/lib/pgsql,运行时大小为 20 GB。

有关分区和大小的详细信息,请参阅 Red Hat Enterprise Linux 8 系统设计指南中的 分区 参考

1.3. 存储指南

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

  • 如果将 /tmp 目录挂载为单独的文件系统,则必须使用 /etc/fstab 文件中的 exec 挂载选项。如果 /tmp 已通过 noexec 选项挂载,您必须将选项更改为 exec 并重新挂载文件系统。这是 puppetserver 服务正常工作的要求。
  • 因为大多数 Satellite 服务器数据都存储在 /var 目录中,所以在 LVM 存储中挂载 /var 可以帮助系统扩展。
  • /var/lib/qpidd/ 目录为每个由 goferd 服务管理的内容主机使用的时间稍超过 2 MB。例如: 10 000 内容主机需要在 /var/lib/qpidd/ 中有 20 GB 磁盘空间。
  • /var/lib/pulp/ 目录使用高带宽、低延迟存储。因为红帽卫星具有许多 I/O 密集型操作,使用高延迟和低带宽存储会导致性能下降。确定您的安装在每秒范围内有 60pm-IMG80 兆字节的速度。

您可以使用 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 会阻断同步过程。要避免这种情况,请在文件系统表中添加以下行到 /etc/fstab 来指定 /var/lib/pulp 目录的 SELinux 上下文:

nfs.example.com:/nfsshare  /var/lib/pulp  nfs  context="system_u:object_r:var_lib_t:s0"  1 2

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

# restorecon -R /var/lib/pulp

重复的软件包

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

符号链接

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

1.4. 支持的操作系统

安装卫星服务器时,支持最新版本的 Red Hat Enterprise Linux 8。不支持以前版本的 Red Hat Enterprise Linux,包括 EUS 或 z-stream。

您可以从磁盘、本地 ISO 镜像、kickstart 或者红帽支持的任何其他方法安装操作系统。

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

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

操作系统

架构

备注

Red Hat Enterprise Linux 8

仅限 x86_64

 

在安装 Satellite 前,请应用所有操作系统更新(如果可能)。

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

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

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

1.5. 支持的浏览器

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

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

1.6. 端口和防火墙要求

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

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

集成胶囊

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

胶囊的客户端

主机(即卫星的集成胶囊以外的客户端)不需要访问卫星服务器。有关卫星拓扑和移植端口连接的的更多信息,请参阅 卫星概述、概念和部署注意事项 中的 胶囊网络

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

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

表 1.3. Satellite 服务器传入流量

目的地端口

协议

服务

必需

描述

53

TCP 和 UDP

DNS

DNS 服务器和客户端

名称解析

DNS(可选)

67

UDP

DHCP

客户端

动态 IP

DHCP(可选)

69

UDP

TFTP

客户端

TFTP 服务器(可选)

 

443

TCP

HTTPS

Capsule

Red Hat Satellite API

来自 Capsule 的通信

443, 80

TCP

HTTPS、HTTP

客户端

全局注册

将主机注册到 Satellite

注册启动、上传事实和发送已安装的软件包和追踪需要端口 443

端口 80 在注册完成的 /unattended/built 端点上通知 Satellite

443

TCP

HTTPS

Red Hat Satellite

内容镜像

管理

443

TCP

HTTPS

Red Hat Satellite

Capsule API

智能代理功能

443, 80

TCP

HTTPS、HTTP

Capsule

内容检索

内容

443, 80

TCP

HTTPS、HTTP

客户端

内容检索

内容

1883

TCP

MQTT

客户端

拉取基于 REX (可选)

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

5646, 5647

TCP

AMQP

Capsule

Katello 代理

将消息转发到卫星上的 Qpid 分配路由器(可选)

5910 – 5930

TCP

HTTPS

浏览器

计算资源的虚拟控制台

 

8000

TCP

HTTP

客户端

虚拟机模板

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

8000

TCP

HTTPS

客户端

PXE 引导

安装

8140

TCP

HTTPS

客户端

Puppet 代理

客户端更新(可选)

9090

TCP

HTTPS

客户端

OpenSCAP

配置客户端

9090

TCP

HTTPS

发现的节点

Discovery(发现)

主机发现和置备

9090

TCP

HTTPS

Red Hat Satellite

Capsule API

胶囊功能

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

DHCP 胶囊将执行 ICMP ping 或 TCP echo 连接,从而尝试设置 DHCP IPAM 的子网,以查找是否考虑使用的 IP 地址是否可用。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false 来关闭此行为。

注意

有些传出流量返回到 Satellite,以启用内部通信和安全操作。

表 1.4. Satellite 服务器传出流量

目的地端口协议服务目的地必需描述
 

ICMP

ping

客户端

DHCP

免费 IP 检查(可选)

7

TCP

echo

客户端

DHCP

免费 IP 检查(可选)

22

TCP

SSH

目标主机

远程执行

运行作业

22, 16514

TCP

SSH SSH/TLS

计算资源

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

 

53

TCP 和 UDP

DNS

互联网上的 DNS 服务器

DNS 服务器

解决 DNS 记录(可选)

53

TCP 和 UDP

DNS

DNS 服务器

胶囊 DNS

验证 DNS 冲突(可选)

53

TCP 和 UDP

DNS

DNS 服务器

编配

验证 DNS 冲突

68

UDP

DHCP

客户端

动态 IP

DHCP(可选)

80

TCP

HTTP

远程仓库

内容同步

远程 yum 软件仓库

389, 636

TCP

LDAP, LDAPS

外部 LDAP 服务器

LDAP

LDAP 身份验证,只有在启用了外部身份验证时才需要。当定义 LDAPAuthSource 时,可以自定义端口

443

TCP

HTTPS

Satellite

Capsule

Capsule

配置管理

模板检索

OpenSCAP

远程执行结果上传

443

TCP

HTTPS

Amazon EC2, Azure, Google GCE

计算资源

虚拟机交互(query/create/destroy)(可选)

443

TCP

HTTPS

Capsule

内容镜像

启动

443

TCP

HTTPS

Infoblox DHCP Server

DHCP 管理

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

623

  

客户端

电源管理

BMC On/Off/Cycle/Status

5000

TCP

HTTPS

OpenStack 计算资源

计算资源

虚拟机交互(query/create/destroy)(可选)

5646

TCP

AMQP

Satellite Server

Katello 代理

将消息转发到 Capsule 上的 Qpid 分配路由器(可选)

5671

  

Qpid

远程安装

将 install 命令发送到客户端

5671

  

分配路由器(hub)

远程安装

转发在 Satellite 上分配路由器的信息

5671

  

Satellite Server

Katello 代理的远程安装

将 install 命令发送到客户端

5671

  

Satellite Server

Katello 代理的远程安装

转发在 Satellite 上分配路由器的信息

5900 – 5930

TCP

SSL/TLS

虚拟机监控程序

noVNC 控制台

启动 noVNC 控制台

7911

TCP

DHCP、OMAPI

DHCP Server

DHCP

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

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

8443

TCP

HTTPS

客户端

Discovery(发现)

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

9090

TCP

HTTPS

Capsule

Capsule API

Capsules 管理

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

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

使用这个流程在 Satellite 安装的系统中配置基于主机的防火墙,以启用来自客户端的传入连接,并使配置在系统重启后持久保留。有关使用的端口的更多信息,请参阅 端口和防火墙要求

流程

  1. 要为客户端打开 Satellite 通信的端口,请在您要在其中安装 Satellite 的基础操作系统上输入以下命令:

    # firewall-cmd \
    --add-port="53/udp" --add-port="53/tcp" \
    --add-port="67/udp" \
    --add-port="69/udp" \
    --add-port="80/tcp" --add-port="443/tcp" \
    --add-port="5647/tcp" \
    --add-port="8000/tcp" --add-port="9090/tcp" \
    --add-port="8140/tcp"
  2. 使更改持久:

    # firewall-cmd --runtime-to-permanent

验证

  • 使用以下命令:

    # firewall-cmd --list-all

如需更多信息,请参阅在 Red Hat Enterprise Linux 8 安全网络中使用和配置 firewalld

1.8. 验证 DNS 解析

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

流程

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

    # ping -c1 localhost
    # ping -c1 `hostname -f` # my_system.domain.com

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

    # ping -c1 localhost
    PING localhost (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.043 ms
    
    --- localhost ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.043/0.043/0.043/0.000 ms
    
    # ping -c1 `hostname -f`
    PING hostname.gateway (XX.XX.XX.XX) 56(84) bytes of data.
    64 bytes from hostname.gateway (XX.XX.XX.XX): icmp_seq=1 ttl=64 time=0.019 ms
    
    --- localhost.gateway ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 0.019/0.019/0.019/0.000 ms
  2. 为了避免与静态和临时主机名冲突,请输入以下命令设置系统中的所有主机名:

    # hostnamectl set-hostname name

如需更多信息,请参阅 Red Hat Enterprise Linux 8 配置和管理网络 中的 hostnamectl 更改主机名。

警告

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

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

如果您的 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将-50005000

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+

流程

  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
  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

第 2 章 安装 Satellite 服务器

当所需的卫星服务器主机在断开连接的环境中时,您可以使用外部计算机安装卫星服务器,下载软件包的 ISO 镜像,并将软件包复制到您要在其中安装卫星服务器的系统。对于任何其他情况,我们不推荐使用这个方法,因为 ISO 镜像可能不包含最新的更新、错误修复和功能。

使用以下步骤安装 Satellite 服务器,执行初始配置和导入订阅清单。

在继续之前,请考虑与您的环境相关的清单。如需有关清单的更多信息,请参阅管理内容 中的 红帽订阅

注意

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

2.1. 下载二进制 DVD 镜像

使用这个流程为 Red Hat Enterprise Linux 和 Red Hat Satellite 下载 ISO 镜像。

流程

  1. 访问红帽客户门户网站 并登录。
  2. 点下载
  3. 选择 Red Hat Enterprise Linux
  4. 确保您的环境具有正确的产品和版本。

    • 产品变体 被设置为 Red Hat Enterprise Linux for x86_64
    • 版本 被设置为您计划用作基础操作系统的产品的最新次要版本。
    • 架构 设置为 64 位版本。
  5. Product Software 选项卡中,下载最新 Red Hat Enterprise Linux for x86_64 版本的 Binary DVD 镜像。
  6. 单击下载 并选择 红帽卫星
  7. 确保您的环境具有正确的产品和版本。

    • 产品变体 设置为 Red Hat Satellite
    • 版本 设置为您要使用的产品的最新次要版本。
  8. Product Software 选项卡中,为最新的 Red Hat Satellite 版本下载 Binary DVD 镜像。
  9. 将 ISO 文件复制到 Satellite 基础操作系统或其他可访问的存储设备中的 /var/tmp 中。

    # scp localfile username@hostname:remotefile

2.2. 在 RHEL 8 中使用离线软件仓库配置基本操作系统

使用这个流程为 Red Hat Enterprise Linux 8 和 Red Hat Satellite ISO 镜像配置离线软件仓库。

流程

  1. 创建一个目录,以用作与基础操作系统版本对应的 ISO 文件的挂载点。

    # mkdir /media/rhel8
  2. 将 Red Hat Enterprise Linux 的 ISO 镜像挂载到挂载点。

    # mount -o loop rhel8-DVD.iso /media/rhel8
  3. 要复制 ISO 文件的存储库数据文件并更改权限,请输入:

    # cp /media/rhel8/media.repo /etc/yum.repos.d/rhel8.repo
    # chmod u+w /etc/yum.repos.d/rhel8.repo
  4. 编辑存储库数据文件并添加 baseurl 指令。

    [RHEL8-BaseOS]
    name=Red Hat Enterprise Linux BaseOS
    mediaid=None
    metadata_expire=-1
    gpgcheck=0
    cost=500
    baseurl=file:///media/rhel8/BaseOS/
    
    [RHEL8-AppStream]
    name=Red Hat Enterprise Linux Appstream
    mediaid=None
    metadata_expire=-1
    gpgcheck=0
    cost=500
    baseurl=file:///media/rhel8/AppStream/
  5. 验证存储库是否已配置。

    # yum repolist
  6. 创建一个目录,以用作卫星服务器的 ISO 文件的挂载点。

    # mkdir /media/sat6
  7. 将卫星服务器的 ISO 镜像挂载到挂载点。

    # mount -o loop sat6-DVD.iso /media/sat6

2.3. 从离线软件仓库安装 Satellite 软件包

使用这个流程从离线仓库安装 Satellite 软件包。

流程

  1. 确定挂载 Red Hat Enterprise Linux 服务器和 Red Hat Satellite 的 ISO 镜像:

    # findmnt -t iso9660
  2. 导入 Red Hat GPG 密钥:

    # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  3. 确定基本操作系统与 Binary DVD 镜像最新:

    # dnf update
  4. 进入挂载 Satellite ISO 的目录:

    # cd /media/sat6/
  5. 在挂载的目录中运行安装脚本:

    # ./install_packages
    注意

    脚本包含一个启用 satellite:el8 模块的命令。启用模块 satellite:el8 会警告与 postgresql:10ruby:2.5 冲突,因为这些模块在 Red Hat Enterprise Linux 8 中被设置为默认模块版本。模块 satellite:el8 依赖于模块 postgresql:12ruby:2.7,它将通过 satellite:el8 模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中的模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期

    如果您已成功安装 Satellite 软件包,会显示以下信息: Install is complete。请运行 satellite-installer --scenario satellite

2.4. 解决软件包依赖错误

如果在安装卫星服务器软件包的过程中出现软件包依赖关系错误,您可以通过从红帽客户门户网站下载并安装软件包来解决错误。有关解析依赖关系错误的更多信息,请参阅 KCS 解决方案 如何使用 yum 输出来解决 yum 依赖项错误?

如果您已成功安装 Satellite 软件包,请跳过此步骤。

流程

  1. 访问红帽客户门户网站 并登录。
  2. 点下载
  3. 点击包含要下载的软件包的产品。
  4. 确保您的环境具有正确的 产品变体 、版本和架构。
  5. Packages 选项卡。
  6. 在搜索字段中输入 软件包的名称。
  7. 点软件包。
  8. Version 列表中,选择软件包的版本。
  9. 在页面底部点击 Download Now
  10. 将软件包复制到 Satellite 基础操作系统。
  11. 在 Satellite 服务器中,切换到软件包所在的目录:

    # cd /path-to-package/
  12. 本地安装软件包:

    # dnf install package_name
  13. 进入挂载 Satellite ISO 的目录:

    # cd /media/sat6/
  14. 通过安装 Satellite Server 软件包,验证您是否解决了软件包依赖项错误。如果有其他软件包依赖关系错误,请重复此过程。

    # ./install_packages
    注意

    脚本包含一个启用 satellite:el8 模块的命令。启用模块 satellite:el8 会警告与 postgresql:10ruby:2.5 冲突,因为这些模块在 Red Hat Enterprise Linux 8 中被设置为默认模块版本。模块 satellite:el8 依赖于模块 postgresql:12ruby:2.7,它将通过 satellite:el8 模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中的模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期

    如果您已成功安装 Satellite 软件包,会显示以下信息: Install is complete。请运行 satellite-installer --scenario satellite

2.5. 使用 chronyd 同步系统时钟

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

有关 chrony 套件的更多信息,请参阅 Red Hat Enterprise Linux 8 配置基本系统设置 中的 使用 Chrony 套件配置 NTP

流程

  1. 安装 chrony 软件包:

    # dnf install chrony
  2. 启动并启用 chronyd 服务:

    # systemctl enable --now chronyd

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

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

流程

  1. 安装 sos 软件包:

    # dnf install sos

2.7. 配置 Satellite 服务器

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

  • 第 2.7.1 节 “配置 Satellite 安装”.此方法通过使用一个或多个命令选项运行安装脚本来执行。命令选项覆盖对应的默认初始配置选项,并在卫星回答文件中记录。您可以根据需要运行该脚本,以配置任何必要的选项。
注意

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

2.7.1. 配置 Satellite 安装

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

完成安装过程可能需要十分钟时间。如果您要远程连接到系统,使用 tmux 等实用程序来允许挂起并重新附加通信会话,以便您可以检查安装进度,以防从远程系统断开连接。如果您丢失了运行安装命令的 shell,请参阅 /var/log/foreman-installer/satellite.log 中的日志,以确定进程是否已成功完成。

注意事项

  • 使用 satellite-installer --scenario satellite --help 命令显示可用选项和任何默认值。如果没有指定任何值,则使用默认值。
  • 为选项指定一个有意义的值 :--foreman-initial-organization。这可以是您的公司名称。也会创建与值匹配的内部标签,之后无法更改。如果没有指定值,则会创建一个名为 Default Organization 的组织,标签为 Default_Organization。您可以重命名机构名称,但不能命名标签。
  • 远程执行是在内容主机上管理软件包的主要方法。如果要使用已弃用的 Katello Agent 而不是 Remote Execution SSH,请使用 --foreman-proxy-content-enable-katello-agent=true 选项启用它。应该在任何胶囊服务器和卫星服务器上给定相同的选项。
  • 默认情况下,由安装程序配置的所有配置文件都被管理。当 satellite-installer 运行时,它会使用预期值覆盖对受管文件的任何手动更改。这意味着,在损坏的系统上运行安装程序应该将其恢复到工作顺序,无论进行了什么更改。有关如何对其他服务应用自定义配置的更多信息,请参阅将自定义 配置应用到 Satellite

流程

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

    # satellite-installer --scenario satellite \
    --foreman-initial-organization "My_Organization" \
    --foreman-initial-location "My_Location" \
    --foreman-initial-admin-username admin_user_name \
    --foreman-initial-admin-password admin_password

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

  2. 卸载 ISO 镜像:

    # umount /media/sat6
    # umount /media/rhel8

2.8. 禁用订阅连接

在非联网卫星服务器上禁用订阅连接,以避免连接到红帽门户网站。这也可防止您刷新清单,更新上游权利,以及更改简单内容访问的状态。

流程

  1. 在 Satellite Web UI 中,导航到 Administer > Settings
  2. Content 选项卡。
  3. Subscription Connection Enabled 值设为 No

CLI 过程

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

    # hammer settings set --name subscription_connection_enabled --value false

2.9. 将 Red Hat Subscription Manifest导入到 Satellite Server

使用以下步骤将红帽订阅清单导入到 Satellite 服务器中。

先决条件

流程

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

CLI 过程

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

    $ scp ~/manifest_file.zip root@satellite.example.com:~/.
  2. root 用户身份登录 Satellite 服务器,再导入 Red Hat 订阅清单文件:

    # hammer subscription upload \
    --file ~/manifest_file.zip \
    --organization "My_Organization"

现在,您可以启用软件仓库并导入红帽内容。如需更多信息,请参阅管理 内容 中的 导入内容

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

3.1. 将 Satellite 服务器配置为从自定义 CDN 使用内容

如果您的内部内容交付网络(CDN)或在可访问的 Web 服务器上提供内容,您可以将 Satellite 服务器配置为消耗此 CDN 服务器中的红帽存储库,而不是红帽 CDN。CDN 服务器可以是与 Red Hat CDN 相同的目录结构中镜像仓库的任何 web 服务器。

您可以为每个机构配置内容源。Satellite 会在您的 CDN 服务器上自动识别来自您机构中的订阅清单中的红帽存储库。

先决条件

  • 您有一个提供红帽内容的 CDN 服务器,可通过卫星服务器访问。
  • 如果您的 CDN 服务器使用 HTTPS,请确保已将 SSL 证书上传到 Satellite。如需更多信息,请参阅管理 内容 中的自定义 SSL 证书
  • 您已将清单上传到您的机构。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Subscriptions
  2. 单击 管理清单 按钮。
  3. 选择 CDN Configuration 选项卡。
  4. 选择 Custom CDN 选项卡。
  5. URL 字段中,输入您希望 Satellite 服务器消耗红帽软件仓库的 CDN 服务器的 URL。
  6. 可选: 在 SSL CA Content Credential 中,选择 CDN 服务器的 SSL 证书。
  7. Update
  8. 现在,您可以启用内部 CDN 服务器消耗的红帽仓库。

CLI 过程

  1. 使用 SSH 连接到您的卫星服务器。
  2. 将 CDN 配置设置为您的自定义 CDN 服务器:

    # hammer organization configure-cdn --name="My_Organization" \
    --type=custom_cdn \
    --url https://my-cdn.example.com \
    --ssl-ca-credential-id "My_CDN_CA_Cert_ID"

其他资源

3.2. 如何配置卫星服务器同步

红帽卫星使用卫星服务器间同步(ISS)在两个卫星服务器之间同步内容,包括:

您可以在以下情况中使用 ISS,例如:

  • 如果要将一些内容从卫星服务器复制到其他卫星服务器。例如,您有您的 IT 部门从卫星服务器消耗的内容视图,而您希望将这些内容视图中的内容复制到其他卫星服务器。
  • 如果要将所有库内容从卫星服务器复制到其他卫星服务器。例如,您的 IT 部门从库中的卫星服务器使用产品和存储库,您想要将该机构中的所有产品和存储库复制到其他卫星服务器。
注意

您不能使用 ISS 将内容从卫星服务器同步到胶囊服务器。胶囊服务器支持原生同步。如需更多信息,请参阅 卫星 概述、概念和部署注意事项 中的胶囊服务器 概述。

使用 ISS 的方法有多种。您可以使用的方式取决于您的多服务器设置,这些设置可以回退到以下情况之一。

3.2.1. ISS Network Sync in a Disconnected Scenario

在断开连接的场景中,有以下设置:

  • 上游卫星服务器连接到互联网。这个服务器使用 Red Hat Content Delivery Network(CDN)或自定义源中的内容。
  • 下游卫星服务器完全与所有外部网络隔离。
  • 下游卫星服务器可以通过内部网络与连接的上游卫星服务器通信。

图 3.1. Satellite ISS Disconnected Scenario

Satellite ISS Disconnected Scenario

您可以将下游卫星服务器配置为通过网络从上游卫星服务器同步内容。请参阅 第 3.3 节 “配置卫星服务器以通过网络同步内容”

3.2.2. ISS Export Sync in a Air-Gapped Scenario

在 air-gapped 场景中,以下设置如下:

  • 上游卫星服务器连接到互联网。这个服务器消耗来自红帽 CDN 或自定义源的内容。
  • 下游卫星服务器完全与所有外部网络隔离。
  • 下游卫星服务器没有连接到连接的上游卫星服务器的网络连接。

图 3.2. Satellite ISS Air-Gapped Scenario

Satellite ISS Air-Gapped Scenario

air-gapped downstream Satellite 服务器以接收内容更新的唯一方法是:从上游卫星服务器导出有效负载,将其物理化到下游卫星服务器,并导入有效负载。有关更多信息,请参阅管理 内容,在卫星服务器之间同步 内容

将您的下游卫星服务器配置为使用导出来同步内容。请参阅 第 3.4 节 “配置卫星服务器以使用导出内容同步”

3.3. 配置卫星服务器以通过网络同步内容

配置下游卫星服务器,以通过 HTTPS 从连接的上游卫星服务器同步存储库。

先决条件

  • 上游卫星服务器和下游卫星服务器之间存在网络连接。
  • 您在上游和下游卫星服务器上导入了订阅清单。
  • 在上游卫星服务器上,您可以为组织启用所需的存储库。
  • 上游用户是 admin 或具有以下权限:

    • view_organizations
    • view_products
    • edit_organizations (下载 CA 证书)
    • view_lifecycle_environments
    • view_content_views
  • 在下游卫星服务器上,您已使用 http://upstream-satellite.example.com/pub/katello-server-ca.crt 的内容导入上游卫星服务器的 SSL 证书。如需更多信息,请参阅管理 内容中的导入 SSL 证书
  • stream 用户是 admin,或具有创建产品存储库和机构的权限。

流程

  1. 进入 Content > Subscriptions
  2. 单击 管理清单 按钮。
  3. 导航到 CDN Configuration 选项卡。
  4. 选择 Network Sync 选项卡。
  5. URL 字段中输入上游卫星服务器的地址。
  6. Username 中,为上游登录输入您的用户名。
  7. 密码 中,为上游登录输入您的密码或个人访问令牌。
  8. Organization 标签 字段中,输入上游机构标签。
  9. 可选:在 Lifecycle Environment Label 字段中输入上游生命周期环境标签。默认为
  10. 可选: 在 Content view 标签 字段中,输入上游 Content View 的标签。默认为 Default_Organization_View
  11. SSL CA Content Credential 菜单中,选择上游卫星服务器使用的 CA 证书。
  12. Update
  13. 在 Satellite Web UI 中,导航到 Content > Products
  14. 单击 Sync Now 以同步存储库。

    您还可以创建同步计划以确保定期更新。如需更多信息,请参阅在 管理内容 中 创建同步计划

CLI 过程

  1. 使用 SSH 连接到您的下游卫星服务器。
  2. 查看有关上游 CA 证书的信息:

    # hammer content-credential show \
    --name="My_Upstream_CA_Cert" \
    --organization="My_Downstream_Organization"

    记下下一步的 CA 证书的 ID。

  3. 将 CDN 配置设置为上游 Satellite 服务器:

    # hammer organization configure-cdn --name="My_Downstream_Organization" \
    --type=network_sync \
    --url https://upstream-satellite.example.com \
    --username upstream_username --password upstream_password \
    --ssl-ca-credential-id "My_Upstream_CA_Cert_ID" \ --upstream-organization-label="_My_Upstream_Organization" \
    [--upstream-lifecycle-environment-label="My_Lifecycle_Environment"] \
    [--upstream-content-view-label="My_Content_View"]

    默认生命周期环境标签是 。默认 Content View 标签为 Default_Organization_View

3.4. 配置卫星服务器以使用导出内容同步

如果您将下游卫星服务器部署为 air-gapped,请配置卫星服务器,以避免尝试使用网络中的内容。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Subscriptions
  2. 单击 管理清单 按钮。
  3. 切换到 CDN Configuration 选项卡。
  4. 选择 Export Sync 选项卡。
  5. Update

CLI 过程

  1. 使用 SSH 登录您的卫星服务器。
  2. 将 CDN 配置设置为使用导出进行同步:

    # hammer organization configure-cdn --name="My_Organization" --type=export_sync

其它资源

有关使用导出同步内容的更多信息,请参阅 How to Synchronize Content in managing Content.

3.5. 导入 Kickstart 存储库

Kickstart 软件仓库不是由内容 ISO 镜像提供。要在断开连接的 Satellite 中使用 Kickstart 软件仓库,您必须下载您要使用的 Red Hat Enterprise Linux 版本的二进制 DVD ISO 文件,并将 Kickstart 文件复制到 Satellite。

要为 Red Hat Enterprise Linux 9 导入 Kickstart 软件仓库,完成 第 3.5.1 节 “为 Red Hat Enterprise Linux 9 导入 Kickstart 存储库”

要为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库,完成 第 3.5.2 节 “为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库”

为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库,完成 第 3.5.3 节 “为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库”

3.5.1. 为 Red Hat Enterprise Linux 9 导入 Kickstart 存储库

使用这个流程为 Red Hat Enterprise Linux 9 导入 Kickstart 软件仓库。

流程

  1. 访问 access.redhat.com/downloads 并登录红帽客户门户网站。
  2. 点击 Red Hat Enterprise Linux
  3. 从列表中选择一个产品变体和产品版本。例如,产品变体的 Red Hat Enterprise Linux for x86_64 和产品版本 9.0
  4. 找到完整安装镜像,例如 Red Hat Enterprise Linux 9.0 Binary DVD,然后点击 Download Now。请注意,您无法使用最小 ISO 置备主机。
  5. 下载完成后,将 ISO 镜像复制到卫星服务器。
  6. 在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop rhel-binary-dvd.iso /mnt/iso

    rhel-binary-dvd.iso 替换为您的 ISO 镜像的名称。

  7. 为 Red Hat Enterprise Linux 9 AppStream 和 BaseOS Kickstart 软件仓库创建目录:

    # mkdir --parents /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/kickstart
    # mkdir --parents /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/kickstart
  8. 从 ISO 镜像复制 kickstart 文件:

    # cp -a /mnt/iso/AppStream/* /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/kickstart
    # cp -a /mnt/iso/BaseOS/* /mnt/iso/images/ /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/kickstart

    请注意,对于 BaseOS,还必须复制 /mnt/iso/images/ 目录的内容。

  9. 在列出文件中添加以下条目:

    /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/listing 文件,使用新行附加 kickstart

    /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/listing 文件中,使用新行附加 kickstart

    /var/www/html/pub/satellite-import/content/dist/rhel8/listing 文件,请使用新行附加版本号。例如,对于 Red Hat Enterprise Linux 9.0 二进制 ISO,请附加 9.0

  10. 从 ISO 镜像复制 .treeinfo 文件:

    # cp /mnt/iso/.treeinfo /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/kickstart/treeinfo
    # cp /mnt/iso/.treeinfo /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/kickstart/treeinfo
  11. 打开 /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/kickstart/treeinfo 文件进行编辑。
  12. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream 更改为 变体 = BaseOS
    • 变体 = AppStream,BaseOS 改为 variants = BaseOS
  13. [tree] 部分中,将 变体 = AppStream,BaseOS 更改为 variants = BaseOS
  14. [variant-BaseOS] 部分,进行以下更改:

    • 软件包 = BaseOS/Packages to packages = Packages
    • repository = BaseOS 更改为 repository =。
  15. 删除 [media][variant-AppStream] 部分。
  16. 保存并关闭该文件。
  17. 验证 /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/baseos/kickstart/treeinfo 文件具有以下格式:

    [checksums]
    images/efiboot.img = sha256:c01c18acc6778d6e66c8d0872bac59bfd7219ccf3cfa70a5c605c0fb37f33a83
    images/install.img = sha256:ddd08e5a5d92edee150f91ff4f12f39253eae72ff496465cf1b2766fe4a4df49
    images/pxeboot/initrd.img = sha256:a09a8ec89d485d71ed1bdad83584d6d816e67448221172d9aad97886cd70adca
    images/pxeboot/vmlinuz = sha256:6e523d7c3266e26c695923ab12b2873b16b0c61fb2e48ade608ad8998821584b
    
    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 9.0.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = BaseOS
    variants = BaseOS
    version = 9.0.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [images-x86_64]
    efiboot.img = images/efiboot.img
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [images-xen]
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 9.0.0
    
    [stage2]
    mainimage = images/install.img
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = BaseOS
    
    [variant-BaseOS]
    id = BaseOS
    name = BaseOS
    packages = Packages
    repository = .
    type = variant
    uid = BaseOS
  18. 打开 /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/kickstart/treeinfo 文件进行编辑。
  19. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream,BaseOS 改为 variants = AppStream
  20. [tree] 部分中,将 变体 = AppStream,BaseOS 改为 variants = AppStream
  21. [variant-AppStream] 部分进行以下更改:

    • 更改 软件包 = AppStream/Packages to packages = Packages
    • repository = AppStream 更改为 repository = .
  22. 从文件中删除以下部分: [checksums], [images-x86_64], [images-xen], [media], [stage2], [variant-BaseOS].
  23. 保存并关闭该文件。
  24. 验证 /var/www/html/pub/satellite-import/content/dist/rhel9/9.0/x86_64/appstream/kickstart/treeinfo 文件具有以下格式:

    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 9.0.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = AppStream
    variants = AppStream
    version = 9.0.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 9.0.0
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = AppStream
    
    [variant-AppStream]
    id = AppStream
    name = AppStream
    packages = Packages
    repository = .
    type = variant
    uid = AppStream
  25. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
  26. 在卫星 Web UI 中,启用 Kickstart 存储库。

3.5.2. 为 Red Hat Enterprise Linux 8 导入 Kickstart 存储库

使用这个流程为 Red Hat Enterprise Linux 8 导入 Kickstart 软件仓库。

流程

  1. 访问 access.redhat.com/downloads 并登录红帽客户门户网站。
  2. 点击 Red Hat Enterprise Linux
  3. 从列表中选择一个产品变体和产品版本。例如,产品变体 Red Hat Enterprise Linux for x86_64 和 product version 8.1
  4. 找到完整安装镜像,例如 Red Hat Enterprise Linux 8.1 Binary DVD,并点 Download Now
  5. 下载完成后,将 ISO 镜像复制到卫星服务器。
  6. 在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop rhel-binary-dvd.iso /mnt/iso

    rhel-binary-dvd.iso 替换为您的 ISO 镜像的名称。

  7. Create directories for Red Hat Enterprise Linux 8 AppStream and BaseOS Kickstart repositories:

    # mkdir --parents /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    # mkdir --parents /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart
  8. 从 ISO 镜像复制 kickstart 文件:

    # cp -a /mnt/iso/AppStream/* /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart
    # cp -a /mnt/iso/BaseOS/* /mnt/iso/images/ /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart

    请注意,对于 BaseOS,还必须复制 /mnt/iso/images/ 目录的内容。

  9. 在列出文件中添加以下条目:

    /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/listing 文件,使用新行附加 kickstart

    /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/listing 文件,使用新行附加 kickstart

    /var/www/html/pub/satellite-import/content/dist/rhel8/listing 文件,请使用新行附加版本号。例如,对于 Red Hat Enterprise Linux 8.1 二进制 ISO,请附加 8.1

  10. 从 ISO 镜像复制 .treeinfo 文件:

    # cp /mnt/iso/.treeinfo /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo
    # cp /mnt/iso/.treeinfo /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo
  11. 打开 /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo 文件进行编辑。
  12. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream 更改为 变体 = BaseOS
    • 变体 = AppStream,BaseOS 改为 variants = BaseOS
  13. [tree] 部分中,将 变体 = AppStream,BaseOS 更改为 variants = BaseOS
  14. [variant-BaseOS] 部分,进行以下更改:

    • 软件包 = BaseOS/Packages to packages = Packages
    • repository = BaseOS 更改为 repository =。
  15. 删除 [media][variant-AppStream] 部分。
  16. 保存并关闭该文件。
  17. 验证 /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/baseos/kickstart/treeinfo 文件具有以下格式:

    [checksums]
    images/efiboot.img = sha256:c01c18acc6778d6e66c8d0872bac59bfd7219ccf3cfa70a5c605c0fb37f33a83
    images/install.img = sha256:ddd08e5a5d92edee150f91ff4f12f39253eae72ff496465cf1b2766fe4a4df49
    images/pxeboot/initrd.img = sha256:a09a8ec89d485d71ed1bdad83584d6d816e67448221172d9aad97886cd70adca
    images/pxeboot/vmlinuz = sha256:6e523d7c3266e26c695923ab12b2873b16b0c61fb2e48ade608ad8998821584b
    
    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = BaseOS
    variants = BaseOS
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [images-x86_64]
    efiboot.img = images/efiboot.img
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [images-xen]
    initrd = images/pxeboot/initrd.img
    kernel = images/pxeboot/vmlinuz
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [stage2]
    mainimage = images/install.img
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = BaseOS
    
    [variant-BaseOS]
    id = BaseOS
    name = BaseOS
    packages = Packages
    repository = .
    type = variant
    uid = BaseOS
  18. 打开 /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo 文件进行编辑。
  19. [general] 部分进行以下更改:

    • packagedir = AppStream/Packages 改为 packagedir = Packages
    • repository = AppStream 更改为 repository = .
    • 变体 = AppStream,BaseOS 改为 variants = AppStream
  20. [tree] 部分中,将 变体 = AppStream,BaseOS 改为 variants = AppStream
  21. [variant-AppStream] 部分进行以下更改:

    • 更改 软件包 = AppStream/Packages to packages = Packages
    • repository = AppStream 更改为 repository = .
  22. 从文件中删除以下部分: [checksums], [images-x86_64], [images-xen], [media], [stage2], [variant-BaseOS].
  23. 保存并关闭该文件。
  24. 验证 /var/www/html/pub/satellite-import/content/dist/rhel8/8.1/x86_64/appstream/kickstart/treeinfo 文件具有以下格式:

    [general]
    ; WARNING.0 = This section provides compatibility with pre-productmd treeinfos.
    ; WARNING.1 = Read productmd documentation for details about new format.
    arch = x86_64
    family = Red Hat Enterprise Linux
    name = Red Hat Enterprise Linux 8.1.0
    packagedir = Packages
    platforms = x86_64,xen
    repository = .
    timestamp = 1571146127
    variant = AppStream
    variants = AppStream
    version = 8.1.0
    
    [header]
    type = productmd.treeinfo
    version = 1.2
    
    [release]
    name = Red Hat Enterprise Linux
    short = RHEL
    version = 8.1.0
    
    [tree]
    arch = x86_64
    build_timestamp = 1571146127
    platforms = x86_64,xen
    variants = AppStream
    
    [variant-AppStream]
    id = AppStream
    name = AppStream
    packages = Packages
    repository = .
    type = variant
    uid = AppStream
  25. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
  26. 在卫星 Web UI 中,启用 Kickstart 存储库。

3.5.3. 为 Red Hat Enterprise Linux 7 导入 Kickstart 存储库

使用这个流程为 Red Hat Enterprise Linux 7 导入 Kickstart 软件仓库。

流程

  1. 访问 access.redhat.com/downloads 并登录红帽客户门户网站。
  2. 点击 Red Hat Enterprise Linux
  3. 单击 Switch to version 7,然后在 产品变体 列表中出现。
  4. 从列表中选择一个产品变体和产品版本。例如,产品变体 Red Hat Enterprise Linux for x86_64 和产品版本 7.9
  5. 找到完整安装镜像,例如 Red Hat Enterprise Linux 7.9 Binary DVD,然后点 Download Now
  6. 下载完成后,将 ISO 镜像复制到卫星服务器。
  7. 在卫星服务器上,创建一个挂载点,并在该位置临时挂载 ISO 镜像:

    # mkdir /mnt/iso
    # mount -o loop rhel-binary-dvd.iso /mnt/iso

    rhel-binary-dvd.iso 替换为您的 ISO 镜像的名称。

  8. 创建 Kickstart 目录:

    # mkdir --parents /var/www/html/pub/satellite-import/content/dist/rhel/server/7/7.9/x86_64/kickstart/
  9. 从 ISO 镜像复制 kickstart 文件:

    # cp -a /mnt/iso/* /var/www/html/pub/satellite-import/content/dist/rhel/server/7/7.9/x86_64/kickstart/
  10. 在列出文件中添加以下条目:

    /var/www/html/pub/satellite-import/content/dist/rhel/server/7/listing 文件,请使用新行附加版本号。例如,对于 Red Hat Enterprise Linux 7.9 ISO,请附加 7.9

    /var/www/html/pub/satellite-import/content/dist/rhel/server/7/7.9/listing 文件中,使用新行附加构架。例如,x86_64

    /var/www/html/pub/satellite-import/content/dist/rhel/server/7/7.9/x86_64/listing 文件中,使用新行附加 kickstart

  11. 从 ISO 镜像复制 .treeinfo 文件:

    # cp /mnt/iso/.treeinfo /var/www/html/pub/satellite-import/content/dist/rhel/server/7/7.9/x86_64/kickstart/treeinfo
  12. 如果您没有计划使用挂载的二进制 DVD ISO 镜像,请卸载并删除目录:

    # umount /mnt/iso
    # rmdir /mnt/iso
  13. 在卫星 Web UI 中,启用 Kickstart 存储库。

3.6. 启用 Satellite 客户端 6 存储库

卫星客户端 6 存储库提供 katello-agentkatello-host-tools,以及用于注册到卫星服务器的客户端的 puppet 软件包。您必须为每个需要管理主机的 Red Hat Enterprise Linux 版本启用软件仓库。根据您要启用 Satellite 客户端 6 存储库的操作系统版本,继续以下流程。

3.6.1. Red Hat Enterprise Linux 9 & Red Hat Enterprise Linux 8

要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:

先决条件

  • 确保您将所需的所有内容 ISO 镜像导入到卫星服务器中。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Red Hat Repositories
  2. 在 Available Repositories 窗格中,启用 推荐的存储库 来获取存储库列表。
  3. Red Hat Satellite Client 6 for RHEL 9 x86_64 (RPMs)Red Hat Satellite Client 6 for RHEL 8 x86_64 (RPMs) 来扩展存储库集。
  4. 对于 x86_64 架构,点 + 图标启用存储库。

    如果 卫星客户端 6 项目不可见,则可能是因为从客户门户网站获取的 Red Hat Subscription Manifest 中不包含它们。要更正这一点,请登录客户门户网站,添加这些软件仓库,下载 Red Hat Subscription Manifest,并将它导入到 Satellite。如需更多信息,请参阅 管理内容 中的 管理红帽订阅

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

Red Hat Enterprise Linux 9 的 CLI 过程

  • 使用 hammer repository-set enable 命令启用 Satellite Client 6 软件仓库:

    # hammer repository-set enable \
    --basearch="x86_64" \
    --name "Red Hat Satellite Client 6 for RHEL 9 x86_64 (RPMs)" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux for x86_64"

Red Hat Enterprise Linux 8 的 CLI 过程

  • 使用 hammer repository-set enable 命令启用 Satellite Client 6 软件仓库:

    # hammer repository-set enable \
    --basearch="x86_64" \
    --name "Red Hat Satellite Client 6 for RHEL 8 x86_64 (RPMs)" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux for x86_64"

3.6.2. Red Hat Enterprise Linux 7 & Red Hat Enterprise Linux 6

注意

您需要 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 订阅来启用 Red Hat Enterprise Linux 6 的软件仓库。如需更多信息,请参阅 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 指南。

要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:

先决条件

  • 确保您将需要的所有内容 ISO 镜像导入到 Satellite 服务器中。Procedure

    1. 在 Satellite Web UI 中,导航到 Content > Red Hat Repositories
    2. Available Repositories 窗格中,启用 推荐的存储库 来获取存储库列表。
    3. Available Repositories 窗格中,点 Satellite Client 6 (for RHEL 7 Server) (RPMs)Satellite Client 6 (for RHEL 6 Server - ELS) (RPMs) 来扩展存储库集。

      如果 卫星客户端 6 项目不可见,则可能是因为从客户门户网站获取的 Red Hat Subscription Manifest 中不包含它们。要更正这一点,请登录客户门户网站,添加这些软件仓库,下载 Red Hat Subscription Manifest,并将它导入到 Satellite。如需更多信息,请参阅 管理内容 中的 管理红帽订阅

    4. 对于 x86_64 架构,点 + 图标启用存储库。为主机上运行的每个受支持的 Red Hat Enterprise Linux 主版本启用 Satellite Client 6 软件仓库。启用红帽存储库后,将自动创建此软件仓库的产品。

Red Hat Enterprise Linux 7 的 CLI 过程

  • 使用 hammer repository-set enable 命令启用 Satellite Client 6 软件仓库:

    # hammer repository-set enable \
    --basearch="x86_64" \
    --name "Red Hat Satellite Client 6 (for RHEL 7 Server) (RPMs)" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux Server"

Red Hat Enterprise Linux 6 的 CLI 过程

  • 使用 hammer repository-set enable 命令启用 Satellite Client 6 软件仓库:

    # hammer repository-set enable \
    --basearch="x86_64" \
    --name "Red Hat Satellite Client 6 (for RHEL 6 Server - ELS) (RPMs)" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux Server - Extended Life Cycle Support"

3.7. 同步 Satellite 客户端 6 存储库

使用本节将 Red Hat Content Delivery Network (CDN)中的 Satellite Client 6 存储库同步到 Satellite。此存储库为注册了卫星服务器的客户端提供 katello-agentkatello-host-toolspuppet 软件包。根据您要同步 Satellite 客户端 6 存储库的操作系统版本继续以下步骤。

3.7.1. Red Hat Enterprise Linux 9 & Red Hat Enterprise Linux 8

要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:

流程

  1. 在 Satellite Web UI 中,导航到 Content > Sync Status
  2. Red Hat Enterprise Linux for x86_64 产品旁的箭头查看可用的内容。
  3. 选择 Red Hat Satellite Client 6 for RHEL 9 x86_64 RPMsRed Hat Satellite Client 6 for RHEL 8 x86_64 RPM
  4. 单击 立即同步

Red Hat Enterprise Linux 9 的 CLI 过程

  • 使用 hammer 存储库同步您的 Satellite 客户端 6 存储库

    # hammer repository synchronize \
    --name "Red Hat Satellite Client 6 for RHEL 9 x86_64 RPMs" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux for x86_64"

Red Hat Enterprise Linux 8 的 CLI 过程

  • 使用 hammer 存储库同步您的 Satellite 客户端 6 存储库

    # hammer repository synchronize \
    --name "Red Hat Satellite Client 6 for RHEL 8 x86_64 RPMs" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux for x86_64"

3.7.2. Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 6

注意

您需要 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务订阅来 同步 Red Hat Enterprise Linux 6 的软件仓库。如需更多信息,请参阅 Red Hat Enterprise Linux 延长生命周期支持(ELS)附加服务 指南。

要使用 CLI 而不是 Satellite Web UI,请查看与 Red Hat Enterprise Linux 版本相关的流程:

流程

  1. 在 Satellite Web UI 中,导航到 Content > Sync Status
  2. Red Hat Enterprise Linux ServerRed Hat Enterprise Linux Server - 延长生命周期支持 旁的箭头,无论产品都适用于查看可用内容。
  3. 根据您的操作系统版本,选择 Red Hat Satellite Client 6 (for RHEL 7 Server) RPMs x86_64Red Hat Satellite Client 6 for RHEL 6 Server - ELS RPMs x86_64
  4. 单击 立即同步

Red Hat Enterprise Linux 7 的 CLI 过程

  • 使用 hammer 存储库同步您的 Satellite 客户端 6 存储库

    # hammer repository synchronize \
    --async \
    --name "Red Hat Satellite Client 6 for RHEL 7 Server RPMs x86_64" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux Server"

Red Hat Enterprise Linux 6 的 CLI 过程

  • 使用 hammer 存储库同步您的 Satellite 客户端 6 存储库

    # hammer repository synchronize \
    --async \
    --name "Red Hat Satellite Client 6 for RHEL 6 Server - ELS RPMs x86_64" \
    --organization "My_Organization" \
    --product "Red Hat Enterprise Linux Server - Extended Life Cycle Support"

3.8. 在 Satellite 服务器中为 Pull 客户端配置远程执行

默认情况下,远程执行使用 SSH 作为 Script 供应商的传输机制。但是,远程执行还提供基于拉取的传输,如果您的基础架构禁止从 Satellite 到主机的传出连接,则可以使用它。

这包括 Satellite 上的 pull-mqtt 模式,以及主机上运行的拉取客户端。如果您仍然使用 Katello Agent,请为迁移配置 pull-mqtt 模式,这是基于 pull 的传输已弃用方法。

注意

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

要在 Satellite 服务器上使用 pull-mqtt 模式,请按照以下步骤操作:

流程

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

     # satellite-installer --scenario satellite \
    --foreman-proxy-plugin-remote-execution-script-mode pull-mqtt
  2. 配置防火墙以允许端口 1883 上的 MQTT 服务:

    # firewall-cmd --add-service=mqtt
    # firewall-cmd --runtime-to-permanent

    pull-mqtt 模式中,主机将作业通知订阅到您的 Satellite 或通过它们注册的任何胶囊服务器。因此,建议确保 Satellite 服务器将远程执行作业发送到同一 Satellite (或 Capsule)。

  3. 在 Satellite Web UI 中,导航到 Administer > Settings
  4. Content 选项卡上,将 Prefer registered through Capsule for remote execution 的值设为 Yes

在 Satellite 上设置基于拉取的传输后,您还必须在每个主机上进行配置。如需更多信息,请参阅管理 主机 中的 远程执行的 传输模式

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

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

先决条件

流程

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

    # satellite-installer --foreman-proxy-bmc "true" \
    --foreman-proxy-bmc-default-provider "freeipmi"

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

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

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

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

添加 Multihomed DHCP 详情

如果要使用 Multihomed DHCP,您必须通知安装程序。

先决条件

  • 确保以下信息可用:

    • DHCP IP 地址范围
    • DHCP 网关 IP 地址
    • DHCP 名称服务器 IP 地址
    • DNS 信息
    • TFTP 服务器名称
  • 在网络更改时,尽可能使用 FQDN 而不是 IP 地址。
  • 请联系您的网络管理员,确保您有正确的设置。

流程

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

    # satellite-installer --scenario satellite \
    --foreman-proxy-dns true \
    --foreman-proxy-dns-managed true \
    --foreman-proxy-dns-interface eth0 \
    --foreman-proxy-dns-zone example.com \
    --foreman-proxy-dns-reverse 2.0.192.in-addr.arpa \
    --foreman-proxy-dhcp true \
    --foreman-proxy-dhcp-managed true \
    --foreman-proxy-dhcp-interface eth0 \
    --foreman-proxy-dhcp-additional-interfaces eth1 \
    --foreman-proxy-dhcp-additional-interfaces eth2 \
    --foreman-proxy-dhcp-range "192.0.2.100 192.0.2.150" \
    --foreman-proxy-dhcp-gateway 192.0.2.1 \
    --foreman-proxy-dhcp-nameservers 192.0.2.2 \
    --foreman-proxy-tftp true \
    --foreman-proxy-tftp-managed true \
    --foreman-proxy-tftp-servername 192.0.2.3

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

有关配置 DHCP、DNS 和 TFTP 服务的更多信息,请参阅在 置备 主机中配置网络服务

3.11. 为非受管网络禁用 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
  2. 在 Satellite Web UI 中,导航到 Infrastructure > Subnets 并选择子网。
  3. 单击 Capsules 选项卡,再清除 DHCP CapsuleTFTP CapsuleReverse DNS Capsule 字段。
  4. 在 Satellite Web UI 中,导航到 Infrastructure > Domains 并选择 domain。
  5. 清除 DNS Capsule 字段。
  6. 可选:如果您使用第三方提供的 DHCP 服务,请将 DHCP 服务器配置为传递以下选项:

    Option 66: IP address of Satellite or Capsule
    Option 67: /pxelinux.0

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

注意

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

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

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

前提条件

  • 已知的具有反垃圾邮件保护或查询功能的某些 SMTP 服务器会导致问题。要使用这样的服务设置传出电子邮件,可以在卫星服务器上安装和配置 vanilla SMTP 服务以转发或使用 sendmail 命令。

流程

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

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

      表 3.1. 使用 SMTP 服务器作为交付方法

      Name示例值

      交付方法

      SMTP

      SMTP 地址

      smtp.example.com

      SMTP 身份验证

      login

      SMTP HELO/EHLO 域

      example.com

      SMTP 密码

      password

      SMTP 端口

      25

      SMTP 用户名

      user@example.com

      SMTP 用户名和 SMTP 密码 指定 SMTP 服务器的登录凭证。

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

      表 3.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 命令用作发送方法:

      表 3.3. 使用 sendmail 作为发送方法

      Name示例值

      交付方法

      sendmail

      Sendmail 位置

      /usr/sbin/sendmail

      Sendmail 参数

      -i

      出于安全考虑,Sendmail 位置和 Sendmail 参数设置都是只读的,只能在 /etc/foreman/settings.yaml 中设置。这两个设置目前无法通过 satellite-installer 设置。详情请查看 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

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

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

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

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

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

当使用自定义 SSL 证书配置 Red Hat Satellite 时,您必须满足以下要求:

  • 您必须对 SSL 证书使用隐私增强型邮件(PEM)编码。
  • 您不能将相同的 SSL 证书用于 Satellite 服务器和 Capsule 服务器。
  • 同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。
  • SSL 证书也不能是 CA 证书。
  • SSL 证书必须包含与通用名称(CN)匹配的主题 alt name (SAN)条目。
  • 在使用密钥用法扩展时,必须允许 SSL 证书。
  • SSL 证书不能有短名称作为 CN。
  • 您不能为私钥设置密码短语。

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

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

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

流程

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

    # mkdir /root/satellite_cert
  2. 创建为证书签名请求(CSR)签名的私钥。

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

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

    # openssl genrsa -out /root/satellite_cert/satellite_cert_key.pem 4096
  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 ]
    CN = satellite.example.com
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    subjectAltName = @alt_names
    
    [ usr_cert ]
    basicConstraints=CA:FALSE
    nsCertType = client, server, email
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    nsComment = "OpenSSL Generated Certificate"
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    [ alt_names ]
    DNS.1 = satellite.example.com
  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
    1
    私钥的路径。
    2
    配置文件的路径。
    3
    要生成的 CSR 的路径。
  5. 将证书签名请求发送到证书颁发机构(CA)。同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。

    提交请求时,指定证书的寿命。发送证书请求的方法会有所不同,因此请查阅 CA 查看首选方法。为了响应请求,您可以在单独的文件中接收 CA 捆绑包和签名证书。

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

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

重要

不要将 SSL 证书或 .tar 捆绑包存储在 /tmp/var/tmp 目录中。操作系统定期从这些目录中删除文件。因此,satellite-installer 在启用功能或升级 Satellite 服务器时无法执行。

流程

  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
    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

    请注意,不得访问或修改 /root/ssl-build

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

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

    重要

    在部署证书后,Satellite-installer 需要证书存档文件。不要修改或删除它。例如,升级卫星服务器时需要它。

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

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

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

流程

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

    # dnf install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm

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

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

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

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

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

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

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

外部 PostgreSQL 的优点

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

外部 PostgreSQL 的缺陷

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

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

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

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

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

前提条件

流程

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

    # subscription-manager repos --disable '*'
    # subscription-manager repos \
    --enable=satellite-6.12-for-rhel-8-x86_64-rpms \
    --enable=rhel-8-for-x86_64-baseos-rpms \
    --enable=rhel-8-for-x86_64-appstream-rpms
  3. 启用以下模块:

    # dnf module enable satellite:el8
    注意

    启用模块 satellite:el8 会警告与 postgresql:10ruby:2.5 冲突,因为这些模块在 Red Hat Enterprise Linux 8 中被设置为默认模块版本。模块 satellite:el8 依赖于模块 postgresql:12ruby:2.7,它将通过 satellite:el8 模块启用。这些警告不会导致安装过程失败,因此可以安全地忽略。有关 Red Hat Enterprise Linux 8 中的模块和生命周期流的更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期

3.14.3. 安装 PostgreSQL

在内部数据库安装过程中,您只能安装与 satellite-installer 工具安装的相同版本的 PostgreSQL。Satellite 支持 PostgreSQL 版本 12。

流程

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

    # dnf install postgresql-server postgresql-evr
  2. 要初始化 PostgreSQL,请输入以下命令:

    # postgresql-setup initdb
  3. 编辑 /var/lib/pgsql/data/postgresql.conf 文件:

    # vi /var/lib/pgsql/data/postgresql.conf

    请注意,需要调整外部 PostgreSQL 的默认配置,以便使用 Satellite。推荐的外部数据库配置调整基本如下:

    • checkpoint_completion_target: 0.9
    • max_connections: 500
    • shared_buffers: 512MB
    • work_mem: 4MB
  4. 删除 # 并编辑 以侦听入站连接:

    listen_addresses = '*'
  5. 编辑 /var/lib/pgsql/data/pg_hba.conf 文件:

    # vi /var/lib/pgsql/data/pg_hba.conf
  6. 在文件中添加以下行:

      host  all   all   Satellite_ip/32   md5
  7. 要启动并启用 PostgreSQL 服务,请输入以下命令:

    # systemctl enable --now postgresql
  8. 打开外部 PostgreSQL 服务器上的 postgresql 端口:

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

    $ su - postgres -c psql
  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;
  11. 退出 postgres 用户:

    # \q
  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 pulp -d pulpcore -c "SELECT 1 as ping"

3.14.4. 配置卫星服务器以使用外部数据库

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

前提条件

  • 您已在 Red Hat Enterprise Linux 服务器中安装并配置 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
      --foreman-proxy-content-pulpcore-postgresql-user pulp

    要为这些外部数据库启用安全套接字层(SSL)协议,请添加以下选项:

    --foreman-db-sslmode verify-full
    --foreman-db-root-cert <path_to_CA>
    --katello-candlepin-db-ssl true
    --katello-candlepin-db-ssl-verify true
    --katello-candlepin-db-ssl-ca <path_to_CA>
    --foreman-proxy-content-pulpcore-postgresql-ssl true
    --foreman-proxy-content-pulpcore-postgresql-ssl-root-ca <path_to_CA>

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

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

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

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

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

先决条件

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

流程

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

    # scp root@dns.example.com:/etc/rndc.key /etc/foreman-proxy/rndc.key
  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
  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
  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
  5. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules
  6. 找到卫星服务器,再从 Actions 列中的列表选择 Refresh
  7. 将 DNS 服务与适当的子网和域关联。

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

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

4.2.1. 配置外部 DHCP 服务器以与卫星服务器搭配使用

要将运行 Red Hat Enterprise Linux 的外部 DHCP 服务器配置为与 Satellite 服务器搭配使用,您必须安装 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 主机上,安装 ISC DHCP 服务和 Berkeley Internet Name Domain (BIND)工具软件包:

    # dnf install dhcp-server bind-utils
  2. 生成安全令牌:

    # dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key

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

  3. 从密钥复制 secret 哈希:

    # grep ^Key Komapi_key.+*.private  | cut -d ' ' -f2
  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;

    请注意,选项路由器 值是您要用于外部 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
  8. 在卫星服务器上,确定 foreman 用户的 UID 和 GID:

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

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

    # chmod o+rx /etc/dhcp/
    # chmod o+r /etc/dhcp/dhcpd.conf
    # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
  11. 启用并启动 DHCP 服务:

    # systemctl enable --now dhcpd
  12. 使用 NFS 导出 DHCP 配置和租期文件:

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

    # mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
  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
  15. /etc/fstab 中挂载文件系统:

    # mount -a
  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)

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

  17. 重新载入 NFS 服务器:

    # exportfs -rva
  18. 为 DHCP omapi 端口 7911 配置防火墙:

    # firewall-cmd --add-port=7911/tcp
    # firewall-cmd --runtime-to-permanent
  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

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

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

前提条件

流程

  1. 安装 nfs-utils 软件包:

    # dnf install nfs-utils
  2. 为 NFS 创建 DHCP 目录:

    # mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
  3. 更改文件所有者:

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

    # showmount -e DHCP_Server_FQDN
    # rpcinfo -p DHCP_Server_FQDN
  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
  6. /etc/fstab 中挂载文件系统:

    # mount -a
  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
  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
  9. 将 DHCP 服务与适当的子网和域关联。

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

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

流程

  1. 为 NFS 创建 TFTP 目录:

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

    # mount -a
  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
  5. 如果 TFTP 服务在不同于 DHCP 服务的不同服务器中运行,请使用 TFTP 服务运行的服务器的 FQDN 或 IP 地址更新 tftp_servername 设置:

    # satellite-installer --foreman-proxy-tftp-servername=TFTP_Server_FQDN
  6. 在 Satellite Web UI 中,导航到 Infrastructure > Capsules
  7. 找到卫星服务器,再从 Actions 列中的列表选择 Refresh
  8. 将 TFTP 服务与适当的子网和域关联。

4.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 和域注册配置卫星服务器是互斥的。有关配置域注册的更多信息,请参阅在 连接的网络环境中安装 Satellite 服务器 中的 为置备主机进行外部身份验证

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

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

先决条件

  • 您必须确保 IdM 服务器已部署并正确配置基于主机的防火墙。如需更多信息,请参阅 安装身份管理指南中的 IdM 端口要求
  • 您必须联系 IdM 服务器管理员,以确保在 IdM 服务器中获取具有在 IdM 服务器中创建的区的权限。
  • 您应创建应答文件的备份。如果已损坏,您可以使用备份将回答文件恢复到其原始状态。如需更多信息,请参阅 配置卫星服务器

流程

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

在 IdM 服务器上创建 Kerberos 主体

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

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

    # ipa service-add capsule/satellite.example.com

安装和配置 IdM 客户端

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

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

    # ipa-client-install
  3. 获取Kerberos ticket:

    # kinit admin
  4. 删除任何已存在的 keytab

    # rm /etc/foreman-proxy/dns.keytab
  5. 获取此系统的 keytab

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

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

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

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

    # kinit -kt /etc/foreman-proxy/dns.keytab \
    capsule/satellite.example.com@EXAMPLE.COM

在 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;
    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;
    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=false \
      --foreman-proxy-dns-provider=nsupdate_gss \
      --foreman-proxy-dns-server="idm1.example.com" \
      --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \
      --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab
    • 在 Capsule 上,输入以下命令:

      satellite-installer --scenario capsule \
      --foreman-proxy-dns=true \
      --foreman-proxy-dns-managed=false \
      --foreman-proxy-dns-provider=nsupdate_gss \
      --foreman-proxy-dns-server="idm1.example.com" \
      --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \
      --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab

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

在 Satellite Web UI 中更新配置

  1. 在卫星 Web UI 中,导航到 Infrastructure > Capsules,找到 Satellite Server,并从 Actions 列中的列表中选择 Refresh
  2. 配置域:

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

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

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

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

先决条件

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

流程

要使用 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"; };
    };
    ########################################################################
  2. 重新载入 named 服务以使更改生效:

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

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

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

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

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

    # usermod -a -G named foreman-proxy
  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

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

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

    key "rndc-key" {
            algorithm hmac-md5;
            secret "secret-key==";
    };
  2. 在卫星服务器上,为主机创建一个测试 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
  3. 在 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
  4. 要在 IdM web UI 中查看条目,请导航至 Network Services > 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
  6. 确认 DNS 条目已被删除:

    # nslookup test.example.com 192.168.25.1

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

4.4.3. 恢复到内部 DNS 服务

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

流程

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

将 Satellite 或 Capsule 配置为 DNS 服务器

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

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

    # satellite-installer \
    --foreman-proxy-dns=true \
    --foreman-proxy-dns-managed=true \
    --foreman-proxy-dns-provider=nsupdate \
    --foreman-proxy-dns-server="127.0.0.1"

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

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

在 Satellite Web UI 中更新配置

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

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

    1. 在 Satellite Web UI 中,导航到 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 管理。如果在初始安装程序运行期间未指定这些标记,则重新运行安装程序会覆盖所有手动更改,例如在升级中重新运行。如果更改被覆盖,您必须运行恢复过程来恢复手动更改。如需更多信息,请参阅"从 Puppet 运行"写入的手动更改

要查看所有可用于自定义配置的安装程序标记,请运行 satellite-installer --scenario satellite --full-help。一些 Puppet 类不公开给卫星安装程序。要手动管理它们并防止安装程序覆盖其值,请通过向配置文件 /etc/foreman-installer/custom-hiera.yaml 添加条目来指定配置值。此配置文件采用 YAML 格式,每行包含一个条目,格式为 < puppet class>::<parameter name>: <value>。此文件中指定的配置值可在安装程序重新运行后保留。

常见示例包括:

  • 对于 Apache,将 ServerTokens 指令设置为仅返回产品名称:

    apache::server_tokens: Prod
  • 要完全关闭 Apache 服务器签名:

    apache::server_signature: Off

Satellite 安装程序的 Puppet 模块存储在 /usr/share/foreman-installer/modules 下。检查 .pp 文件(例如: moduleName/manifests/example.pp)来查找类、参数和值。或者,使用 grep 命令执行关键字搜索。

设置一些值可能会意外的后果影响 Red Hat Satellite 的性能或功能。先考虑更改的影响,然后再应用这些更改,并首先测试非生产环境的更改。如果您没有非生产环境,请使用 --noop--verbose 选项运行 Satellite 安装程序。如果更改造成问题,请从 custom-hiera.yaml 中删除出错的行并重新运行 Satellite 安装程序。如果您对特定价值是否安全做任何特定问题,请联络红帽支持。

附录 B. 恢复由 Puppet 运行编写的手动更改

如果 Puppet 运行覆盖了手动配置,您可以将文件恢复到以前的状态。以下示例演示了如何恢复 Puppet 运行所覆盖的 DHCP 配置文件。

流程

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

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

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

    # puppet filebucket restore --local --bucket \
    /var/lib/puppet/clientbucket /etc/dhcp/dhcpd.conf \ 622d9820b8e764ab124367c68f5fa3a1
  4. 比较备份文件和恢复的文件,并编辑恢复的文件,使其包含升级所需的任何强制更改。

附录 C. 将 Satellite Server 还原为从红帽 CDN 下载内容

如果您的环境无法连接,您可以重新配置非联网卫星服务器来直接从红帽 CDN 下载内容。

流程

  1. 在 Satellite Web UI 中,导航到 Content > Subscriptions
  2. 单击 管理清单 按钮。
  3. 切换到 CDN Configuration 选项卡。
  4. 选择红帽 CDN
  5. 编辑 URL 字段以指向红帽 CDN URL:

    https://cdn.redhat.com

  6. Update

现在,卫星服务器已配置为在同步存储库时从红帽 CDN 下载内容。

CLI 过程

  1. 使用 SSH 登录卫星服务器。
  2. 使用 Hammer 重新配置 CDN:

    # hammer organization configure-cdn --name="My_Organization" --type=redhat_cdn

法律通告

Copyright © 2024 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.