搜索

安装胶囊服务器

download PDF
Red Hat Satellite 6.10

Installing Red Hat Satellite Capsule Server

Red Hat Satellite Documentation Team

摘要

本指南介绍了如何安装红帽卫星胶囊服务器、执行初始配置和配置外部服务。

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

1.1. 系统要求

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

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

卫星仅支持 UTF-8 编码。如果您的地区是美国且您的语言为英文,请将 en_US.utf-8 设置为系统范围区域设置。有关在 Red Hat Enterprise Linux 中配置系统区域设置的更多信息,请参阅配置系统本地指南。在安装胶囊服务器之前,请确保您的环境满足安装要求。

胶囊服务器必须安装在全新的调配的系统上,除了运行胶囊服务器外,不会提供其他功能。全新调配的系统不得具有外部身份提供程序提供的以下用户,以避免与胶囊服务器创建的本地用户冲突:

  • Apache
  • Foreman
  • foreman-proxy
  • postgres
  • Pulp
  • puppet
  • puppetserver
  • qdrouterd
  • redis

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

认证的虚拟机监控程序

在支持运行 Red Hat Enterprise Linux 的 hypervisor 上运行的物理系统和虚拟机上都完全支持胶囊服务器。有关认证的虚拟机监控程序的更多信息,请参阅 哪些管理程序已经认证可运行 Red Hat Enterprise Linux?

SELinux Mode

必须启用 SELinux,无论是 enforcing 模式还是 permissive 模式。不支持使用禁用 SELinux 的安装。

FIPS 模式

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

1.2. 存储要求

下表详细介绍了特定目录的存储要求。这些值基于预期的用例场景,并根据各个环境的不同而有所不同。

运行时大小通过 Red Hat Enterprise Linux 6、7 和 8 软件仓库同步进行测量。

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

/var/lib/pulp/

1 MB

300 GB

/var/opt/rh/rh-postgresql12/lib/pgsql

100 MB

10 GB

/opt

500 MB

不适用

1.3. 存储指南

安装胶囊服务器以提高效率时请考虑以下准则:

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

您可以使用 fio 工具获取这些数据。有关使用 fio 工具的更多信息,请参阅 磁盘对 Satellite 操作的红帽知识库解决方案影响

文件系统指南

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

日志文件存储

日志文件被写入 /var/log/messages/、/ var/log/httpd//var/lib/foreman-proxy/openscap/content/。您可以使用 logrotate 管理这些文件的大小。如需更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南 中的日志轮转。https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-viewing_and_managing_log_files#s2-log_rotation

日志消息所需的准确存储量取决于您的安装和设置。

NFS 挂载的 SELinux 注意事项

当使用 NFS 共享挂载 /var/lib/pulp 目录时,SELinux 会阻止同步进程。要避免这种情况,请通过将以下行添加到 /etc/fstab 指定文件系统表中的 /var/lib/pulp 目录的 SELinux 上下文:

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

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

# restorecon -R /var/lib/pulp

重复的软件包

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

Software Collections

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

对于 /opt 目录,需要 root 用户写入和执行权限。

符号链接

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

同步的 RHEL ISO

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

1.4. 支持的操作系统

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

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

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

操作系统

架构

备注

Red Hat Enterprise Linux 7

仅限 x86_64

 

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

红帽胶囊式服务器需要通过 @Base 软件包组安装红帽企业 Linux 安装,无需进行其他软件包集修改,而且不直接处理服务器直接操作所需的第三方配置或软件。这个限制包括强化和其他非红帽安全软件。如果您需要基础架构中的此类软件,请先安装和验证完整的胶囊服务器,然后在添加任何非红帽软件前创建系统的备份。

在全新的调配的系统上安装胶囊服务器。

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

除了运行胶囊服务器外,红帽不支持将系统用于任何其他操作。

1.5. 端口和防火墙要求

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

如果在安装开始前,如果卫星服务器和胶囊服务器之间的端口没有打开,则胶囊服务器的安装会失败。

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

集成胶囊

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

