跳到内容
documentation.suse.com / RMT 指南
SUSE Linux Enterprise Server 15 SP3

储存库镜像工具指南

订阅管理工具管理员指南。订阅管理工具是用于 SUSE Customer Center 并包含储存库和注册目标的代理系统。

出版日期: 2023 年 12 月 11 日
表格清单

版权所有 © 2006–2023 SUSE LLC 和贡献者。保留所有权利。

根据 GNU 自由文档许可 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可附带不可变部分。许可版本 1.2 的副本包含在题为GNU Free Documentation License的部分。

有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。

本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。

前言

1 可用文档

联机文档

https://documentation.suse.com/#sles 上提供了此产品的相关联机文档。您可浏览或下载各种格式的文档。

https://documentation.suse.com/ 上提供了其他产品的相关联机文档。

注意
注意:最新更新

最新的文档更新通常会在文档的英文版中提供。

发行说明

有关发行说明,请参见 https://www.suse.com/releasenotes/

在您的系统中

要以脱机方式使用,请参见安装的系统中 /usr/share/doc 下的文档。许多命令的手册页中也对相应命令进行了详细说明。要查看手册页,请运行 man 后跟特定的命令名。如果系统上未安装 man 命令,请使用 sudo zypper install man 加以安装。

2 改进文档

欢迎您提供针对本文档的反馈及改进建议!我们提供了多种反馈渠道:

服务请求和支持

有关产品可用的服务和支持选项,请参见 https://www.suse.com/support/

要创建服务请求,需在 SUSE Customer Center 中获取一个订阅。请转到 https://scc.suse.com/support/requests 并登录,然后单击新建

Bug 报告

https://bugzilla.suse.com/ 中报告文档问题。要简化此过程,可以使用本文档 HTML 版本中的标题旁边的报告文档 Bug 链接。这样,就会在 Bugzilla 中预先选择正确的产品和类别,并添加当前章节的链接。然后,您便可以立即开始键入 Bug 报告。需要一个 Bugzilla 帐户。

贡献

要帮助改进本文档,请使用本文档 HTML 版本中的标题旁边的编辑源代码链接。这些链接会将您转到 GitHub 上的源代码,在其中可以创建拉取请求。需要一个 GitHub 帐户。

有关本文档使用的文档环境的详细信息,请参见储存库的 README

邮件

另外,您也可以将有关本文档中的错误以及相关反馈发送至:<>。请确保反馈中含有文档标题、产品版本和文档发布日期。请引用相关的章节号和标题(或者包含 URL),并提供问题的简要说明。

3 文档约定

本文档中使用了以下通知和排版约定:

  • /etc/passwd:目录名称和文件名

  • PLACEHOLDERPLACEHOLDER 将会替换为实际的值

  • PATH:环境变量 PATH

  • ls--help:命令、选项和参数

  • 用户:用户和组

  • 软件包名称 :软件包名称

  • AltAltF1:按键或组合键;这些键以大写形式显示,如在键盘上一样

  • 文件 文件 ›  另存为:菜单项,按钮

  • AMD/Intel 本段内容仅与 AMD64/Intel 64 体系结构相关。箭头标记文本块的开始位置和结束位置。

    IBM Z, POWER 本段内容仅与 IBM ZPOWER 体系结构相关。箭头标记文本块的开始位置和结束位置。

  • 跳舞的企鹅企鹅一章,↑其他手册):此内容参见自其他手册中的一章。

  • 必须使用 root 特权运行的命令。您往往还可以在这些命令前加上 sudo 命令,以非特权用户身份来运行它们。

    root # command
    tux > sudo command
  • 可以由非特权用户运行的命令。

    tux > command
  • 注意

    警告
    警告:警报通知

    在继续操作之前,您必须了解的不可或缺的信息。向您指出有关安全问题、潜在数据丢失、硬件损害或物理危害的警告。

    重要
    重要:重要通知

    在继续操作之前,您必须了解的重要信息。

    注意
    注意:注意通知

    额外信息,例如有关软件版本差异的信息。

    提示
    提示:提示通知

    有用信息,例如指导方针或实用性建议。

4 支持

下面提供了 SUSE Linux Enterprise Server 的支持声明和有关技术预览的一般信息。有关产品生命周期的细节,请参见Book “升级指南”, Chapter 2 “生命周期和支持”

如果您有权获享支持,可在Book “管理指南”, Chapter 39 “收集系统信息以供支持所用”中查找有关如何收集支持票据所需信息的细节。

4.1 SUSE Linux Enterprise Server 支持声明

要获得支持,您需要一个适当的 SUSE 订阅。要查看为您提供的具体支持服务,请转到 https://www.suse.com/support/ 并选择您的产品。

支持级别的定义如下:

L1

问题判定,该技术支持级别旨在提供兼容性信息、使用支持、持续维护、信息收集,以及使用可用文档进行基本查错。

L2

问题隔离,该技术支持级别旨在分析数据、重现客户问题、隔离问题领域,并针对级别 1 不能解决的问题提供解决方法,或作为级别 3 的准备级别。

L3

问题解决,该技术支持级别旨在借助工程方法解决级别 2 支持所确定的产品缺陷。

对于签约的客户与合作伙伴,SUSE Linux Enterprise Server 将为除以下软件包外的其他所有软件包提供 L3 支持:

  • 技术预览。

  • 声音、图形、字体和作品。

  • 需要额外客户合同的软件包。

  • 工作站扩展模块随附的某些软件包仅享受 L2 支持。

  • 名称以 -devel 结尾的软件包(包含头文件和类似的开发人员资源)只能同其主软件包一起接受支持。

SUSE 仅支持使用原始软件包,即,未发生更改且未重新编译的软件包。

4.2 技术预览

技术预览是 SUSE 提供的旨在让用户大致体验未来创新的各种软件包、堆栈或功能。随附这些预览只是为了提供方便,让您有机会在自己的环境中测试新的技术。非常希望您能提供反馈!如果您测试了技术预览,请联系 SUSE 代表,将您的体验和用例告知他们。您的反馈对于我们的未来开发非常有帮助。

但是,技术预览存在以下限制:

  • 技术预览仍处于开发阶段。因此,它们的功能可能不完备、不稳定,或者在其他方面适合用于生产。

  • 技术预览受支持。

  • 技术预览可能仅适用于特定的硬件体系结构。

  • 技术预览的细节和功能可能随时会发生变化。因此,可能无法升级到技术预览的后续版本,而只能进行全新安装。

  • 我们随时可能会放弃技术预览。例如,如果 SUSE 发现某个预览不符合客户或市场的需求,或者不能证明它符合企业标准,则可能会放弃该预览。SUSE 不承诺未来将提供此类技术的受支持版本。

