使用 RHUI 注册 Red Hat Enterprise Linux 客户端

如果您是直接运行 Red Hat Enterprise Linux 客户端而不是使用 SUSE Linux Enterprise Server with Expanded Support 来运行,则需要使用 Red Hat 来源检索并更新软件包。

本节包含有关使用 Red Hat 更新基础结构 (RHUI) 注册运行 Red Hat Enterprise Linux 操作系统的传统客户端和 Salt 客户端的信息。

传统客户端仅适用于 Red Hat Enterprise Linux 7。当 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9 客户端为 Salt 客户端时才受支持。

如果您是在公有云(例如 Amazon EC2)中运行客户端,请使用此方法。

可以将 RHUI 与 Red Hat 内容分发网络 (CDN) 搭配使用来管理您的 Red Hat Enterprise Linux 订阅。有关使用 Red Hat CDN 的信息,请参见 使用 CDN 注册 Red Hat Enterprise Linux 客户端

Red Hat Enterprise Linux 客户端基于 Red Hat,与 SUSE Linux Enterprise Server with Expanded Support、RES 或 SUSE Linux Enterprise Server 不相关。

您需负责将 SUSE Manager 服务器连接到 Red Hat 更新基础结构。所有使用此 RHUI 证书进行更新的客户端都需要获得正确许可,有关详细信息,请咨询您的云服务提供商,并查看服务的 Red Hat 条款。

当使用 RHUI 注册的 Red Hat Enterprise Linux 客户端关闭时,Red Hat 可能会声称证书无效。在此情况下,您需要再次打开客户端,或获取新的 RHUI 证书。

1. 导入权利和证书

Red Hat 客户端需要 Red Hat 证书颁发机构 (CA) 和权利证书以及权利密钥。

Red Hat 客户端使用 URL 来复制储存库。URL 更改取决于 Red Hat 客户端是在何处注册的。

Red Hat 客户端可通过三种方式注册:

  • redhat.com 上的 Red Hat 内容分发网络 (CDN)

  • Red Hat 从属服务器

  • 云中的 Red Hat 更新基础结构 (RHUI)

本指南将介绍注册到 Red Hat 更新基础结构 (RHUI) 的客户端。您至少须有一个注册到 RHUI 的系统并拥有授权订阅,以获得储存库内容。

而有关使用 Red Hat 内容分发网络 (CDN) 的信息,请参见 使用 CDN 注册 Red Hat Enterprise Linux 客户端

要为客户端系统使用从属证书,必须有从属服务器和订阅。SUSE Manager 服务器不支持使用从属证书的客户端。

需要将客户端系统中的权利证书和密钥复制到网页浏览器可访问的位置。

密钥和证书的名称可能与此处所示的名称略有不同。您的权利证书和 Red Hat CA 证书文件的文件扩展名为 .crt。密钥的文件扩展名为 .key

过程:将证书复制到服务器
  1. 将客户端系统中的权利证书和密钥复制到您的工作站:

    Amazon EC2
    cp /etc/pki/rhui/product/content-<version>.crt /<example>/entitlement/
    cp /etc/pki/rhui/content-<version>.key /<example>/entitlement/
    Azure
    • 使用以下命令检查证书链:

      openssl s_client -connect rhui-1.microsoft.com:443 -showcerts

      示例输出如下所示:

      CONNECTED(00000003)
      depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root G2
      verify return:1
      depth=1 C = US, O = Microsoft Corporation, CN = Microsoft Azure TLS Issuing CA 06
      verify return:1
      depth=0 C = US, ST = WA, L = Redmond, O = Microsoft Corporation, CN = rhui-1.microsoft.com
      verify return+
    • 检查第二个证书 (CN = Microsoft Azure),如果它与您虚拟机上的证书相同,请记下证书名称。请访问 https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/certificate-authorities 以下载该证书。单击 AIA 链接即可下载证书。下载的证书会包含 .cer 后缀。请运行以下命令将其转换为 .crt

      openssl x509 -inform DER -in <example.cer> -out <example.crt>
    Google Cloud Platform
    cp /etc/pki/rhui/product/content.crt /<example>/entitlement/
    cp /etc/pki/rhui/key.pem /<example>/entitlement/
  2. 将客户端系统中的 Red Hat CA 证书文件复制到权利证书和密钥所在的相同位置:

    Amazon EC2
    cp /etc/pki/rhui/cdn.redhat.com-chain.crt /<example>/entitlement
    Azure
    • 将转换后的证书上载到 /<example>/entitlement

    Google Cloud Platform
    cp /etc/pki/rhui/ca.crt /<example>/entitlement