Capsule 客户端

作为胶囊的客户端,卫星集成胶囊以外的主机不需要访问卫星服务器。有关卫星拓扑和移植端口连接的的更多信息,请参阅 规划红帽卫星 6 的胶囊 联网

所需端口可以根据您的配置进行更改。

下表指定目标端口和网络流量的方向:

表 1.3. 胶囊传入流量
目标端口协议Service必需用于Description

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

客户端

内容主机注册

Capsule CA RPM 安装

443

TCP

HTTPS

Red Hat Satellite

内容镜像

管理

443

TCP

HTTPS

Red Hat Satellite

Capsule API

智能代理功能

5647

TCP

AMQP

客户端

goferd 消息总线

将消息转发到客户端(可选)

Katello 代理用于与 Qpid 分配程序通信

8000

TCP

HTTP

客户端

调配模板

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

8000

TCP

HTTP

客户端

PXE 引导

安装

8140

TCP

HTTPS

客户端

Puppet 代理

客户端更新(可选)

8443

TCP

HTTPS

客户端

内容主机注册

开始

上传事实

发送安装的软件包和追踪

9090

TCP

HTTPS

客户端

OpenSCAP

配置客户端

9090

TCP

HTTPS

发现的节点

Discovery(发现)

主机发现和置备

9090

TCP

HTTPS

Red Hat Satellite

Capsule API

胶囊功能

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

DHCP 胶囊将向子网中设置 DHCP IPAM 的子网执行 ICMP ping 和 TCP 回显连接,以找出是否考虑使用 IP 地址。可以使用 satellite-installer --foreman-proxy-dhcp-ping-free-ip=false 关闭此行为。

表 1.4. 胶囊外发流量
目标端口协议Service目的地必需用于Description
 

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 Server

DHCP 管理

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

623

  

客户端

电源管理

BMC On/Off/Cycle/Status

5646

TCP

AMQP

Satellite Server

Katello 代理

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

7911

TCP

DHCP, OMAPI

DHCP Server

DHCP

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

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

8443

TCP

HTTPS

客户端

Discovery(发现)

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

注意

不得拒绝 ICMP 到端口 7 UDP 和 TCP,但可以丢弃.DHCP Capsule 将 ECHO REQUEST 发送到客户端网络,以验证 IP 地址是否可用。任何响应都将阻止分配 IP 地址。

1.6. 启用从胶囊服务器到卫星服务器的连接

在卫星服务器上,您必须启用从胶囊服务器到卫星服务器的传入连接,并在重新启动后保持此规则。

先决条件

流程

  1. 在卫星服务器上,输入以下命令打开胶囊的端口到卫星通信:

    # firewall-cmd --add-port="5646/tcp"
  2. 使更改持久:

    # firewall-cmd --runtime-to-permanent

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

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

流程

  1. 在您要安装胶囊的基本操作系统上,输入以下命令打开卫星服务器和客户端与胶囊服务器通信的端口:

    # 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="8140/tcp" \
    --add-port="8443/tcp" --add-port="9090/tcp"
  2. 使更改持久:

    # firewall-cmd --runtime-to-permanent

1.8. 验证防火墙设置

使用此流程验证您对防火墙设置的更改。

流程

  1. 输入以下命令:

    # firewall-cmd --list-all

如需更多信息,请参阅 Red Hat Enterprise Linux 7 安全指南 开始使用 firewalld

第 2 章 安装胶囊服务器

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

2.1. 注册到卫星服务器

使用这个步骤注册您要在其中安装胶囊服务器的基本操作系统。

订阅清单先决条件

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

如需有关清单和存储库的更多信息,请参阅 Red Hat Satellite 内容管理指南中的管理订阅https://access.redhat.com/documentation/zh-cn/red_hat_satellite/6.10/html-single/content_management_guide/index#Managing_Subscriptions/

代理和网络先决条件

