1.2. RHUI 4 组件
了解每个 RHUI 组件如何与其他组件交互,从而使您的作业成为系统管理员的过程比较简单。
1.2.1. Red Hat Update Appliance
每个 RHUI 安装有一个 RHUA,但在许多云环境中,每个地区或数据中心都会有一个 RHUI 安装,例如 Amazon 的 EC2 云包含多个区域。在每个地区,每个地区都有一个带有其自身 RHUA 节点的独立 RHUI。
RHUA 允许您执行以下任务:
- 从红帽内容交付网络(CDN)下载新软件包。RHUA 是连接到红帽的唯一 RHUI 组件,您可以为 RHUA 配置同步计划。
- 将新软件包复制到共享网络存储。
- 验证 RHUI 安装的健康状况,并将结果写入位于 RHUA 的文件。监控解决方案使用此文件来确定 RHUI 安装的健康状态。
- 通过 CLI 工具提供对 RHUI 安装健康状态的人类可读视图。
RHUI 使用两个主要配置文件: /etc/rhui/rhui-tools.conf
和 /etc/rhui/rhui-subscription-sync.conf
。
/etc/rhui/rhui-tools.conf
配置文件包含 RHUA 使用的常规选项,如证书的默认文件位置,以及 Red Hat CDN 同步的默认配置参数。通常这个文件不需要编辑。
Red Hat Update Infrastructure Management Tool 根据用户输入的值生成 /etc/rhui/rhui-subscription-sync.conf
配置文件。它包含驱动在特定地区运行 RHUA 的所有信息。示例配置包括 RHUA 上用于下载软件包的目的地。
RHUA 使用几个服务来同步、组织和分发内容,以便轻松交付。
RHUA 服务
- Pulp
- 监督支持服务管理的服务,为用户提供与交互的用户接口
- PostgreSQL
- 用于跟踪当前同步的存储库、软件包和其他关键元数据的 PostgreSQL 数据库。
1.2.2. 内容交付服务器
CDS 节点提供客户端连接的仓库以获取更新的内容。可以有多个 CDS。因为 RHUI 提供了一个带有故障切换功能的负载平衡器,因此建议您使用多个 CDS 节点。
CDS 节点托管到最终用户 RHEL 系统的内容。虽然不需要的系统数量,CDS 会以轮循风格的负载均衡方式(A、B、C、A、B、C)将内容提供给最终用户系统。CDS 通过基于 httpd 的 yum
软件仓库使用 HTTP 托管内容到最终用户系统。
在配置期间,您可以指定同步软件包的 CDS 目录。与 RHUA 类似,唯一的要求是您挂载 CDS 上的 目录。最多是云提供商,决定在分配所需设备时的最佳操作方法。Red Hat Update Infrastructure Management Tool 配置 RPM 将 package 目录与 NGINX 配置相关联,以便为它提供服务。
目前,RHUI 支持以下共享存储解决方案:
- NFS
如果使用 NFS,
rhui-installer
可以配置 RHUA 上的 NFS 共享,以存储内容以及 CDS 节点上的目录以挂载 NFS 共享。以下rhui-installer
选项控制这些设置:-
--remote-fs-mountpoint
是应挂载远程文件系统共享的文件系统位置(默认为/var/lib/rhui/remote_share
) -
--remote-fs-server
是要使用的共享文件系统的远程挂载点,例如nfs.example.com:/path/to/share
(默认:nfs.example.com:/export
)
-
- CephFS
如果使用 CephFS,则必须单独配置 CephFS,然后将它用于 RHUI 作为挂载点。以下
rhui-installer
选项控制这些设置:-
--remote-fs-server
是要使用的共享文件系统的远程挂载点,例如ceph.example.com:/path/to/share
(默认:ceph.example.com:/export
)
-
本文档不提供设置或配置 Ceph 共享文件存储的说明。有关任何与 Ceph 相关的任务,请查阅系统管理员或查看 Ceph 文档。
如果使用这些默认值,则 RHUA 上的 /export
目录以及每个 CDS 上的 /var/lib/rhui/remote_share
目录相同。
预期的用法是您在 RHUA 和所有 CDS 节点上使用一个共享的网络文件系统,例如 NFS。云供应商可能会使用某种形式的共享存储,其中 RHUA 将软件包写入以及每个 CDS 读取内容。
存储解决方案必须提供 NFS 或 CephFS 端点,以便在 RHUA 和 CDS 节点上挂载。如果实施了本地存储,则需要共享存储让集群正常工作。如果要向 RHUA 提供本地存储,请将 RHUA 配置为 NFS 服务器,并配置了 rhua.example.com:/path/to/nfs/share
端点。
不要在任何 RHUI 节点上设置 Ceph 共享存储。您必须在独立专用机器上配置 CephFS。
每个 CDS 唯一采用的非标准逻辑是权利证书检查。此检查可确保客户在 yum
存储库上发出请求,由云供应商访问这些存储库。检查可确保以下条件:
- 授权证书由云供应商的证书颁发机构(CA)证书签名。CA 证书安装在 CDS 中,作为其配置的一部分,以方便这个验证。
- 请求的 URI 与在客户端授权证书中找到的授权匹配。
如果 CA 验证失败,客户端会看到 SSL 错误。如需更多信息,请参阅 /var/log/nginx/
下的 CDS 节点的 NGINX 日志。
[root@cds01 ~]# ls -1 /var/log/nginx/ access.log error.log gunicorn-auth.log gunicorn-content_manager.log gunicorn-mirror.log ssl-access.log----
在 CDS 安装过程中,NGINX 配置通过 /etc/nginx/conf.d/ssl.conf
文件进行处理。
如果多个客户端遇到与库进行更新的问题,这可能表示 RHUI 存在问题。如需更多详细信息,请参阅 Yum 生成 'Errno 14 HTTP Error 401: Authorization Required'。
1.2.3. HAProxy 负载均衡器
如果使用多个 CDS,则必须存在负载平衡解决方案,才能在所有服务器间分布客户端 HTTPS 请求。RHUI 附带 HAProxy,但最好选择在安装过程中要使用的负载平衡解决方案(例如,云提供商中的一个)。如果使用 HAProxy,还必须决定要进行多少个节点。
客户端不配置为直接进入 CDS;其存储库文件配置为指向 HAProxy,RHUI 负载平衡器。HAProxy 是 TCP/HTTP 反向代理,特别是适用于高可用性环境。HAProxy 执行以下任务:
- 根据静态分配的 Cookie 路由 HTTP 请求
- 在通过 HTTP cookies 时将负载分散到多个服务器持久性中
- 交换机在主服务器失败时备份服务器
- 接受与专用于服务监控的特殊端口的连接
- 停止接受连接,而不破坏现有连接
- 添加、修改和删除两个方向中的 HTTP 标头
- 阻塞与特定模式匹配的请求
- 根据应用 Cookie 持久化客户端连接到正确的应用服务器
- 从应用程序截屏的 URI 中报告为经过身份验证的用户的 HTML 页面
如果您使用现有的 load-balancer,请确保在 cds-lb-hostname
的负载均衡器中配置了端口 443,并且集群中所有 CDS 都位于负载均衡器的池中。
具体的配置取决于您所使用的特定负载均衡器软件。查看从典型的 HAProxy 设置中获取的以下配置,以了解您应该如何配置您的负载均衡器:
[root@rhui4proxy ~]# cat /etc/haproxy/haproxy.cfg # This file managed by Puppet global chroot /var/lib/haproxy daemon group haproxy log 10.10.153.149 local0 maxconn 4000 pidfile /run/haproxy.pid stats socket /var/lib/haproxy/stats user haproxy defaults log global maxconn 8000 option redispatch retries 3 stats enable timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen https00 bind 10.10.153.149:443 balance roundrobin option tcplog option tcp-check server cds01.example.com cds01.example.com:443 check server cds02.example.com cds02.example.com:443 check
请记住,当客户端无法连接时,务必要查看 /var/log/
下的 CDS 中的 nginx 日志,以确保任何请求到达 CDS。如果请求没有到达 CDS,则 DNS 或一般网络连接等问题可能处于故障。
nginx
/
1.2.4. 仓库和内容
存储库是软件包(RPMs)的存储位置。RHEL 使用 yum
命令来搜索存储库、下载、安装和配置 RPM。RPM 包含运行应用程序所需的所有依赖项。RPM 还会下载您的仓库中的软件更新。
RHEL 使用核心技术,如用于资源管理的控制组(cgroups)、用于进程隔离的命名空间以及用于安全性的 SELinux,启用安全多个租期,并减少了安全漏洞的可能性。这些技术可在提高安全性的同时,实现快速部署、更简单的测试、维护和故障排除。
内容与 RHUI 相关,就是您从红帽 CDN 下载的软件(如 RPM),以用于 RHUA 和 CDS 节点。RPM 提供运行特定应用程序和工具所需的文件。客户端是由 rpm 软件包提供的一组 SSL 内容证书和密钥授予访问权限,它还提供一组生成的 yum
存储库文件。