要管理 Red Hat 客户端上的储存库,您需要将 CA 和权利证书导入 SUSE Manager 服务器。这需要您执行三次导入过程以创建相应的三项: 三项分别对应权利证书、权利密钥和 Red Hat 证书。

过程:将证书导入服务器
  1. 在 SUSE Manager 服务器 Web UI 上,导航到系统  自动安装  GPG 和 SSL 密钥

  2. 单击 创建储存的密钥/证书,并为权利证书设置下列参数:

    • 说明字段中,键入 Entitlement-Cert-Date

    • 类型字段中,选择 SSL

    • 选择要上载的文件字段中,浏览到您保存权利证书的位置,然后选择 .crt 证书文件。

  3. 单击 创建密钥

  4. 单击 创建储存的密钥/证书,并为权利密钥设置下列参数:

    • 说明字段中,键入 Entitlement-Key-Date

    • 类型字段中,选择 SSL

    • 选择要上载的文件字段中,浏览到您保存权利密钥的位置,然后选择 .key 密钥文件。

  5. 单击 创建密钥

  6. 单击 创建储存的密钥/证书,并为 Red Hat 证书设置下列参数:

    • 说明字段中,键入 redhat-cert

    • 类型字段中,选择 SSL

    • 选择要上载的文件字段中,浏览到您保存 Red Hat 证书的位置,然后选择证书文件。

  7. 单击 创建密钥

2. 添加软件通道

将 Red Hat 客户端注册到您的 SUSE Manager 服务器之前,您需要添加所需的软件通道,并同步这些通道。

下面的小节中的说明通常默认使用 x86_64 体系结构。请根据情况将其替换为其他体系结构。

拥有 SUSE Manager 订阅,您便能使用 SUSE Linux Enterprise Server with Expanded Support(也称为 Red Hat 扩展支持或 RES)的工具通道。必须使用客户端工具通道来创建引导储存库。此过程适用于 Salt 客户端和传统客户端。

此过程所需的产品包括:

Table 1. Red Hat 产品 - WebUI
操作系统版本 产品名称

Red Hat 9

RHEL 和 Liberty 9 Base

Red Hat 8

RHEL 或 SLES ES 或 CentOS 8 Base

Red Hat 7

RHEL7 Base x86_64

过程:添加软件通道
  1. 在 SUSE Manager Web UI 中,导航到管理  安装向导  产品

  2. 使用搜索栏找到适用于您的客户端操作系统和体系结构的产品,然后选中相应产品。这样会自动选中所有必需的通道。此外,建议的所有通道也将选中,并且包括建议项开关会打开。单击箭头以查看相关产品的完整列表,确保您需要的所有额外产品都已选中。

  3. 单击 添加产品 并等待产品完成同步。

AppStream 储存库会提供模块化软件包。这会导致 SUSE Manager Web UI 中显示不正确的软件包信息。您无法使用 Web UI 或 API 直接从模块化储存库执行安装或升级等软件包操作。

或者,您可以使用 Salt 状态管理 Salt 客户端上的模块化软件包,或在客户端上使用 dnf 命令。有关 CLM 的详细信息,请参见 内容生命周期管理

要使用 RHUI,需要将所需的 HTTP 标头手动添加到配置文件。没有这些标头,将无法成功执行客户端同步。

过程:将 HTTP 标头添加到配置文件
  1. 从您的 RHUI 实例中找到 X-RHUI-IDX-RHUI-SIGNATURE HTTP 标头。 您可以在 Red Hat 客户端上使用以下命令从 169.254.169.254 处的云实例元数据 API 中获得值:

    echo "X-RHUI-ID=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document|base64|tr -d '\n')"
    echo "X-RHUI-SIGNATURE=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/signature|base64|tr -d '\n')"
  2. 打开 /etc/rhn/spacewalk-repo-sync/extra_headers.conf 配置文件,使用正确信息添加或编辑下面几行:

    [<channel_label_1>]
    X-RHUI-ID=<value>
    X-RHUI-SIGNATURE=<value>
    
    [<channel_label_2>]
    X-RHUI-ID=<value>
    X-RHUI-SIGNATURE=<value>
  3. 将上面的 <channel_label_X> 替换为您打算创建的自定义通道的名称(请参见下节):

    [rhel8-baseos-repo]
    X-RHUI-ID=...
    X-RHUI-SIGNATURE=...

    Red Hat Enterprise Linux 可以随时续订这些标头。如果要续订,请重复该过程来添加新 HTTP 标头。

