注册 CentOS 客户端

本节包含有关注册运行 CentOS 操作系统的传统客户端和 Salt 客户端的信息。

CentOS 客户端基于 CentOS,与 SUSE Linux Enterprise Server with Expanded Support、RES、Red Hat 或 Expanded Support 不相关。您需负责安排对 CentOS 基础媒体储存库和 CentOS 安装媒体的访问权限,以及将 SUSE Manager 服务器连接到 CentOS 内容分发网络。

我们已使用针对性策略并采用默认的 enforcing SELinux 配置对将 CentOS 客户端注册到 SUSE Manager 的过程进行了测试。将 CentOS 客户端注册到 SUSE Manager 时,您无需禁用 SELinux。

1. 添加软件通道

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

当前支持的系统结构为 x86_64aarch64。有关支持的产品和体系结构的完整列表,请参见 支持的客户端和功能

例如,使用 x86_64 体系结构时,您需要如下产品:

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

CentOS 6

CentOS 6 x86_64

CentOS 7

CentOS 7 x86_64

CentOS 6 的生命周期现已结束,储存库中提供的 ISO 映像已过时。使用这些软件包引导新的 CentOS 6 客户端将会失败。如果您需要引导新的 CentOS 6 客户端,请按照 对客户端查错 中的查错过程操作。

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

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

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

或者,您也可以在命令提示符处添加通道。此过程所需的通道包括:

Table 2. CentOS 通道 - CLI
操作系统版本 基础通道

CentOS 6

centos6-x86_64

CentOS 7

centos7-x86_64

CentOS 6 的生命周期现已结束,储存库中提供的 ISO 映像已过时。使用这些软件包引导新的 CentOS 6 客户端将会失败。如果您需要引导新的 CentOS 6 客户端,请按照 对客户端查错 中的查错过程操作。

过程:在命令提示符下添加软件通道
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份使用 mgr-sync 命令添加相应的通道:

    mgr-sync add channel <channel_label_1>
    mgr-sync add channel <channel_label_2>
    mgr-sync add channel <channel_label_n>
  2. 同步会自动启动。如果您要手动同步通道,请使用以下命令:

    mgr-sync sync --with-children <channel_name>
  3. 确保同步已完成,然后再继续操作。

如果您使用的是模块化通道,则必须在客户端上启用 Python 3.6 模块流。如果不提供 Python 3.6,spacecmd 软件包安装将会失败。

您可能会发现 AppStream 通道中提供的软件包数量在上游通道和 SUSE Manager 通道之间存在一定的差异。如果您对在不同时间添加的同一通道进行比较,会发现其数量也不相同。这是由 CentOS 管理其储存库的方式所致。当有新版本发布时,CentOS 会去除软件包的较旧版本,而 SUSE Manager 则会保留所有版本,无论新旧与否。

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

您可以使用带内容生命周期管理 (CLM) 的 AppStream 过滤器将模块化储存库转换成常规储存库。如果要在客户端上使用 spacecmd,请务必使用 AppStream 过滤器包含 python:3.6

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

2. 检查同步状态

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

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

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

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

3. 创建激活密钥

您需要创建与您的 CentOS 通道关联的激活密钥。

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

4. 注册客户端

CentOS 客户端的注册方式与所有其他客户端的注册方式相同。有关详细信息,请参见 客户端注册概述

要注册和使用 CentOS 6 客户端,您需要配置 SUSE Manager 服务器以支持较旧类型的 SSL 加密。有关如何解决此错误的详细信息,请参见 对客户端查错 中的注册较旧的客户端

5. 管理勘误

当您更新 CentOS 客户端时,软件包不包含有关更新的元数据。您可以使用第三方勘误服务来获取此信息。

本文介绍的第三方勘误服务 CEFS 由社区提供和维护, 不受 SUSE 支持。

CEFS 的作者会按照尽力而为的原则提供补丁或勘误,希望它们有用,但无法保证其正确性或及时性。这意味着补丁日期可能不正确,且至少在一种情况下所显示的发布数据滞后一个多月。有关这些情况的详细信息,请参见 https://github.com/stevemeier/cefs/issues/28#issuecomment-656579382https://github.com/stevemeier/cefs/issues/28#issuecomment-656573607

任何有关补丁数据的问题或滞后都可能导致将不可靠的补丁信息导入到您的 SUSE Manager 服务器中, 进而导致报告、审计、CVE 更新或其他与补丁相关的信息也不正确。请考虑使用其他方案来替代此服务,例如独立校验补丁数据或选择其他操作系统,具体取决于您的安全相关要求和认证准则。

过程:安装勘误服务
  1. 在 SUSE Manager 服务器上的命令提示符处,以 root 身份添加 sle-module-development-tools 模块:

    SUSEConnect --product sle-module-development-tools/15.2/x86_64
  2. 安装勘误服务依赖项:

    zypper in  perl-Text-Unidecode
  3. /etc/rhn/rhn.conf 中添加或编辑下面一行:

    java.allow_adding_patches_via_api = centos7-updates-x86_64,centos7-x86_64,centos7-extras-x86_64
  4. 重启动 Tomcat:

    systemctl restart tomcat
  5. 为勘误脚本创建一个文件:

    touch /usr/local/bin/cent-errata.sh
  6. 编辑新文件以包含此脚本,并视需要编辑储存库细节。 此脚本会从外部勘误服务提取勘误细节,将其解压缩,然后发布这些细节:

    #!/bin/bash
    mkdir -p /usr/local/centos
    cd /usr/local/centos
    rm *.xml
    wget -c http://cefs.steve-meier.de/errata.latest.xml
    #wget -c https://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
    wget -c https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml.bz2
    bzip2 -d com.redhat.rhsa-RHEL7.xml.bz2
    wget -c http://cefs.steve-meier.de/errata-import.tar
    tar xvf errata-import.tar
    chmod +x /usr/local/centos/errata-import.pl
    export SPACEWALK_USER='<adminname>';export SPACEWALK_PASS='<password>'
    /usr/local/centos/errata-import.pl --server '<servername>' \
    --errata /usr/local/centos/errata.latest.xml  \
    --include-channels=centos7-updates-x86_64,centos7-x86_64,centos7-extras-x86_64 \
    --publish --rhsa-oval /usr/local/centos/com.redhat.rhsa-RHEL7.xml
  7. 设置 cron 作业以每日运行该脚本:

    ln -s /usr/local/bin/cent-errata.sh /etc/cron.daily

有关此工具的详细信息,请参见 https://cefs.steve-meier.de/