有关产品随附的技术预览的概述,请参见 https://www.suse.com/releasenotes/ 上的发行说明。

1 概览

借助适用于 SUSE Linux Enterprise 15 SP3 的 Repository Mirroring Tool (RMT),企业客户可以优化 SUSE Linux Enterprise 软件更新和订阅权利的管理。该工具为 SUSE® Customer Center 建立了一个包含储存库和注册目标的代理系统。这有助于您按系统在防火墙内集中管理软件更新,同时维护您的公司安全策略和监管合规性。

RMT 可让您为运行基于 SUSE Linux Enterprise 的产品的所有设备提供更新。通过只下载一次这些更新并将其分发到整个企业,您可以设置更严格的防火墙策略。这样还能减少带宽的使用,因为无需为每台设备下载相同的更新。RMT 受到完全支持,可供具有 SUSE Linux Enterprise 产品有效订阅的客户下载。

Repository Mirroring Tool 提供在许多情况下都十分有用的功能,这些情况包括:

  • 需要更新 SUSE Linux Enterprise 服务器时。

  • 出于带宽或安全原因,您环境中的部分计算机无法连接到 SUSE Customer Center 来注册和检索更新时。

  • 有些 SUSE Linux Enterprise 主机受到限制,若无自定义更新管理解决方案便难以更新时。

  • 需要集成额外的外部或内部储存库时。

RMT
图 1.1︰ RMT

RMT 取代了过去用于 SLE 11 和 SLE 12 的 SMT (Subscription Management Tool)。有关 RMT 与 SMT 之间的功能对比,请参见表 3.1 “功能对比”

2 RMT 安装和配置

SUSE Linux Enterprise Server 15 及以上版本中包含 RMT。可以在安装 SUSE Linux Enterprise Server 的过程中直接安装 RMT,或在运行中系统上安装 RMT。安装好软件包后,请使用 YaST 执行初始配置。

警告
警告:RMT 服务器将会与安装服务器发生冲突

将一台服务器配置为 RMT 服务器时,会安装并配置监听端口为 80 的 NGINX Web 服务器。

而在将一台计算机配置为安装服务器时,会自动安装 Apache Web 服务器并将其配置为监听端口 80。

请勿尝试在同一台服务器上启用这两项功能。一台服务器无法同时托管 Apache Web 服务器和 NGINX Web 服务器。

2.1 储存要求

下载的软件包储存在 /usr/share/rmt/public/repo 中,其为 /var/lib/rmt/public/repo/ 的符号链接。

RMT 服务器所需的储存空间取决于以下可变因素:您镜像的储存库和体系结构的数量以及启用的产品数量。一般来说,将储存空间设为所有已启用储存库总大小的 1.5 倍应当就已足够。其中,每个 SUSE Linux Enterprise 版本(包括所有扩展)大约 200 GB。

2.2 在系统安装期间安装

要在系统安装期间安装 RMT,请选择 rmt-server 软件包。您可在安装期间的安装设置步骤中进行软件选择时选择该软件包。

RMT 模式
图 2.1︰ RMT 模式

我们建议您在使用 zypper patch 命令安装 SUSE Linux Enterprise Server 后,立即检查是否有可用的 RMT 更新。SUSE 会不断发布 RMT 的维护更新,因此可能会有更新的软件包。

2.3 在现有系统上安装

要在运行中的 SUSE Linux Enterprise Server 系统上安装 RMT,请使用 zypper

tux > sudo zypper in rmt-server

2.4 使用 YaST 配置 RMT

按以下过程所述使用 YaST 配置 RMT。假设在新安装的系统上执行此过程。

  1. 使用 rmt 模块启动 YaST。

    tux > sudo yast2 rmt

    或者,您也可以启动 YaST,然后选择网络服务 › RMT 配置

  2. 输入您的组织身份凭证。要获取您的身份凭证,请参见第 4.1 节 “镜像身份凭证”

  3. 输入新 MariaDB 用户和数据库名称的身份凭证。系统即会创建此用户。然后选择下一步

    如果已设置 MariaDB root 用户的口令,您需要输入该口令。如果未设置 root 的口令,系统会要求您输入一个新口令。

  4. 输入 SSL 证书的常用名。该常用名通常应为服务器的完全限定域名 (FQDN)。输入您要用来作为其他常用名连接 RMT 服务器的所有域名和 IP 地址。

    输入所有常用名后,选择下一步

    提示
    提示:RMT 的证书位置
    • /etc/rmt/ssl/rmt-ca.crt

      此为 yast2 rmt 用来验证 RMT 服务器证书的 CA 证书束。仅当此文件不存在时,yast2 rmt 才会创建该文件。

    • /etc/rmt/ssl/rmt-server.crt/etc/rmt/ssl/rmt-server.key

      仅当服务器证书和私用密钥不存在时,yast2 rmt 才会生成新的服务器证书和私用密钥。要重新生成此证书,请参见第 8.1 节 “重新生成 HTTPS 证书”

  5. 如果此系统上启用了 firewalld,请选中相应复选框打开必需的端口。

    在 firewalld 中启用端口
    图 2.2︰ firewalld 中启用端口

    如果现在尚未启用 firewalld 而您打算稍后启用它,可始终通过运行 yast2 rmt 模块来打开相应端口。

    提示
    提示:微调 firewalld 设置

    单击防火墙细节,可仅打开特定网络接口的相应端口。

    下一步继续。

  6. 要查看摘要,请单击下一步。单击完成关闭 YaST。YaST 即会启用并启动所有 systemd 服务和计时器。

2.5 启用 SLP 声明

RMT 包含 SLP 服务说明文件 /etc/slp.reg.d/rmt-server.reg。要启用 RMT 服务的 SLP 声明,请执行以下步骤:

  1. 如果 firewalld 正在运行,请打开相应端口并重新装载 firewalld 配置:

    tux > sudo firewall-cmd --permanent --add-port=427/tcp
    success
    tux > sudo firewall-cmd --permanent --add-port=427/udp
    success
    tux > sudo firewall-cmd --reload
  2. 校验是否安装了 SLP 服务器,如果可能,安装该服务器:

    tux > sudo zypper install openslp-server
  3. 启用并启动 SLP 服务:

    tux > sudo systemctl enable slpd.service
    tux > sudo systemctl restart slpd.service

3 从 SMT 迁移到 RMT