流程

  1. 下载 katello-ca-consumer-latest.noarch.rpm 软件包到您要在其上安装胶囊的基本操作系统。使用者 RPM 将主机配置为从卫星中指定的内容源下载内容。

    # curl --insecure --output katello-ca-consumer-latest.noarch.rpm https://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
  2. 安装 katello-ca-consumer-latest.noarch.rpm 软件包:

    # yum localinstall katello-ca-consumer-latest.noarch.rpm
  3. 将胶囊式基础操作系统注册到您希望胶囊所属的环境。使用激活码来简化环境。有关激活码的更多信息,请参阅 内容管理指南中的 管理激活码

    # subscription-manager register \
    --activationkey=example_activation_key \
    --org=My_Organization

2.2. 附加 Satellite 基础架构订阅

注意

如果您在红帽客户门户网站中启用简单内容访问(SCA),请跳过此部分。

注册胶囊服务器后,您必须识别您的订阅池 ID 并附加可用订阅。红帽卫星基础架构订阅提供对红帽卫星、红帽企业 Linux 和红帽软件集合(RHSCL)内容的访问。这是唯一需要的订阅。

Red Hat Satellite Infrastructure 包含在所有包括 Satellite 的订阅(以前称为 智能管理)。如需更多信息,请参阅红帽知识库中的 Satellite 基础架构订阅 MCT3718 MCT3719

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

流程

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

    # subscription-manager list --all --available --matches 'Red Hat Satellite Infrastructure Subscription'

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

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

    # subscription-manager attach --pool=pool_id

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

    Successfully attached a subscription for: Red Hat Satellite Infrastructure Subscription
  4. 可选:验证是否已附加 Satellite 基础架构订阅:

    # subscription-manager list --consumed

2.3. 配置软件仓库

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

流程

  1. 禁用所有软件仓库:

    # subscription-manager repos --disable "*"
  2. 启用以下软件仓库:

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-capsule-6.10-rpms \
    --enable=rhel-7-server-satellite-maintenance-6-rpms \
    --enable=rhel-7-server-satellite-tools-6.10-rpms \
    --enable=rhel-server-rhscl-7-rpms \
    --enable=rhel-7-server-ansible-2.9-rpms
    注意

    如果您要将胶囊服务器安装为托管在 Red Hat Virtualization 上的虚拟机,还必须启用 Red Hat Common 存储库,并安装 Red Hat Virtualization 客户机代理和驱动程序。如需更多信息,请参阅 《虚拟机管理指南》 中的 在红帽企业 Linux 上安装客户机代理和驱动程序

  3. 清除任何元数据:

    # yum clean all
  4. 可选:验证是否启用了所需的存储库:

    # yum repolist enabled

2.4. 安装胶囊服务器软件包

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

流程

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

  1. 更新所有软件包:

    # yum update
  2. 安装 satellite-capsule 软件包:

    # yum install satellite-capsule

2.5. 使用 chronyd 同步系统时钟

要最小化时间偏差的效果,您必须在要安装带网络时间协议(NTP)服务器的基本操作系统上同步系统时钟。如果基本操作系统时钟配置不正确,证书验证可能会失败。

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

流程

  1. 安装 chrony 软件包:

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

    # systemctl start chronyd
    # systemctl enable chronyd

2.6. 使用 SSL 证书配置胶囊服务器

红帽卫星使用 SSL 证书实现卫星服务器、外部胶囊服务器和所有主机之间的加密通信。根据您的机构的要求,您必须为胶囊服务器配置默认或自定义证书。

2.7. 在卫星 Web UI 中将正确的组织和位置分配给胶囊服务器

安装胶囊服务器软件包后,如果有多个组织或位置,您必须将正确的组织和位置分配给胶囊,以便在卫星 Web UI 中可见胶囊。

流程

  1. 登录卫星 Web UI。
  2. 从屏幕左上角的 Organization 列表中,选择 Any Organization
  3. 从屏幕左上角的 Location 列表中,选择 Any Location
  4. 进入 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. 导航到 Administer > Organizations,再点击已分配给胶囊的组织。
  14. 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit
  15. 导航到 Administer > Locations,再点击已分配给胶囊的位置。
  16. 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit

验证

另外,您可以验证胶囊服务器是否在卫星 Web UI 中正确列出。

  1. Organization 列表中选择机构。
  2. Location 列表中选择位置。
  3. 进入 Hosts > All Hosts
  4. 导航到 Infrastructure > Capsules

红帽卫星使用 SSL 证书实现卫星服务器、外部胶囊服务器和所有主机之间的加密通信。根据您的机构的要求,您必须为胶囊服务器配置默认或自定义证书。

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

使用本节,为胶囊服务器配置由卫星服务器默认证书颁发机构(CA)签名的 SSL 证书。

先决条件

流程

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

    # mkdir /root/capsule_cert
  2. 在 Satellite 服务器上,为您的 Capsule 服务器生成 /root/capsule_cert/prompt.example.com-certs.tar 证书存档:

    # capsule-certs-generate \
    --foreman-proxy-fqdn capsule.example.com \
    --certs-tar /root/capsule_cert/capsule.example.com-certs.tar

    保留 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 "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \
    --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \
    --puppet-server-foreman-url "https://satellite.example.com"

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

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

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

    重要

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

2.7.2. 使用自定义 SSL 证书配置胶囊服务器

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

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

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

在卫星服务器上,为您的胶囊服务器创建自定义证书。如果您已经有适用于胶囊服务器的自定义 SSL 证书,请跳过这个过程。

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

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