3. 准备自定义储存库和通道

要从 RHUI 镜像软件,您需要在 SUSE Manager 中创建自定义通道和储存库,它们都将通过 URL 链接到 RHUI。您必须在 Red Hat 门户中拥有这些产品的权利,此功能才能正常工作。可以使用 yum 实用程序获得要镜像的储存库的 URL:

yum repolist -v | grep baseurl

可以使用这些储存库 URL 来创建自定义储存库。这样您便可只镜像管理客户端所需的内容。

如果您在 Red Hat 门户中拥有正确的权利,就可以只创建 Red Hat 储存库的自定义版本。

此过程所需的细节包括:

Table 2. Red Hat 自定义储存库设置
选项 设置

储存库 URL

RHUI 提供的内容 URL

包含已签名的元数据?

取消选中所有 Red Hat Enterprise 储存库

SSL CA 证书

redhat-cert

SSL 客户端证书

Entitlement-Cert-Date

SSL 客户端密钥

Entitlement-Key-Date

过程:创建自定义储存库
  1. 在 SUSE Manager 服务器 Web UI 上,导航到软件  管理  储存库

  2. 单击 创建储存库,然后为储存库设置适当的参数。

  3. 单击 创建储存库

  4. 对需要创建的所有储存库重复以上步骤。

此过程所需的通道包括:

Table 3. Red Hat 自定义通道
操作系统版本 基础产品 基础通道

Red Hat 9

RHEL 和 Liberty 9 Base

el9-pool-x86_64

Red Hat 8

RHEL 或 SLES ES 或 CentOS 8 Base

rhel8-pool-x86_64

Red Hat 7

RHEL7 Base x86_64

rhel7-pool-x86_64

过程:创建自定义通道
  1. 在 SUSE Manager 服务器 Web UI 上,导航到软件  管理  通道

  2. 单击 创建通道,然后为通道设置相应的参数。

  3. 父通道字段中,选择相应的基础通道。

  4. 单击 创建通道

  5. 对需要创建的所有通道重复以上步骤。每个自定义储存库都应该有一个自定义通道。

您可以导航到软件  通道列表  所有,以检查是否已创建所有相应的通道和储存库。

对于 Red Hat 8 客户端,请添加基础通道和 AppStream 通道。您需要来自这两个通道的软件包。如果未添加这两个通道,将会因缺少软件包而无法创建引导储存库。

创建所有通道之后,可以将其与您创建的储存库关联:

过程:将通道与储存库关联
  1. 在 SUSE Manager 服务器 Web UI 上,导航到软件  管理  通道,然后单击要关联的通道。

  2. 导航到储存库选项卡,然后选中要与此通道关联的储存库。

  3. 单击 更新储存库 以将通道与储存库相关联。

  4. 对需要关联的所有通道和储存库重复以上步骤。

  5. 可选:导航到同步选项卡,为此储存库设置定期同步日程安排。

  6. 单击 立即同步 以立即开始同步。

4. 检查同步状态

过程:在 Web UI 中检查同步进度
  1. 在 SUSE Manager Web UI 中,导航到管理  安装向导,然后选择产品选项卡。当同步产品时,此对话框会为每个产品显示一个完成栏。

  2. 或者,您可以导航到软件  管理  通道,然后单击与该储存库关联的通道。导航到储存库选项卡,然后单击同步并选中同步状态

过程:在命令提示符处检查同步进度
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份使用 tail 命令检查同步日志文件:

    tail -f /var/log/rhn/reposync/<channel-label>.log
  2. 每个子通道在同步过程中都会生成自己的日志。 您需要检查所有基础通道和子通道日志文件,以确保同步已完成。

Red Hat Enterprise Linux 通道可能会非常大。同步所需的时间可能会长达数小时。

5. 管理 GPG 密钥

安装软件包之前,客户端会使用 GPG 密钥检查这些软件包的真实性。只有可信软件才能安装在客户端上。

信任 GPG 密钥对于客户端的安全非常重要。由管理员来决定需要哪些密钥,可以信任哪些密钥。这是因为如果不信任 GPG 密钥,便无法使用软件通道,是否将通道指派给客户端取决于是否信任密钥。

有关 GPG 密钥的详细信息,请参见 GPG 密钥

6. 注册客户端

要注册您的客户端,需要有引导储存库。默认会自动创建引导储存库,并且每天会为所有同步的产品重新生成该储存库。您可以在命令提示符处使用以下命令手动创建引导储存库:

mgr-create-bootstrap-repo

有关注册客户端的详细信息,请参见 客户端注册