本章说明如何从 SLES 11 或 12 上的 SMT 迁移到 SLES 15 上的 RMT。

3.1 重要注意事项

警告
警告:请仔细阅读本节内容

请仔细阅读本节内容。其中包含有关迁移过程的重要信息。

使用新主机

我们建议您在新安装的 SLES 15 主机上安装 RMT。RMT 并不能完全取代 SMT。RMT 具有不同于 SMT 的工作流程,仅支持注册 SUSE Linux Enterprise Server 12 及以上版本的系统。

储存库元数据和设置

不会导出 SMT 中的临时储存库的设置。将导出已标记为要镜像的储存库。

自定义储存库

只能导出标记为要镜像的储存库。

已失效订阅

RMT 上将不会提供组织订阅中已不再可用的产品。

客户端信息

将导出系统及其激活的产品。将导出 SMT 中的 SMT 客户端作业和补丁状态。

表 3.1︰ 功能对比

功能

SMT

RMT

在 SLES 11 上可用

在 SLES 12 上可用

在 SLES 15 上可用

将产品与 SUSE Customer Center 同步

从储存库镜像 RPM

选择性镜像(指定要镜像的产品)

通过 HTTP 提供 RPM

SLE 15 系统注册

SLE 12 系统注册

SLE 11 系统注册

支持从 SLE 12 迁移到 SLE 15

1

支持从 SLE 15 SPx 迁移到 15 SPx+1

1

临时储存库

2

离线镜像

NTLM 代理支持

自定义储存库

YaST 安装向导

YaST 管理向导

客户端管理

支持 Red Hat 7 和更低版本(扩展支持

支持 Red Hat 8(扩展支持

文件去重

将数据从 SMT 转移到 RMT

将注册数据传输到 SUSE Customer Center

报告

Web 服务器的自定义 TLS 证书

清理储存库中不再使用的数据

Bash 补全

适用于 openSUSE Leap 15

3

作为容器运行的选项

3

简单的开发设置 + 贡献指南

100% 的测试覆盖度

插件功能

Web 服务器

Apache 2

Nginx

平台

Perl

Ruby

1) SMT 仅部分支持将系统迁移到 SLE 15。SLE 15 由多个模块和扩展组成。有些模块只是提供补充性的功能,因此不是必需的。RMT 完全支持迁移到 SLE 15 以及在 SLE 15 内部迁移,因此它只会添加最少量的必需模块。SMT 不完全支持这种迁移,它将在系统上启用所有可用模块。

2) SUSE Manager 提供的功能。

3) 只能通过 self-support 使用。

3.2 导出 SMT 数据

过程 3.1︰ 导出 SMT 数据
  1. 通过运行 zypper up 更新已安装的 SMT 服务器。

  2. 如果您要导出 SSL 证书及其余数据,请运行 smt-data-export。请记得将证书存放在安全位置。

    如果您不想从 SMT 导出 SSL 证书,请运行 smt-data-export --no-ssl-export

  3. 导出的配置现已保存到 smt-export.TIMESTAMP.tar.gz。将该文件复制到新 RMT 服务器可访问的位置。