流程

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

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

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

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

    # openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096
  3. 为证书签名请求(CSR)创建 /root/capsule_cert/openssl.cnf 配置文件,并包含以下内容:

    [ req ]
    req_extensions = v3_req
    distinguished_name = req_distinguished_name
    x509_extensions = usr_cert
    prompt = no
    
    [ req_distinguished_name ] 1
    C  = Country Name (2 letter code)
    ST = State or Province Name (full name)
    L  = Locality Name (eg, city)
    O  = Organization Name (eg, company)
    OU = The division of your organization handling the certificate
    CN = capsule.example.com 2
    
    [ v3_req ]
    basicConstraints = CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    subjectAltName = @alt_names
    
    [ usr_cert ]
    basicConstraints=CA:FALSE
    nsCertType = client, server, email
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection
    nsComment = "OpenSSL Generated Certificate"
    subjectKeyIdentifier=hash
    authorityKeyIdentifier=keyid,issuer
    
    [ alt_names ]
    DNS.1 = capsule.example.com 3
    1
    [ req_distinguished_name ] 部分中,输入有关您的机构的信息。
    2
    将证书的通用名称 CN 设置为与胶囊服务器的完全限定域名(FQDN)或通配符值 * 匹配。若要确认 FQDN,请在该胶囊服务器上输入 hostname -f 命令。这需要确保 katello-certs-check 命令正确验证证书。如果设置了通配符值,在使用 katello-certs-check 命令时添加 -t capsule 选项。
    3
    将 Subject Alternative Name (SAN) DNS.1 设置为与您的服务器的完全限定域名(FQDN)匹配。
  4. 生成证书签名请求(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
    1
    私钥的路径。
    2
    到配置文件的路径。
    3
    要生成的 CSR 的路径。
  5. 将证书签名请求发送到证书颁发机构。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。

    提交请求时,指定证书的 lifespan。发送证书请求的方法会有所不同,因此请查阅证书颁发机构来获得首选方法。为响应请求,预计可在单独的文件中接收证书颁发机构捆绑包和签名证书。

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

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

先决条件

流程

  1. 在卫星服务器上,验证自定义 SSL 证书输入文件:

    # katello-certs-check \
    -t capsule -c /root/capsule_cert/capsule_cert.pem \      1
    -k /root/capsule_cert/capsule_cert_key.pem \  2
    -b /root/capsule_cert/ca_cert_bundle.pem      3
    1
    证书颁发机构签名的胶囊服务器证书文件的路径。
    2
    用于为胶囊服务器证书签名的私钥的路径。
    3
    证书颁发机构捆绑包的路径。

    如果您在 /root/capsule_cert/openssl.cnf 配置文件中为证书的通用名称 CN = 设置了通配符值 *,您必须将 -t capsule 选项添加到 katello-certs-check 命令中。

    如果命令成功,它会返回两个 capsule-certs-generate 命令,其中一个命令必须用来为您的胶囊服务器生成证书存档文件。

    要在 new-capsule.example.com 中使用证书,请运行以下命令:

    capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \
        --certs-tar  "~/$CAPSULE-certs.tar" \
        --server-cert "/root/capsule_cert/capsule_cert.pem" \
        --server-key "/root/capsule_cert/capsule_cert_key.pem" \
        --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \

    要使用 existing-capsule.example.com 内的证书,请运行以下命令:

      capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \
        --certs-tar "~/$CAPSULE-certs.tar" \
        --server-cert "/root/capsule_cert/capsule_cert.pem" \
        --server-key "/root/capsule_cert/capsule_cert_key.pem" \
        --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \
        --certs-update-server

  2. 根据您的要求,在卫星服务器中输入为新的或现有 胶囊生成证书的 Capsule-certs-generate 命令。在某些情况下,katello-certs-check 命令的输出可能并不准确。因此,您必须遵循上述步骤,而不是命令输出。

    在这个命令中,将 $CAPSULE 更改为您的胶囊服务器的 FQDN。

  3. 保留 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 "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \
    --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \
    --puppet-server-foreman-url "https://satellite.example.com"

  4. 在卫星服务器上,将证书归档文件复制到您的胶囊服务器中:

    # scp /root/capsule_cert/capsule.example.com-certs.tar \
    root@capsule.example.com:/root/capsule.example.com-certs.tar
  5. 在胶囊服务器上,要部署证书,请输入 capsule-certs-generate 命令返回的 satellite-installer 命令。

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

    重要

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

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

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

流程

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

    # yum localinstall \
    http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm

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

使用本章在胶囊服务器上配置其他设置。

3.1. 在外部胶囊上启用 Katello Agent

远程执行是管理内容主机上软件包的主要方法。要使用已弃用的 Katello Agent,必须在每个胶囊上启用它。

流程

  • 要启用 Katello Agent 基础架构,请输入以下命令:

    # satellite-installer --scenario capsule \
    --foreman-proxy-content-enable-katello-agent=true

3.2. 在外部胶囊上启用 OpenSCAP

在卫星服务器和卫星服务器的集成胶囊上,默认启用 OpenSCAP。

要在外部胶囊上使用 OpenSCAP 插件和内容,您必须在每个胶囊上启用 OpenSCAP。

流程

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

    # satellite-installer --scenario capsule \
    --enable-foreman-proxy-plugin-openscap

3.3. 在胶囊服务器中添加生命周期环境

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

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

您可以在卫星服务器或卫星 Web UI 中使用 Hammer CLI。

流程

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

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

CLI 过程

  1. 要显示所有胶囊服务器列表(在 Satellite 服务器中),请输入以下命令:

    # hammer capsule list

    请注意您要向其添加生命周期的胶囊胶囊 ID。

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

    # hammer capsule info --id capsule_id
  3. 要查看您的胶囊服务器可用的生命周期环境,请输入以下命令并记录 ID 和机构名称:

    # hammer capsule content available-lifecycle-environments --id capsule_id
  4. 在您的胶囊服务器中添加生命周期环境:

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id --organization "My_Organization" \
    --lifecycle-environment-id lifecycle-environment_id

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

  5. 将内容从卫星同步到胶囊。

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

      # hammer capsule content synchronize --id capsule_id
    • 要将 Satellite Server 中的特定生命周期环境同步到胶囊服务器,请输入以下命令:

      # hammer capsule content synchronize --id external_capsule_id \
      --lifecycle-environment-id lifecycle-environment_id

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

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

先决条件

流程

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

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

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

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

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

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

添加多主页 DHCP 详情

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

先决条件

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

流程

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

    # satellite-installer --scenario capsule \
    --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

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

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

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

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

您可以使用外部 DNS 配置胶囊服务器。胶囊服务器使用 nsupdate 实用程序更新远程服务器上的 DNS 记录。

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

先决条件

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

流程

  1. 解锁软件包以启用新软件包的安装:

    # satellite-maintain packages unlock
  2. 安装 BIND 和实用程序软件包:

    # yum install bind bind-utils
  3. 锁定软件包:

    # satellite-maintain packages lock
  4. /etc/rndc.key 文件从外部 DNS 服务器复制到胶囊服务器:

    # scp root@dns.example.com:/etc/rndc.key /etc/rndc.key
  5. 配置所有权、权限和 SELinux 上下文:

    # restorecon -v /etc/rndc.key
    # chown -v root:named /etc/rndc.key
    # chmod -v 640 /etc/rndc.key
  6. 要测试 nsupdate 工具,请远程添加主机:

    # echo -e "server DNS_IP_Address\n \
    update add aaa.virtual.lan 3600 IN A Host_IP_Address\n \
    send\n" | nsupdate -k /etc/rndc.key
    # nslookup aaa.virtual.lan DNS_IP_Address
    # echo -e "server DNS_IP_Address\n \
    update delete aaa.virtual.lan 3600 IN A Host_IP_Address\n \
    send\n" | nsupdate -k /etc/rndc.key
  7. 手动将 foreman-proxy 用户分配给 指定组。通常,satellite-installer 可确保 foreman-proxy 用户属于指定的 UNIX 组,但是在这种情况下,卫星不管理用户和组,因此您需要将 foreman-proxy 用户手动分配给指定组。

    # usermod -a -G named foreman-proxy
  8. 输入 satellite-installer 命令,对 /etc/foreman-proxy/settings.d/dns.yml 文件进行以下持久更改:

    # satellite-installer --foreman-proxy-dns=true \
    --foreman-proxy-dns-managed=false \
    --foreman-proxy-dns-provider=nsupdate \
    --foreman-proxy-dns-server="DNS_IP_Address" \
    --foreman-proxy-keyfile=/etc/rndc.key \
    --foreman-proxy-dns-ttl=86400
  9. 重启 foreman-proxy 服务:

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

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

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

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

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

注意

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

流程

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

    # yum install dhcp bind
  2. 生成安全令牌:

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

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

  3. 从密钥复制 secret 哈希:

    # cat Komapi_key.+*.private |grep ^Key|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 服务的卫星或胶囊 IP 地址。

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

    要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在卫星 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 服务器上,使用与上一步中确定相同的 ID 创建 foreman 用户和组:

    # 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 start dhcpd
  12. 使用 NFS 导出 DHCP 配置和租期文件:

    # yum install nfs-utils
    # systemctl enable rpcbind nfs-server
    # systemctl start rpcbind nfs-server nfs-lock nfs-idmapd
  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 地址是卫星或胶囊 IP 地址,您要用于外部 DHCP 服务。

  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 工具:

    # yum 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. 重启 foreman-proxy 服务:

    # systemctl restart foreman-proxy
  10. 登录卫星服务器 Web UI。
  11. 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh
  12. 将 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. 登录卫星服务器 Web UI。
  7. 导航到 Infrastructure > Capsules,找到胶囊服务器,然后从 Actions 列中的列表中,选择 Refresh
  8. 将 TFTP 服务与适当的子网和域关联。

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

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

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

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

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

注意

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

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

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

先决条件

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

流程

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

在 IdM 服务器中创建 Kerberos 主体

  1. 为从 IdM 管理员获取的帐户获取了一个 Kerberos ticket:

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

    # ipa service-add capsule.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 文件,请将组和拥有者设置为 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. 启用 允许 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 服务的卫星或胶囊服务器

  1. 使用 satellite-installer 命令配置管理域的 DNS 服务的 Satellite 或 Capsule:

    • 在 Satellite 上输入以下命令:

      satellite-installer --scenario satellite \
      --foreman-proxy-dns=true \
      --foreman-proxy-dns-managed=true \
      --foreman-proxy-dns-provider=nsupdate_gss \
      --foreman-proxy-dns-server="idm1.example.com" \
      --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \
      --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab \
      --foreman-proxy-dns-reverse="55.168.192.in-addr.arpa" \
      --foreman-proxy-dns-zone=example.com \
      --foreman-proxy-dns-ttl=86400
    • 在 Capsule 上输入以下命令:

      satellite-installer --scenario capsule \
      --foreman-proxy-dns=true \
      --foreman-proxy-dns-managed=true \
      --foreman-proxy-dns-provider=nsupdate_gss \
      --foreman-proxy-dns-server="idm1.example.com" \
      --foreman-proxy-dns-tsig-principal="capsule/satellite.example.com@EXAMPLE.COM" \
      --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab \
      --foreman-proxy-dns-reverse="55.168.192.in-addr.arpa" \
      --foreman-proxy-dns-zone=example.com \
      --foreman-proxy-dns-ttl=86400
  2. 重启 Satellite 或 Capsule 的 Proxy 服务。

    # systemctl restart foreman-proxy

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

在卫星 Web UI 中更新配置

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

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

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

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

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

先决条件

  • 您必须确保部署 IdM 服务器,且正确配置了基于主机的防火墙。有关更多信息,请参阅 Linux 域身份、身份验证和策略指南中的 端口要求
  • 您必须在 IdM 服务器中获取 root 用户访问权限。
  • 您必须确认卫星服务器或胶囊服务器是否已配置为为您的部署提供 DNS 服务。
  • 您必须在管理部署的 DNS 服务 Satellite 或 Capsule 基础操作系统上配置 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. 重新载入 命名的 服务以使更改生效:

    # 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 服务器中,输入以下 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. 确保 Satellite Server 中的 /etc/rndc.key 文件中的键是 IdM 服务器中使用的相同密钥文件:

    key "rndc-key" {
            algorithm hmac-md5;
            secret "secret-key==";
    };
  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
  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 > 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 服务

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

流程

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

将卫星或胶囊配置为 DNS 服务器

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

    # satellite-installer
  • 如果您对应答文件有合适的备份,请现在创建应答文件的备份。要在不使用应答文件的情况下将 Satellite 或 Capsule 配置为 DNS 服务器,请在 Satellite 上输入以下 satellite-installer 命令以及每个受影响的胶囊:

    # satellite-installer \
    --foreman-proxy-dns=true \
    --foreman-proxy-dns-managed=true \
    --foreman-proxy-dns-provider=nsupdate \
    --foreman-proxy-dns-server="127.0.0.1"  \
    --foreman-proxy-dns-tsig-principal="foremanproxy/satellite.example.com@EXAMPLE.COM" \
    --foreman-proxy-dns-tsig-keytab=/etc/foreman-proxy/dns.keytab

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

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

在卫星 Web UI 中更新配置

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

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

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

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

卫星服务器支持的最大胶囊服务器数量没有固定限制。测试的限制是具有 Red Hat Enterprise Linux 7 的卫星服务器上 2 个 vCPU 的 17 个胶囊服务器。但是,可扩展性高度变量,特别是管理 Puppet 客户端时。

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

例如,假设 Puppet 代理运行均匀分布在运行期间任何单一点上达 100 个并发 Puppet 代理,则具有 4 个 CPU 的胶囊服务器最多可分配 1250-1600 Puppet 客户端,并且为每个 Puppet 客户端分配 10 个 Puppet 类。根据所需的 Puppet 客户端数量,卫星安装可以横向扩展胶囊服务器的数量来支持它们。

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

  • 没有外部 Puppet 客户端直接报告卫星 6 集成的胶囊。
  • 所有其他 Puppet 客户端都直接报告到外部胶囊。
  • 所有 Puppet 代理都有平均分布式运行时间隔。
注意

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

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

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

1

3000-2500

10

2400-2000

20

1700-1400

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

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

1

1700-1450

10

1500-1250

20

850-700

法律通告

Copyright © 2023 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.