3.3 将 SMT 数据导入到 RMT

  1. 运行 zypper up 以确保所安装的 RMT 为最新版本。

  2. 将导出的 .tar.gz 文件复制到某个空目录,并将其解压缩。然后进入新目录:

    tux > mkdir EMPTY_DIR
    tux > cd EMPTY_DIR
    tux > tar xf /PATH/TO/smt-export.TIMESTAMP.tar.gz
    tux > cd smt-export
  3. 如果您之前选择从 SMT 导出 SSL 证书,请将 CA 私用密钥和证书复制到 /etc/rmt/ssl/ 中:

    tux > sudo cp ssl/cacert.key /etc/rmt/ssl/rmt-ca.key
    tux > sudo cp ssl/cacert.pem /etc/rmt/ssl/rmt-ca.crt
  4. 第 2.4 节 “使用 YaST 配置 RMT”中所述运行 YaST RMT 配置模块。如果您已导入 SMT CA 证书,请将 SMT 服务器的域添加到新 SSL 证书的常用名。

  5. 运行 RMT 同步功能以从 SUSE Customer Center 获取产品和储存库数据。

    tux > sudo rmt-cli sync
  6. 导入来自 SMT 服务器的数据。

    tux > sudo rmt-data-import -d ./
  7. 可选:如果 RMT 服务器的 URL 发生变化,请在 /etc/SUSEConnect 中更改客户端的 URL 参数,以指向新的 RMT 服务器。或者更改 DNS 记录以重新指派 RMT 服务器的主机名。

  8. 可选:将 SMT 中的镜像储存库数据转移到 RMT,并调整所复制数据的所有权。

    tux > sudo cp -r /var/www/htdocs/repo/* /usr/share/rmt/public/repo/
    tux > sudo chown -R _rmt:nginx /usr/share/rmt/public/repo
    提示
    提示

    RMT 服务器上自定义储存库数据的储存路径与 SMT 上的储存路径不同。使用 RMT 时,它会将源服务器 URL 的目录结构复制到顶级目录中。例如,如果自定义储存库的 URL 为

    http://download.opensuse.org/debug/distribution/leap/15.3/repo/oss

    则在 RMT 服务器上,其路径将是

    /usr/share/rmt/public/repo/debug/distribution/leap/15.3/repo/oss
  9. SMT 服务器上的自定义储存库默认已禁用。如果您要将其镜像到 RMT,请在镜像之前将其启用。

    1. 通过运行以下命令检查有无自定义储存库:

      tux > sudo rmt-cli repos custom list

      一个列出所有自定义储存库的表格将会显示:第一列包含每个储存库的 ID,而 Mirror? 列将显示 false

    2. 通过运行以下命令启用您要镜像的每个自定义储存库:

      tux > sudo rmt-cli repos custom enable ID
  10. 通过启动镜像过程更新储存库中的软件包:

    tux > sudo rmt-cli mirror

4 在 RMT 服务器上镜像储存库

您可以在 RMT 服务器上镜像安装和更新储存库。这样便无需在每台计算机上下载更新,从而节省时间和带宽。

在使用默认配置的情况下,RMT 每晚会自动镜像已启用的产品储存库一次。

镜像的储存库默认储存于 /var/lib/rmt/public/repo 中。

注意
注意:更改镜像储存库的默认位置

要更改镜像储存库的默认位置,请将 /usr/share/rmt/public/repo 符号链接指向所需的目录。这可以使用 命令来执行。

ln -sfn TARGET /usr/share/rmt/public/repo

(请将 TARGET 替换为所需的目标)。确保该目标具有 rmt 用户和 nginx 组的读写权限。

当启用的储存库完全镜像后,您可以通过在客户端计算机上运行 SUSEConnect --url https://RMT_HOSTNAME 来向 RMT 注册您的客户端系统。成功注册后,客户端计算机上的 Zypper 将使用来自 RMT 服务器的储存库。

重要
重要:SUSE Linux Enterprise Server 11 客户端

RMT 不支持系统为 SUSE Linux Enterprise Server 11 及以下版本的客户端。

4.1 镜像身份凭证

在创建 SUSE Linux Enterprise 储存库的本地镜像之前,您需要具有相应的组织身份凭证。您可以从 SUSE Customer Center 获取身份凭证。

要从 SUSE Customer Center 获取身份凭证,请执行以下步骤:

  1. 访问 SUSE Customer Center (http://scc.suse.com) 并登录。

  2. 如果您是多个组织的成员,请从左侧边栏中选择要使用的组织。

  3. 从顶部菜单中选择代理

  4. 右上角即会显示身份凭证。

  5. 要查看口令,请单击眼睛图标

应当使用 YaST RMT 服务器配置模块对获取的身份凭证进行设置,或将其直接添加到 /etc/rmt.conf 文件中。有关 /etc/rmt.conf 文件的详细信息,请参见第 6.3.1 节 “/etc/rmt.conf”

4.2 同步储存库元数据

需要使用从 SUSE Customer Center 下载的信息定期更新本地 RMT 数据库。其中包括有关可用产品和储存库的信息。

同步通过 systemd 计时器 rmt-server-sync.timer 来完成。要查看状态(例如下次运行时间),请使用 systemctl status

root # systemctl status rmt-server-sync.timer
● rmt-server-sync.timer - RMT Sync timer
   Loaded: loaded (/usr/lib/systemd/system/rmt-server-sync.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Fri 2018-06-22 04:22:34 EDT; 2h 34min ago
  Trigger: Sat 2018-06-23 03:53:00 EDT; 20h left

Jun 22 04:22:34 d31 systemd[1]: Started RMT Sync timer.

要手动更新 RMT 数据库,请使用 rmt-cli sync 命令。有关详细信息,请参见第 6.1.2 节 “sync

4.3 镜像软件包

RMT 服务器上会镜像所启用的储存库的软件包。系统会每天定期下载一次软件包。不过,您也可以随时手动触发下载。

定期镜像由 systemd 计时器 rmt-server-mirror.timer 执行。要显示状态(例如下次运行时间),请使用 systemctl status

root # systemctl status rmt-server-mirror.timer
● rmt-server-mirror.timer - RMT Mirror timer
   Loaded: loaded (/usr/lib/systemd/system/rmt-server-mirror.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Fri 2018-06-22 04:22:34 EDT; 2h 34min ago
  Trigger: Sat 2018-06-23 02:17:57 EDT; 19h left

Jun 22 04:22:34 d31 systemd[1]: Started RMT Mirror timer.

要手动更新镜像的软件包,请使用 rmt-cli mirror 命令。有关详细信息,请参见第 6.1.6 节 “mirror

4.4 启用和禁用储存库镜像

可以单独启用或禁用储存库镜像,也可以通过指定产品来启用或禁用储存库镜像。一次可以指定一个或多个储存库或产品。如果储存库处于启用状态,系统会在镜像过程中下载并更新其软件包。要启用或禁用储存库镜像,您需要提供产品字符串或 ID 或者储存库名称或 ID。一般情况下,您会想要启用或禁用产品,因为这样会自动启用或禁用与产品关联的所有储存库。

4.4.1 使用产品

要启用或禁用某个产品的所有储存库,请使用 rmt-cli products enable IDrmt-cli products disable ID 命令。要检索已启用产品的 ID,请使用 rmt-cli products list 命令。要检索已禁用但可用的产品的 ID,请使用 rmt-cli products list --all 命令。

示例:

tux > sudo rmt-cli products list --all
+------+----------------------+---------+--------+--------------+---------------
| ID   | Product              | Version | Arch   | Mirror?      | Last mirrored
+------+----------------------+---------+--------+--------------+---------------
[...]
| 1743 | SUSE Package Hub     | 15      | x86_64 | Don't Mirror |
|      | PackageHub/15/x86_64 |         |        |              |
[...]

tux > sudo rmt-cli products enable 1743
Found product by target 1743: SUSE Package Hub 15 x86_64.
Enabling SUSE Package Hub 15 x86_64:
  SUSE Package Hub 15 x86_64:
    Enabled repository SLE-Module-Packagehub-Subpackages15-Pool.
    Enabled repository SLE-Module-Packagehub-Subpackages15-Updates.
    Enabled repository SUSE-PackageHub-15-Pool.
    Enabled repository SUSE-PackageHub-15-Standard-Pool..

tux > sudo rmt-cli products disable 1743
Found product by target 1743: SUSE Package Hub 15 x86_64.
Disabling SUSE Package Hub 15 x86_64:
  SUSE Package Hub 15 x86_64:
    Disabled repository SLE-Module-Packagehub-Subpackages15-Pool.
    Disabled repository SLE-Module-Packagehub-Subpackages15-Updates.
    Disabled repository SUSE-PackageHub-15-Pool.
    Disabled repository SUSE-PackageHub-15-Standard-Pool.

 To clean up downloaded files, run 'rmt-cli repos clean'
提示
提示:一次启用和禁用多个产品

要一次启用或禁用多个产品,请指定产品 ID 或字符串的空格分隔列表,例如:

tux > sudo rmt-cli products enable 1743 SLES/15/x86_64 SLES/12
Found product by target 1743: SUSE Package Hub 15 x86_64.
Enabling SUSE Package Hub 15 x86_64:
  SUSE Package Hub 15 x86_64:
    Enabled repository SLE-Module-Packagehub-Subpackages15-Pool.
    Enabled repository SLE-Module-Packagehub-Subpackages15-Updates.
    Enabled repository SUSE-PackageHub-15-Pool.
    Enabled repository SUSE-PackageHub-15-Standard-Pool.
Found product by target SLES/15/x86_64: SUSE Linux Enterprise Server 15 x86_64.
Enabling SUSE Linux Enterprise Server 15 x86_64:
  SUSE Linux Enterprise Server 15 x86_64:
    Enabled repository SLE-Product-SLES15-Pool.
    Enabled repository SLE-Product-SLES15-Updates.
    Enabled repository SLE15-Installer-Updates.
  Basesystem Module 15 x86_64:
    Enabled repository SLE-Module-Basesystem15-Pool.
    Enabled repository SLE-Module-Basesystem15-Updates.
  Server Applications Module 15 x86_64:
    Enabled repository SLE-Module-Server-Applications15-Pool.
    Enabled repository SLE-Module-Server-Applications15-Updates.
Found product by target SLES/12: SUSE Linux Enterprise Server 12 x86_64.
Enabling SUSE Linux Enterprise Server 12 x86_64:
  SUSE Linux Enterprise Server 12 x86_64:
    Enabled repository SLES12-Pool.
    Enabled repository SLES12-Updates.

4.4.2 使用储存库

要启用或禁用特定储存库的镜像,请使用 rmt-cli repos enable IDrmt-cli repos disable ID 命令。要检索已启用的储存库的 ID,请使用 rmt-cli repos list 命令。要检索已禁用但可用的储存库的 ID,请使用 rmt-cli repos list --all 命令。

示例:

tux > sudo rmt-cli repos list --all
+--------+-------------------------+-------------------------------------------+
| ID     | Name                    | Description                               |
+--------+-------------------------+-------------------------------------------+
[...]
| 3061   | SUSE-PackageHub-15-Pool | SUSE-PackageHub-15-Pool for sle-15-x86_64 |
[...]
+--------+-------------------------+-------------------------------------------+

tux > sudo rmt-cli repos enable 3061
Repository by ID 3061 successfully enabled.

tux > sudo rmt-cli repos disable 3061
Repository by ID 3061 successfully disabled.

To clean up downloaded files, please run 'rmt-cli repos clean'
提示
提示:一次启用和禁用多个储存库

要一次启用或禁用多个储存库,请指定储存库 ID 的空格分隔列表,例如:

tux > sudo rmt-cli repos enable 2526 3263
Repository by ID 2526 successfully enabled.
Repository by ID 3263 successfully enabled.

tux > sudo rmt-cli repos disable 2526 3263
Repository by ID 2526 successfully disabled.
Repository by ID 3263 successfully disabled.

To clean up downloaded files, run 'rmt-cli repos clean'

4.5 删除镜像数据

第 4.4 节 “启用和禁用储存库镜像”中所述禁用储存库或产品镜像后,已镜像的数据仍保留在本地硬盘上。其中包括镜像的 RPM 软件包。

要删除已禁用的储存库数据,请使用 rmt-cli repos clean 命令。使用此命令时,RMT 将校验是否仅镜像了已启用的储存库,并提供删除无效数据的途径。

在去除任何数据之前,该命令将列出受影响的储存库,并要求用户输入 yes 以继续。

tux > sudo rmt-cli repos clean
RMT found locally mirrored files from the following repositories which are not marked to be mirrored:

SLE-Product-SLES15-Updates for sle-15-x86_64
SLE-Product-SLES15-Pool for sle-15-x86_64
SLE15-Installer-Updates for sle-15-x86_64

Would you like to continue and remove the locally mirrored files of these repositories?
Only 'yes' will be accepted.

Enter a value:  yes

Deleted locally mirrored files from repository 'SLE-Product-SLES15-Updates for sle-15-x86_64'.
Deleted locally mirrored files from repository 'SLE-Product-SLES15-Pool for sle-15-x86_64'.
Deleted locally mirrored files from repository 'SLE15-Installer-Updates for sle-15-x86_64'.

Clean finished. An estimated 157 MB were removed.
提示
提示:手动去除储存库数据

要删除已禁用的储存库数据,请手动去除其对应的目录:

tux > sudo rm -r /usr/share/rmt/public/repo/SUSE/Products/PRODUCT/VERSION/ARCHITECTURE/

4.6 添加自定义储存库

您可以使用 RMT 服务器镜像自定义储存库。这些储存库不是 SUSE Customer Center 提供的。它们可能是第三方供应商(例如 Open Build Service)提供的,也可能是使用 createrepo 创建的。

自定义储存库可以作为独立储存库使用,也可以关联到产品。这样,您便可以在已注册到 RMT 服务器的客户端上使用一个命令连接多个储存库。

下面的示例过程演示了镜像第三方储存库的过程。

  1. 将远程储存库添加到 RMT 服务器。将 URL 替换为储存库的 URL。将 NAME 替换为您为储存库所选择的名称。

    root # rmt-cli repos custom add URL NAME
  2. 列出所有自定义储存库以获取新储存库的 ID。

    root # rmt-cli repos custom list
  3. (可选)将新的自定义储存库关联到某个产品。例如,如果所有桌面客户端都需要这个新的自定义储存库,则可将其关联到 SUSE Linux Enterprise Desktop 产品。

    root # rmt-cli repos custom attach REPOSITORY_ID PRODUCT_ID

    REPOSITORY_ID 替换为新自定义储存库的 ID。将 PRODUCT_ID 替换为要将储存库关联到的产品的 ID。如果您需要检索 PRODUCT_ID,请使用命令 rmt-cli products list --all

    重要
    重要

    将自定义储存库挂接到某个产品后,已在该产品中注册的客户端中会添加此类储存库,但该储存库处于禁用状态。要启用该储存库,请使用 zypper lr 命令确定其 ID,然后运行:

    root # zypper mr -e REPO_ID
  4. 启用新自定义储存库的镜像。

    root # rmt-cli repos custom enable REPOSITORY_ID

要获取所有可用自定义储存库命令的列表,请参见第 6.1.4 节 “repos

4.7 导出和导入储存库

RMT 具有可导入和导出有关可用储存库和镜像软件包的数据的内置函数。例如,可以通过在本地复制已镜像的 RPM 软件包来加快新 RMT 服务器的设置。

另一个用例是脱机模式。通过脱机模式,可以将数据传输到断开连接的 RMT 服务器,从而实现为气隙网络中的计算机提供更新等目的。

下面的过程说明了如何使用 USB 驱动器在两台 RMT 服务器之间传输数据及镜像的 RPM。服务器 sun 与 SUSE Customer Center 相连,而服务器 sirius 则位于气隙网络中。

  1. 登录服务器 sun

    root@sun # rmt-cli sync
    root@sun # rmt-cli mirror
  2. 连接一个 USB 驱动器(假设为 /dev/sdb),并将其挂载到所需位置(例如 /mnt/external)。

    root@sun # mount /dev/sdb1 /mnt/external
    1. 导出有关可用储存库和产品的数据。

      root@sun # rmt-cli export data /mnt/external/
    2. 导出已启用储存库的列表。在下一步导出储存库时需要使用该导出文件。

      root@sun # rmt-cli export settings /mnt/external/
    3. 导出镜像的 RPM 软件包。此过程可能需要较长时间,具体视镜像储存库的大小而定。

      root@sun # rmt-cli export repos /mnt/external/
  3. sun 卸载并拔出磁盘,然后转到 sirius

    root@sun # umount /mnt/external
  4. 将 USB 驱动器连接到 sirius,并将其挂载到 /mnt/external 中。

    root@sirius # mount /dev/sdb1 /mnt/external
    1. 导入有关可用储存库和产品的元数据。

      root@sirius # rmt-cli import data /mnt/external/
    2. 导入镜像的 RPM 软件包。此过程可能需要较长时间,具体视镜像储存库的大小而定。

      root@sirius # rmt-cli import repos /mnt/external/
  5. sirius 上根据需要启用储存库。有关详细信息,请参见第 4.4 节 “启用和禁用储存库镜像”

注意
注意:从气隙服务器导出启用的设置

如果您的气隙服务器 (sirius) 具有许多启用的储存库,或者启用的储存库经常更改,我们建议从此服务器中导出储存库设置。

然后可将导出的设置导入到与 SUSE Customer Center 相连的服务器 (sun) 中。这样便能确保 sun 下载了 sirius 所需的所有数据。

5 将客户端配置为使用 RMT

您可以将运行 SUSE Linux Enterprise 12 或以上版本的所有计算机都配置为注册到 RMT 并从其中下载软件更新,而不是直接与 SUSE Customer Center 通讯。

提示
提示:通过 HTTP 在 RMT 服务器中注册

我们建议您通过安全的 HTTPS 协议向 RMT 服务器注册(本文档中的所有示例均使用该协议)。不过,您也可以通过不安全的 HTTP 协议向 RMT 服务器注册。请仅在使用该协议对您的设置有益并且您处于安全性不是很重要的可信环境中时,才使用此方法。

要将客户端配置为使用 RMT 服务器,请使用以下其中一种方法:

提示
提示:CA 证书

如果您需要 RMT 服务器的 CA 证书,可在 /etc/rmt/ssl/rmt-ca.crthttps://RMT_SERVER/rmt.crt 中查找。

5.1 使用引导参数配置客户端

通过在计算机引导期间提供 regurl 参数,可将任何客户端配置为使用 RMT。

需要以 regurl=RMT_SERVER_URL 的形式输入该参数。URL 需要采用 https://FQDN 格式,其中 FQDN 为 RMT 服务器的完全限定主机名,必须与 RMT 服务器上使用的服务器证书的 FQDN 相同。示例:

regurl=https://rmt.example.com
警告
警告:当心键入错误

确保您输入的值是正确的。如果尚未正确指定 regurl,更新源的注册将失败。

注意
注意:更改 RMT 服务器证书

如果 RMT 服务器从不可信 CA 获取新证书,客户端需要检索新 CA 证书文件。YaST 会显示用于导入新证书的对话框。如果您确认导入新证书,旧证书会替换为新证书。

5.2 使用 AutoYaST 配置文件配置客户端

您可以通过 AutoYaST 配置文件将客户端配置为注册到 RMT 服务器。有关创建 AutoYaST 配置文件和准备自动安装的常规信息,请参见《AutoYaST 指南》本节仅介绍针对 RMT 的配置。

要使用 AutoYaST 配置特定于 RMT 的数据,请执行适用于相关 RMT 客户端版本的步骤。

  1. root 身份启动 YaST,然后选择 杂项 ›  自动安装 启动图形 AutoYaST 前端。

    如果要从命令行启动图形 AutoYaST 前端,可以使用 yast2 autoyast 命令来完成。

  2. 使用文件 › 打开打开现有的配置文件,或通过工具 › 创建参考配置文件基于当前系统配置创建一个配置文件,或者使用空的配置文件。

  3. 选择软件 › 产品注册。将显示当前配置的概述。

  4. 单击编辑

  5. 选中注册产品,在使用特定的服务器 URL 而不是默认值中设置 RMT 服务器的 URL,您还可以设置可选 SSL 服务器证书 URL。服务器 URL 的可能的值与内核参数 regurl 的可能的值相同。对于 SSL 证书位置,您可以使用采用 HTTP 或 HTTPS 的 URL。

  6. 针对要部署的系统执行所有其他所需配置,然后单击完成返回主屏幕。

  7. 选择 文件 ›  另存为 ,然后输入配置文件的名称,如 autoinst.xml

5.3 使用 rmt-client-setup 配置客户端

/usr/share/rmt/public/tools/rmt-client-setup 脚本在软件包 rmt-server中提供。此脚本可用于将客户端计算机配置为使用 RMT 服务器,还可用于将现有客户端重新配置为使用其他 RMT 服务器。

要通过 rmt-client-setup 将客户端计算机配置为使用 RMT,请执行以下步骤:

  1. 从 RMT 服务器下载 rmt-client-setup

    root # curl http://RMT_SERVER/tools/rmt-client-setup --output rmt-client-setup
  2. 使用 RMT 服务器的 URL 作为参数运行脚本。

    root # sh rmt-client-setup https://RMT_SERVER/

    执行此脚本会将 RMT CA 的证书导入到可信证书存储区中。

    或者,您也可以指定服务器证书的正确指纹或路径。有关细节,请参见 sh rmt-client-setup --help

  3. 该脚本下载服务器的 CA 证书。按 Y 接受该证书。现在,该工具即会在客户端上执行所有必要的修改。

  4. 使用 SUSEConnect 添加更多产品。有关细节,请运行 SUSEConnect --help

5.4 使用 YaST 配置客户端

要将客户端配置为注册到 RMT 服务器,请使用 YaST 产品注册模块 yast2 registration

在客户端上无需提供身份凭证,您可以将相关字段留空。单击本地注册服务器并输入其 URL。然后单击下一步,直到退出模块。

5.5 将客户端配置为使用自定义的独立储存库

如果您在 RMT 服务器上创建了自定义的独立储存库,使用 SUSEConnect 将不会在客户端计算机上注册该储存库,因为它没有父产品。

要手动添加该储存库,请执行以下步骤:

  1. 将您的网页浏览器指向以下 RMT 服务器 URL:

    https://RMT_SERVER_HOSTNAME/repo/
  2. 通过目录结构将浏览器导航到您的自定义储存库的 repodata/ 子目录。

  3. 在客户端计算机上添加发现的储存库 URL:

    tux > sudo zypper ar CUSTOM_REPO_URL CUSTOM_REPO_NAME

5.6 列出可访问的储存库

要列出可用的模块和储存库,请使用 SUSEConnect --list-extensions。或者,您也可以通过访问 https://RMT_SERVER/repo/ 及其子目录来浏览 RMT 服务器的目录列表。

5.7 联机迁移 SUSE Linux Enterprise 客户端

您可以将注册到 RMT 中的 SUSE Linux Enterprise 客户端联机迁移到同一主要版本的最新服务包,迁移方法与迁移注册到 SUSE Customer Center 的客户端相同。开始迁移之前,请确保 RMT 中具有并已镜像所需产品。

有关联机迁移的详细信息,请参见Book “升级指南”, Chapter 1 “升级路径和方法”

6 RMT 工具和配置文件

本章介绍 RMT 附带的最重要的脚本、配置文件和证书。

rmt-cli 命令及其子命令用于管理储存库镜像、客户端注册和报告。systemd 用于启动、停止、重启动 RMT 服务和检查其状态。

RMT 的基本配置储存于 /etc/rmt.conf 中。

6.1 RMT 命令行界面 (rmt-cli)

6.1.1 概览

管理 RMT 的主要命令为 rmt-cli (/usr/bin/rmt-cli)。rmt-cli 命令应与本节中所述的子命令一起使用。如果单独使用 rmt-cli 命令,它会打印所有可用子命令的列表。要获取单个子命令的帮助,请使用 man rmt-clirmt-cli help [subcommand]

可用子命令如下:

rmt-cli sync

将数据库与 SUSE Customer Center 同步。

rmt-cli products

列出和修改产品。

rmt-cli repos

列出和修改储存库。

rmt-cli mirror

镜像储存库。

rmt-cli systems

列出和修改系统。

rmt-cli import

用于离线模式的导入命令。

rmt-cli export

用于离线模式的导出命令。

rmt-cli version

显示 RMT 版本。

以下各节对每个子命令进行了详细说明。

6.1.2 sync

此命令可立即触发与 SUSE Customer Center 的同步。该命令没有其他选项。systemd 计时器 rmt-server-sync.timer 每晚也会触发同步。

同步期间不会将数据上载到 SUSE Customer Center。例如,此命令可更新本地产品定义和储存库数据。

6.1.3 products

列出和修改产品。

rmt-cli products list [--all] [--csv]

列出已启用以便镜像的产品。使用 --all 标志可列出所有可用产品。使用 --csv 标志可以 CSV 格式输出列表。ls 可用作 list 的快捷方式。

rmt-cli products enable [id | string] [--all-modules]

按产品 ID 或字符串启用产品的强制储存库。--all-modules 标志可启用某个产品的所有模块,而不仅仅是建议的模块。

rmt-cli products disable [id | string]

按产品 ID 或字符串禁用产品的所有储存库。

6.1.4 repos

rmt-cli repos list [--all] [--csv]

列出已启用以便镜像的储存库。使用 --all 标志可列出所有可用储存库。使用 --csv 标志可以 CSV 格式输出列表。ls 可用作 list 的快捷方式。

rmt-cli repos enable [id]

按储存库 ID 启用单个储存库的镜像。

rmt-cli repos disable [id]

按储存库 ID 禁用单个储存库的镜像。

rmt-cli repos clean

此命令会去除未标记为待镜像的储存库的本地镜像文件。

6.1.5 repos custom

rmt-cli repos custom list [--csv]

列出所有自定义储存库。使用 --csv 标志可以 CSV 格式输出列表。ls 可用作 list 的快捷方式。

rmt-cli repos custom add [url] [name] [--id]

添加新的自定义储存库。使用 --id 标志可指定自定义的字母数字 ID。

rmt-cli repos custom enable [id]

启用某个自定义储存库的镜像。

rmt-cli repos custom disable [id]

禁用某个自定义储存库的镜像

rmt-cli repos custom remove [id]

去除某个自定义储存库。

rmt-cli repos custom products [id]

列出关联到给定 ID 的自定义储存库的产品。

rmt-cli repos custom attach [id] [product id]

将某个现有自定义储存库关联到某个产品。

rmt-cli repos custom detach [id] [product id]

将某个现有自定义储存库与某个产品解除关联。

6.1.6 mirror

rmt-cli mirror

此命令可手动启用镜像过程。

rmt-cli mirror all

此命令会镜像所有启用的储存库。

rmt-cli mirror repositories [ID]

此命令会按 ID 列表镜像启用的储存库。

rmt-cli mirror products [ID]

此命令会按 ID 列表镜像产品的已启用储存库。

6.1.7 systems

rmt-cli systems list

此命令会列出已注册的系统。

rmt-cli systems scc-sync

此命令会将已注册系统的数据转发到 SCC。

rmt-cli systems remove [TARGET]

此命令会从 RMT 中去除 rmt-cli systems list 命令输出中的 Login 列所标识的系统。

6.1.8 import

离线模式下需要使用此命令。有关详细信息,请参见第 4.7 节 “导出和导入储存库”

rmt-cli import data [path]

在离线 RMT 上运行此命令可从给定路径读取 JSON 文件,并在本地数据库中填充数据。

rmt-cli import repos [path]

在离线 RMT 上运行此命令可导入 RPM 软件包。

6.1.9 export

离线模式下需要使用此命令。有关详细信息,请参见第 4.7 节 “导出和导入储存库”

rmt-cli export data [path]

在联机 RMT 上运行此命令可从 SUSE Customer Center 获取最新数据,并在指定路径将结果另存为 JSON 文件。

rmt-cli export settings [path]

在离线 RMT 上运行此命令可在给定路径将已启用储存库的设置另存为 repos.json

rmt-cli export repos [path]

在联机 RMT 上定期运行此命令可在给定路径镜像 repos.json 中指定的一组储存库。镜像的储存库文件将储存在同一路径的子目录中。

6.1.10 version

显示 rmt-cli 的版本。

6.2 RMT systemd 命令

您可以使用标准 systemd 命令管理 RMT 相关服务。RMT 服务器包括以下服务和计时器:

rmt-server.target

启动所有必需的 RMT 组件的 systemd 目标。

rmt-server.service

RMT 服务器。

rmt-server-migration.service

此服务可将数据库迁移到最新架构(如果需要)。无需手动与此服务交互。

rmt-server-sync.timer

此计时器负责定期同步来自 SUSE Customer Center 的所有储存库产品数据。

rmt-server-mirror.timer

此计时器负责定期同步来自 SUSE Customer Center 的所有 RPM。

使用 systemctl 可控制 RMT 服务和计时器。

6.3 RMT 配置文件

RMT 主配置文件为 /etc/rmt.conf。您可以使用 YaST RMT 服务器模块设置大部分选项。

6.3.1 /etc/rmt.conf

系统仅支持使用 yast2 rmt 执行初始配置(如第 2.4 节 “使用 YaST 配置 RMT”中所述)。只有代理配置需要手动输入。此处介绍了其他配置参数供您参考。

您可在 /etc/rmt.conf 文件中找到所有可用的配置选项。

6.3.1.1 镜像设置

mirroring 部分可让您调整镜像行为。

mirror_src

决定是否镜像源 RPM 软件包(体系结构为 src)。

dedup_method

如果设为 hardlink,将在镜像期间创建硬链接。如果文件系统不支持硬链接,则可将其设为 copy。可能的值为:hardlinkcopy

6.3.1.2 HTTP 客户端设置

http_client 部分定义 RMT 的全局 HTTP 连接设置。

verbose

可让更多调试输出记录到 systemd 日志。

proxy

代理服务器 URL。

noproxy

不应经由代理连接的域列表(以逗号分隔)。示例:“localhost,.mylocaldomain”

proxy_auth

此设置决定了代理身份验证机制。可能的值为:nonebasicdigestgssnegotiatentlmdigest_ientlm_wb

proxy_user

代理服务器用户名。

proxy_password

代理服务器口令。

low_speed_limit

达到该速度下限时,下载便应中止(以字节/秒为单位)。

low_speed_time

当下载速度低于 low_speed_limit 时,持续该时间后中止下载。

6.3.1.3 用于访问 SUSE 储存库的设置

scc 部分包含您用于连接 SUSE Customer Center 的镜像身份凭证。要获得您的镜像身份凭证,请参见第 4.1 节 “镜像身份凭证”

该部分的有效配置键包括:

username

镜像身份凭证的用户名。

password

镜像身份凭证的口令。

6.3.1.4 Web 服务器设置

使用 web_server 部分可以调整 RMT 服务器的性能。

min_threads

指定 RMT 服务器工作器产生的最小线程数。

可接受的值:大于或等于 1 的整数。

max_threads

指定 RMT 服务器工作器产生的最大线程数。

可接受的值:大于或等于 1 的整数。

workers

指定 RMT 的 Web 工作器数量。

可接受的值:大于或等于 1 的整数。

6.3.2 SSL 证书和 HTTPS

默认情况下,仅允许通过 HTTPS 访问 SUSEConnect 所使用的 API 端点。nginx 配置为使用来自以下位置的 SSL 证书和私用密钥:

  • 证书:/etc/rmt/ssl/rmt-server.crt

  • 私用密钥:/etc/rmt/ssl/rmt-server.key

YaST RMT 模块会生成一个自定义证书颁发机构,用于签署 HTTPS 证书。这意味着如果要注册,此证书颁发机构必须受到客户端计算机的信任:

  • 从媒体安装期间注册或使用 YaST 注册模块进行注册时,系统会显示一条消息,提示您信任服务器证书。

  • 通过命令行注册客户端系统时,请使用 rmt-client-setup 脚本。有关详细信息,请参见第 5.3 节 “使用 rmt-client-setup 配置客户端”

7 备份 RMT 服务器

本章说明如何创建 RMT 服务器的备份以及如何恢复该服务器。

7.1 创建备份

此过程详细说明如何创建 RMT 服务器的完整备份。假设您有一个挂载到 /mnt/backup 中用作备份目标的外部磁盘或网络共享。

  1. 切换到备份目录。

    root # cd /mnt/backup
  2. 创建包含 SQL 数据库转储的文件。您需要提供安装期间为 rmt 数据库用户设置的口令。

    root # mysqldump -u rmt -p rmt > rmt_backup.sql
  3. (可选)创建镜像数据的副本。

    root # mkdir repos
    root # rmt-cli export repos ./repos/

7.2 恢复备份

此过程详细说明如何通过第 7.1 节 “创建备份”中创建的备份恢复 RMT 服务器。假设备份挂载到 /mnt/backup 中,并且您要在新安装的 SLES 上恢复服务器。

  1. 第 2 章 “RMT 安装和配置中所述安装并配置 RMT 服务器。

  2. 转到备份目录。

    root # cd /mnt/backup/
  3. 使用 mysql 去除新创建的数据库并导入数据。

    root # mysql -u rmt -p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    [...]
    
    MariaDB [(none)]> DROP DATABASE rmt;
    Query OK, 14 rows affected (0.84 sec)
    
    MariaDB [(none)]> CREATE DATABASE rmt;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [(none)]> use rmt;
    Database changed
    
    MariaDB [rmt]> source rmt_backup.sql;
    [...]
    
    MariaDB [rmt]> quit
  4. (可选)导入导出的储存库。

    root # rmt-cli import repos ./repos/
  5. 同步您的数据并更新储存库。

    root # rmt-cli sync
    root # rmt-cli mirror

8 管理 TLS/SSL 证书

8.1 重新生成 HTTPS 证书

在 HTTPS 证书失效之前,或者若要包含其他通用备用名称,应重新生成该证书。如果只是重新生成 HTTPS 证书,则无需在已注册到 RMT 服务器的客户端计算机上执行其他操作。

  1. 停止 nginx 和 rmt-server 服务:

    root # systemctl stop nginx
    root # systemctl stop rmt-server
  2. 去除之前生成的证书。

    root # rm /etc/rmt/ssl/rmt-server.*
  3. 第 2.4 节 “使用 YaST 配置 RMT”中所述运行 yast rmt 模块。

8.2 重新生成 CA 证书和 HTTPS 证书

CA 证书失效后或者发生安全问题时,可以重新生成该证书。

警告
警告:在所有客户端上导入 CA 证书

必须在已注册到 RMT 服务器的所有客户端上导入新生成的 CA 证书。可以按第 5.3 节 “使用 rmt-client-setup 配置客户端”中所述在客户端计算机上运行 rmt-client-setup 脚本来完成此操作。

  1. 停止 nginx 和 rmt-server 服务。

    root # systemctl stop nginx
    root # systemctl stop rmt-server
  2. 去除之前生成的 CA 和 HTTPS 证书。

    root # rm /etc/rmt/ssl/rmt-ca.*
    root # rm /etc/rmt/ssl/rmt-server.*
  3. 第 2.4 节 “使用 YaST 配置 RMT”中所述运行 yast rmt 模块。