本指南为 Repository Mirroring Tool 管理员指南。该产品是 SUSE Customer Center 与储存库和注册目标之间的代理系统。
版权所有 © 2006–2024 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 上查看我们的联机文档。您可浏览或下载各种格式的文档。
注意:最新更新最新的更新通常会在本文档的英文版中提供。
- SUSE 知识库
如果您遇到问题,请参考 https://www.suse.com/support/kb/ 上提供的联机技术信息文档 (TID)。在 SUSE 知识库中搜索根据客户需求提供的已知解决方案。
- 发行说明
有关发行说明,请参见 https://www.suse.com/releasenotes/。
- 在您的系统中
如需脱机使用,您也可在系统的
/usr/share/doc/release-notes
下找到该发行说明。各软件包的相应文档可在/usr/share/doc/packages
中找到。许多命令的手册页中也对相应命令进行了说明。要查看手册页,请运行
man
后跟特定的命令名。如果系统上未安装man
命令,请使用sudo zypper install man
加以安装。
2 改进文档 #
欢迎您提供针对本文档的反馈及改进建议。您可以通过以下渠道提供反馈:
- 服务请求和支持
有关产品可用的服务和支持选项,请参见 https://www.suse.com/support/。
要创建服务请求,需在 SUSE Customer Center 中注册订阅的 SUSE 产品。请转到 https://scc.suse.com/support/requests 并登录,然后单击 。
- Bug 报告
在 https://bugzilla.suse.com/ 中报告文档问题。
要简化此过程,请单击本文档 HTML 版本中的标题旁边的
图标。这样会在 Bugzilla 中预先选择正确的产品和类别,并添加当前章节的链接。然后,您便可以立即开始键入 Bug 报告。需要一个 Bugzilla 帐户。
- 贡献
要帮助改进本文档,请单击本文档 HTML 版本中的标题旁边的
(编辑源文档)图标。然后您会转到 GitHub 上的源代码,可以在其中提出拉取请求。需要一个 GitHub 帐户。
注意:(编辑源文档)仅适用于英语版本有关用于本文档的文档环境的详细信息,请参见储存库的 README。
- 邮件
您也可以将有关本文档的错误以及反馈发送至 <doc-team@suse.com>。请在其中包含文档标题、产品版本和文档发布日期。此外,请包含相关的章节号和标题(或者提供 URL),并提供问题的简要说明。
3 文档约定 #
本文档中使用了以下通知和排版约定:
/etc/passwd
:目录名称和文件名PLACEHOLDER:将 PLACEHOLDER 替换为实际值
PATH
:环境变量ls
、--help
:命令、选项和参数user
:用户或组的名称package_name:软件包的名称
Alt、Alt–F1:按键或组合键。按键以大写字母显示,与键盘上的一样。
AMD/Intel 本段内容仅与 AMD64/Intel 64 体系结构相关。箭头标记文本块的开始位置和结束位置。
IBM Z, POWER 本段内容仅与
IBM Z
和POWER
体系结构相关。箭头标记文本块的开始位置和结束位置。第 1 章“示例章节”:对本指南中其他章节的交叉引用。
必须使用
root
特权运行的命令。您还可以在这些命令前加上sudo
命令,以非特权用户身份来运行它们:#
command
>
sudo
command
非特权用户也可以运行的命令:
>
command
可以通过一行末尾处的反斜线字符 (
\
) 拆分成两行或多行的命令。反斜线告知外壳命令调用将会在该行末尾后面继续:>
echo
a b \ c d显示命令(前面有一个提示符)和外壳返回的相应输出的代码块:
>
command
output注意事项
警告:警报通知在继续操作之前,您必须了解的不可或缺的信息。向您指出有关安全问题、潜在数据丢失、硬件损害或物理危害的警告。
重要:重要通知在继续操作之前,您必须了解的重要信息。
注意:注意通知额外信息,例如有关软件版本差异的信息。
提示:提示通知有用信息,例如指导方针或实用性建议。
精简通知
额外信息,例如有关软件版本差异的信息。
有用信息,例如指导方针或实用性建议。
4 支持 #
下面提供了 SUSE Linux Enterprise Server 的支持声明和有关技术预览的一般信息。有关产品生命周期的细节,请参见 https://www.suse.com/lifecycle。
如果您有权获享支持,可在 https://documentation.suse.com/sles-15/html/SLES-all/cha-adm-support.html 中查找有关如何收集支持票据所需信息的细节。
4.1 SUSE Linux Enterprise Server 支持声明 #
要获得支持,您需要订阅适当的 SUSE 产品。要查看为您提供的具体支持服务,请转到 https://www.suse.com/support/ 并选择您的产品。
支持级别的定义如下:
- L1
问题判定,该技术支持级别旨在提供兼容性信息、使用支持、持续维护、信息收集,以及使用可用文档进行基本查错。
- L2
问题隔离,该技术支持级别旨在分析数据、重现客户问题、隔离问题区域,并针对级别 1 不能解决的问题提供解决方法,或完成准备工作以提交级别 3 处理。
- L3
问题解决,该技术支持级别旨在借助工程方法解决级别 2 支持所确定的产品缺陷。
对于签约的客户与合作伙伴,SUSE Linux Enterprise Server 将为除以下项目外的其他所有软件包提供 L3 支持:
技术预览。
声音、图形、字体和作品。
需要额外客户合同的软件包。
模块 Workstation Extension 随附的某些软件包仅享受 L2 支持。
名称以 -devel 结尾的软件包(包含头文件和类似的开发人员资源)只能与其主软件包一起获得支持。
SUSE 仅支持使用原始软件包,即,未发生更改且未重新编译的软件包。
4.2 技术预览 #
技术预览是 SUSE 提供的旨在让用户大致体验未来创新的各种软件包、堆栈或功能。随附这些技术预览只是为了提供方便,让您有机会在自己的环境中测试新的技术。非常希望您能提供反馈。如果您测试了技术预览,请联系 SUSE 代表,将您的体验和用例告知他们。您的反馈对于我们的未来开发非常有帮助。
技术预览存在以下限制:
技术预览仍处于开发阶段。因此,它们可能在功能上不完整、不稳定,或者不适合生产用途。
技术预览不受支持。
技术预览可能仅适用于特定的硬件体系结构。
技术预览的细节和功能可能随时会发生变化。因此,可能无法升级到技术预览的后续版本,而只能进行全新安装。
SUSE 可能会发现某个预览不符合客户或市场需求,或者未遵循企业标准。技术预览可能会随时从产品中删除。SUSE 不承诺未来将提供此类技术的受支持版本。
有关产品随附的技术预览的概述,请参见 https://www.suse.com/releasenotes 上的发行说明。
1 概述 #
借助适用于 SUSE Linux Enterprise 15 SP6 的 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 取代了过去用于 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 服务器时,会安装并配置侦听端口为 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 软件包。选择软件时,可以在安装设置中看到软件包选项。
安装 SUSE Linux Enterprise Server 后,请立即使用 zypper patch
命令检查可用的 RMT 更新,因为 SUSE 会持续发布 RMT 的维护更新。
2.3 在现有系统上安装 #
要在运行中的 SUSE Linux Enterprise Server 系统上安装 RMT,请使用 zypper
:
>
sudo
zypper in rmt-server
2.3.1 在 SLES Minimal VM 上安装 #
SUSE Minimal VM 是一种专为特定使用场景而设计的可自定义极简操作系统,例如,它可充当以下不同形式的对象运行:
容器主机
虚拟机 Guest
设备库系统
小型服务器映像
SLES Minimal VM 映像非常适合作为 RMT 服务器。您可以从公共 SUSE Linux Enterprise Server 下载页面(网址为:https://www.suse.com/download/sles/)下载适用于 KVM、Xen、Microsoft Hyper-V、VMware 和 OpenStack 的 SLES Minimal VM 映像。有关 SLES Minimal VM 的详细信息,请访问 https://documentation.suse.com/smart/virtualization-cloud/html/minimal-vm/index.html。
在 SLES Minimal VM 上安装 RMT 的过程与在现有系统上的安装过相同(请参见第 2.3 节 “在现有系统上安装”))。要在 SLES Minimal VM 上安装 RMT,请以 root
身份从 SLES Minimal VM 命令行运行以下命令:
#
zypper install rmt-server yast2-rmt nginx mariadb
请注意,在 SLES Minimal VM 上安装 RMT 时至少需要 100 GB 磁盘空间,具体取决于您选择镜像的产品。另外还需要至少有两个内核的 CPU 以及 2 GB RAM。
2.4 在 Kubernetes 群集上部署 RMT #
本节介绍如何在 Kubernetes 群集上部署 RMT。它使用 Helm 作为软件包管理器与 Kubernetes 群集交互。有关如何使用 Helm 的更多详细信息,请访问 https://helm.sh/docs/intro/using_helm/。
2.4.1 先决条件 #
运行 Kubernetes 群集
配置为与群集交互的
helm
命令
2.4.2 应用程序组件 #
RMT 应用程序的每个组件都部署在其各自的容器中。RMT 由下列组件组成:
- RMT 服务器
RMT 应用程序服务器的容器化版本,能够通过 Helm 值传递其配置。数据存储在分配到 Kubernetes 群集的卷上。您需要根据所要镜像的储存库数量调整存储空间大小。
- MariaDB
RMT 的数据库后端。由于 RMT 会在启动时创建所需的数据库和表,因此无需执行安装后任务。如果未在
values.yaml
文件中指定口令,系统会自动生成口令。- Nginx
为 RMT 路由配置的 Web 服务器。正确配置 Web 服务器后,您便可将入站流量(用于 RMT)直接定向到此 Nginx 服务。您不需要配置 RMT 入站流量特定的路径处理方式,因为 Nginx 已配置为自行处理此项事宜。
2.4.3 values.yaml
文件 #
RMT 图表包含 values.yaml
文件,其中记录了所有参数并定义了它们的默认值。您可以通过提供自己的值文件来覆盖这些值,例如:
>
cat << EOF > rmt-config.yaml
---
app:
storage:
class: local-path1
scc:
username: "UXXXXXXX"
password: "PASSXXXX"
products_enable:
- SLES/15.3/x86_64
- sle-module-python2/15.3/x86_64
products_disable:
- sle-module-legacy/15.3/x86_64
- sle-module-cap-tools/15.3/x86_64
db:
storage:
class: local-path2
ingress:
enabled: true
hosts:
- host: chart-example.local
paths:
- path: "/"
pathType: Prefix
tls:
- secretName: rmt-cert
hosts:
- chart-example.local
EOF
|
要安装 RMT,请运行以下命令:
>
helm install rmtsle oci://registry.suse.com/suse/rmt-helm -f rmt-config.yaml
2.4.3.1 必需的值 #
- 键:app.scc.password
类型:字符串
默认值:
nil
说明:SUSE Customer Center 代理口令。口令字符串需要用引号括住。如果引号字符
"
是字符串的一部分,则必须使用\
进行转义。- 键:app.scc.username
类型:字符串
默认值:
nil
说明:SUSE Customer Center 代理用户名。用户名字符串需要用引号括住。如果引号字符
"
是字符串的一部分,则必须使用\
进行转义。- 键:app.scc.products_enable
类型:列表
默认值:
[]
说明:要启用镜像的产品列表
- 键:app.scc.products_disable
类型:列表
默认值:
[]
说明:要禁用镜像的产品列表
- 键:app.storage.class
类型:字符串
默认值:
""
说明:Kubernetes
storageclass
。- 键:db.storage.class
类型:字符串
默认值:
""
说明:Kubernetes
storageclass
。- 键:ingress.enabled
类型:布尔
默认值:
false
说明:已启用入站流量
- 键:ingress.hosts[0]
类型:对象
默认值:
{"host":"chart-example.local","paths":[{"path":"/","pathType":"Prefix"}]}
说明:可以从客户端访问 RMT 服务的 DNS 名称
- 键:ingress.tls[0].hosts[0]
类型:字符串
默认值:
"chart-example.local"
说明:可用于从客户端访问 RMT 服务的 DNS 名称
- 键:ingress.tls[0].secretName
类型:字符串
默认值:
"rmt-cert"
说明:TLS 入站流量证书
2.5 使用 YaST 配置 RMT #
按以下过程所述使用 YaST 配置 RMT。假设在新安装的系统上执行此过程。
使用
rmt
模块启动 YaST。>
sudo
yast2 rmt
或者,您也可以启动 YaST,然后选择
› 。输入您的组织身份凭证。要获取您的身份凭证,请参见第 4.1 节 “镜像身份凭证”。
输入新 MariaDB 用户的身份凭证和数据库名称,然后单击
确认。如果已设置 MariaDB
root
用户的口令,您需要输入该口令。如果未设置root
的口令,系统会要求您输入一个新口令。输入 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 证书”。
如果此系统上启用了
firewalld
,请选中相应复选框打开必需的端口。图 2.2︰ 在firewalld
中启用端口 #如果现在尚未启用
firewalld
,而您打算日后启用它,可一律通过运行yast2 rmt
模块来打开相应端口。提示:微调firewalld
设置单击
,可仅打开特定网络接口的相应端口。按
继续。要查看摘要,请单击
。单击 关闭 YaST。YaST 即会启用并启动所有systemd
服务和计时器。
2.6 启用 SLP 声明 #
RMT 包含 SLP 服务描述文件 /etc/slp.reg.d/rmt-server.reg
。要启用 RMT 服务的 SLP 声明,请执行以下步骤:
如果
firewalld
正在运行,请打开相应端口并重新加载firewalld
配置:>
sudo
firewall-cmd --permanent --add-port=427/tcp success>
sudo
firewall-cmd --permanent --add-port=427/udp success>
sudo
firewall-cmd --reload校验 SLP 服务器是否已安装,如果未安装,则加以安装:
>
sudo
zypper install openslp-server启用并启动 SLP 服务:
>
sudo
systemctl enable slpd.service>
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 客户端作业和补丁状态。
功能 |
SMT |
RMT |
---|---|---|
在 SLES 11 上可用 |
是 |
否 |
在 SLES 12 上可用 |
是 |
否 |
在 SLES 15 上可用 |
否 |
是 |
将产品与 SUSE Customer Center 同步 |
是 |
是 |
从储存库镜像 RPM |
是 |
是 |
选择性镜像(指定要镜像的产品) |
是 |
是 |
通过 HTTP 提供 RPM |
是 |
是 |
SLE 15 系统注册 |
是 |
是 |
SLE 12 系统注册 |
是 |
是 |
SLE 11 系统注册 |
是 |
否 |
支持 Red Hat 6 及更低版本 |
是 1 |
否 |
支持 Red Hat 7 及更高版本 |
是 1 |
是 1 |
支持从 SLE 12 迁移到 SLE 15 |
是 2 |
是 |
支持从 SLE 15 SPx 迁移到 15 SPx+1 |
是 2 |
是 |
临时储存库 |
是 |
否 3 |
离线镜像 |
是 |
是 |
NTLM 代理支持 |
是 |
是 |
自定义储存库 |
是 |
是 |
YaST 安装向导 |
是 |
是 |
YaST 管理向导 |
是 |
否 |
客户端管理 |
是 |
否 |
文件去重 |
是 |
是 |
将数据从 SMT 转移到 RMT |
无 |
是 |
将注册数据传输到 SUSE Customer Center |
是 |
是 |
报告 |
是 |
否 |
Web 服务器的自定义 TLS 证书 |
是 |
是 |
清理储存库中不再使用的数据 |
是 |
是 |
Bash 补全 |
否 |
是 |
在 openSUSE Leap 15 上提供 |
否 |
是 4 |
简易开发设置 + contribution guide |
否 |
是 |
100% 测试 coverage |
否 |
是 |
否 |
是 | |
Web 服务器 |
Apache 2 |
Nginx |
平台 |
Perl |
Ruby |
清理不再使用的储存库中的数据 |
是 |
是 |
Bash 补全 |
否 |
是 |
在 Kubernetes 上部署的选项 |
否 |
是 5 |
通过 SUSE Liberty Linux 提供支持,有关更多细节,请访问 https://www.suse.com/products/suse-liberty-linux/。
SMT 仅部分支持将系统迁移到 SLE 15。SLE 15 由多个模块和扩展组成。有些模块只是提供补充性的功能,因此不是必需的。RMT 完全支持迁移到 SLE 15 以及在 SLE 15 内部迁移,因此它只会添加最少量的必需模块。SMT 不完全支持这种迁移,它将在系统上启用所有可用模块。
功能由 SUSE Manager 提供。
仅通过 self-support 提供。
有关详细信息,请参见 第 2.4 节 “在 Kubernetes 群集上部署 RMT”。
3.2 导出 SMT 数据 #
通过运行
zypper up
更新已安装的 SMT 服务器。要将 SSL 证书连同其余数据一起导出,请运行
smt-data-export
。请记得将证书存放在安全位置。如果您不想从 SMT 导出 SSL 证书,请运行
smt-data-export --no-ssl-export
。导出的配置现已保存到
smt-data-export.TIMESTAMP.tar.gz
。将文件复制到新 RMT 服务器可以访问的位置。
3.3 将 SMT 数据导入到 RMT #
运行
zypper up
以确保所安装的 RMT 为最新版本。将导出的
.tar.gz
文件复制到某个空目录,并将其解压缩。然后进入新目录:>
mkdir EMPTY_DIR
>
cd EMPTY_DIR
>
tar xf /PATH/TO/smt-data-export.TIMESTAMP.tar.gz
>
cd smt-data-export
如果您之前选择从 SMT 导出 SSL 证书,请将 CA 私用密钥和证书复制到
/etc/rmt/ssl/
中:>
sudo
cp ssl/cacert.key /etc/rmt/ssl/rmt-ca.key
>
sudo
cp ssl/cacert.pem /etc/rmt/ssl/rmt-ca.crt
按第 2.5 节 “使用 YaST 配置 RMT”中所述运行 YaST RMT 配置模块。如果您已导入 SMT CA 证书,请将 SMT 服务器的域添加到新 SSL 证书的常用名。
运行 RMT 同步功能以从 SUSE Customer Center 获取产品和储存库数据。
>
sudo
rmt-cli sync
导入来自 SMT 服务器的数据。
>
sudo
rmt-data-import -d ./
可选:如果 RMT 服务器的 URL 发生变化,请在
/etc/SUSEConnect
中更改客户端的 URL 参数,以指向新的 RMT 服务器。或者更改 DNS 记录以重新分配 RMT 服务器的主机名。可选:将 SMT 中的镜像储存库数据转移到 RMT,并调整所复制数据的所有权。
>
sudo
cp -r /var/www/htdocs/repo/* /usr/share/rmt/public/repo/
>
sudo
chown -R _rmt:nginx /usr/share/rmt/public/repo
提示RMT 服务器上自定义储存库数据的存储路径与 SMT 上的存储路径不同。在 RMT 中,源服务器 URL 的目录结构将复制到顶级目录结构中
http://download.opensuse.org/debug/distribution/leap/15.6/repo/oss
此 URL 在 RMT 服务器上的路径对应于
/usr/share/rmt/public/repo/debug/distribution/leap/15.6/repo/oss
SMT 服务器上的自定义储存库默认已禁用。如果您要将其镜像到 RMT,请在镜像之前将其启用。
通过运行以下命令检查有无自定义储存库:
>
sudo
rmt-cli repos custom list
该命令会显示所有自定义储存库的表。第一列包含每个储存库的
ID
,Mirror?
列显示false
。通过运行以下命令启用您要镜像的每个自定义储存库:
>
sudo
rmt-cli repos custom enable ID
通过启动镜像过程更新储存库中的软件包:
>
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 服务器的储存库。
RMT 不支持使用 SUSE Linux Enterprise Server 11 及以下版本的客户端。
4.1 镜像身份凭证 #
您需要有组织身份凭证才能创建 SUSE Linux Enterprise 储存库的本地镜像。您可以从 SUSE Customer Center 获取身份凭证。
要从 SUSE Customer Center 获取身份凭证,请执行以下步骤:
访问 SUSE Customer Center (https://scc.suse.com) 并登录。
如果您是多个组织的成员,请从左侧边栏中选择要使用的组织。
从顶部菜单中选择
。右上角即会显示身份凭证。
应使用 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
。
>
sudo
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.
如果计时器未启用或未启动,请手动将其启动。
>
sudo
systemctl enable --now rmt-server-sync.timer
要手动更新 RMT 数据库,请使用 rmt-cli
sync
命令。有关详细信息,请参见第 6.1.2 节 “sync
”。
4.3 镜像软件包 #
RMT 服务器上会镜像所启用的储存库的软件包。系统会每天定期下载一次软件包。不过,您也可以随时手动触发下载。
定期镜像通过 systemd
计时器 rmt-server-mirror.timer
激活。要显示其状态(例如下次运行时间),请使用 systemctl status
。
#
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.
如果计时器未启用或未启动,请手动将其启动。
>
sudo
systemctl enable --now rmt-server-mirror.timer
要手动更新镜像的软件包,请使用 rmt-cli
mirror
命令。有关详细信息,请参见第 6.1.6 节 “mirror
”。
4.4 启用和禁用储存库镜像 #
可以单独或者按产品启用或禁用储存库镜像。一次可以指定一个或多个储存库或产品。如果储存库处于启用状态,系统会在镜像过程中下载并更新其软件包。要启用或禁用储存库镜像,您需要提供产品字符串或 ID 或者储存库名称或 ID。您之所以想要启用或禁用某个产品,是因为这样会自动启用或禁用与该产品关联的所有储存库。
4.4.1 使用产品 #
要启用或禁用产品的所有储存库,请使用 rmt-cli products enable
ID
和 rmt-cli products
disable ID
命令。要检索已启用产品的 ID,请使用 rmt-cli products
list
命令。要获取仍然可用的已禁用产品的 ID,请运行 rmt-cli products list --all
命令。
示例:
>
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 | | | | [...]>
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..>
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 或字符串的空格分隔列表,例如:
>
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 ID
和 rmt-cli repos disable
ID
命令。要检索已启用储存库的 ID,请使用 rmt-cli repos
list
命令。如果您需要获取已禁用但可访问的储存库的 ID,请执行 rmt-cli repos list --all
命令。
示例:
>
sudo
rmt-cli repos list --all
+--------+-------------------------+-------------------------------------------+ | ID | Name | Description | +--------+-------------------------+-------------------------------------------+ [...] | 3061 | SUSE-PackageHub-15-Pool | SUSE-PackageHub-15-Pool for sle-15-x86_64 | [...] +--------+-------------------------+-------------------------------------------+>
sudo
rmt-cli repos enable 3061
Repository by ID 3061 successfully enabled.>
sudo
rmt-cli repos disable 3061
Repository by ID 3061 successfully disabled. To clean up downloaded files, please run 'rmt-cli repos clean'
要一次启用或禁用多个储存库,请指定储存库 ID 的空格分隔列表,例如:
>
sudo
rmt-cli repos enable 2526 3263
Repository by ID 2526 successfully enabled. Repository by ID 3263 successfully enabled.>
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
以继续。
>
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.
要删除已禁用的储存库数据,请手动去除其对应的目录:
>
sudo
rm -r /usr/share/rmt/public/repo/SUSE/Products/PRODUCT/VERSION/ARCHITECTURE/
4.6 添加自定义储存库 #
您可以使用 RMT 服务器镜像自定义储存库。这些储存库不是 SUSE Customer Center 提供的。它们可能是第三方供应商(例如 Open Build Service)提供的,也可能是使用 createrepo
创建的。
自定义储存库可以作为独立储存库使用,也可以关联到产品。这样,您便可以在已注册到 RMT 服务器的客户端上使用一个命令连接多个储存库。
下面的示例过程演示了镜像第三方储存库的过程。
将远程储存库添加到 RMT 服务器。将 URL 替换为储存库的 URL。将 NAME 替换为您为储存库所选择的名称。
#
rmt-cli repos custom add URL NAME
列出所有自定义储存库以获取新储存库的 ID。
#
rmt-cli repos custom list
(可选)将新的自定义储存库关联到某个产品。例如,如果所有桌面客户端都需要这个新的自定义储存库,则可将其关联到
SUSE Linux Enterprise Desktop
产品。#
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,然后运行:#
zypper mr -e REPO_ID启用新自定义储存库的镜像。
#
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
则位于气隙网络中。
登录到服务器
sun
。root@sun #
rmt-cli sync
root@sun #
rmt-cli mirror
连接一个 USB 驱动器(假设为
/dev/sdb
),并将其挂载到所需位置(例如/mnt/external
)。root@sun #
mount /dev/sdb1 /mnt/external
导出有关可用储存库和产品的数据。
root@sun #
rmt-cli export data /mnt/external/
导出已启用储存库的列表。在下一步导出储存库时需要使用该导出文件。
root@sun #
rmt-cli export settings /mnt/external/
导出镜像的 RPM 软件包。此过程可能需要较长时间,具体视镜像储存库的大小而定。
root@sun #
rmt-cli export repos /mnt/external/
从
sun
卸载并拔出磁盘,然后转到sirius
。root@sun #
umount /mnt/external
通过运行
yast2 rmt
在sirius
上设置 RMT(如果尚未执行该操作)。如果进行的是脱机 RMT 设置,请在 屏幕上选择 。将 USB 驱动器连接到
sirius
,并将其挂载到/mnt/external
中。root@sirius #
mount /dev/sdb1 /mnt/external
导入有关可用储存库和产品的元数据。
root@sirius #
rmt-cli import data /mnt/external/
导入镜像的 RPM 软件包。此过程可能需要较长时间,具体视镜像储存库的大小而定。
root@sirius #
rmt-cli import repos /mnt/external/
在
sirius
上根据需要启用储存库。有关详细信息,请参见第 4.4 节 “启用和禁用储存库镜像”。
如果您的气隙服务器 (sirius
) 具有许多启用的储存库,或者启用的储存库经常更改,我们建议从此服务器中导出储存库设置。
然后可将导出的设置导入到与 SUSE Customer Center 相连的服务器 (sun
) 中。这样便能确保 sun
下载 sirius
所需的所有数据。
5 将客户端配置为使用 RMT #
可以将运行 SUSE Linux Enterprise 12 或以上版本的所有计算机都配置为注册到 RMT 并从中下载软件更新,而不是直接与 SUSE Customer Center 通讯。
我们建议您通过安全的 HTTPS 协议向 RMT 服务器注册(本文档中的所有示例均使用该协议)。不过,您也可以通过不安全的 HTTP 协议向 RMT 服务器注册。请仅在使用该协议对您的设置有益并且您处于安全性不是很重要的可信环境中时,才使用此方法。
要将客户端配置为使用 RMT 服务器,请使用以下其中一种方法:
提供包含引导参数的所需信息。请参见第 5.1 节 “使用引导参数配置客户端”。
使用 AutoYaST 配置文件配置客户端。请参见第 5.2 节 “使用 AutoYaST 配置文件配置客户端”。
使用
rmt-client-setup
命令。请参见第 5.3 节 “使用rmt-client-setup
配置客户端”。在安装期间或之后使用 YaST 注册模块。请参见第 5.4 节 “使用 YaST 配置客户端”。
如果您需要 RMT 服务器的 CA 证书,可以在 /etc/rmt/ssl/rmt-ca.crt
和 https://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 服务器从不可信 CA 获取新证书,客户端需要检索新 CA 证书文件。YaST 会显示用于导入新证书的对话框。如果您确认导入新证书,旧证书会替换为新证书。
5.2 使用 AutoYaST 配置文件配置客户端 #
您可以通过 AutoYaST 配置文件将客户端配置为注册到 RMT 服务器。要了解如何创建 AutoYaST 配置文件和准备自动安装,请参见《AutoYaST 指南》。本节仅介绍针对 RMT 的配置。
要使用 AutoYaST 配置特定于 RMT 的数据,请执行适用于相关 RMT 客户端版本的步骤。
以
root
身份启动 YaST,然后选择 › 启动图形 AutoYaST 前端。如果要从命令行启动图形 AutoYaST 前端,可以使用
yast2 autoyast
命令来完成。选择
› 以打开现有的配置文件。使用 › 基于当前系统配置创建一个配置文件,或者使用空的配置文件。选择
› 。将显示当前配置的概述。单击
。选中
,在 中设置 RMT 服务器的 URL,您还可以设置 。服务器 URL 的可能值与内核参数regurl
的可能值相同。对于 SSL 证书位置,您可以使用采用 HTTP 或 HTTPS 的 URL。针对要部署的系统执行所有其他所需配置,然后单击
返回主屏幕。选择
› ,然后输入配置文件的名称,例如autoinst.xml
。
5.3 使用 rmt-client-setup
配置客户端 #
/usr/share/rmt/public/tools/rmt-client-setup
脚本在软件包 rmt-server 中提供。此脚本可用于将客户端计算机配置为使用 RMT 服务器,还可用于将现有客户端重新配置为使用其他 RMT 服务器。
要通过 rmt-client-setup
将客户端计算机配置为使用 RMT,请执行以下步骤:
从 RMT 服务器下载
rmt-client-setup
:#
curl http://RMT_SERVER/tools/rmt-client-setup --output rmt-client-setup
使用 RMT 服务器的 URL 作为参数运行脚本。
#
sh rmt-client-setup https://RMT_SERVER/
执行此脚本会将 RMT CA 的证书导入到可信证书存储区中。
或者,您也可以指定服务器证书的正确指纹或路径。有关详细信息,请参见
sh rmt-client-setup --help
。该脚本下载服务器的 CA 证书。按 Y 接受该证书。现在,该工具即会在客户端上执行所有必要的修改。
使用
SUSEConnect
添加更多产品。有关细节,请运行SUSEConnect --help
。
5.4 使用 YaST 配置客户端 #
要将客户端配置为注册到 RMT 服务器,请使用 YaST yast2 registration
。
在客户端上无需提供身份凭证,您可以将相关字段留空。单击
并输入其 URL。然后单击 ,直到退出模块。5.5 将客户端配置为使用自定义的独立储存库 #
如果您在 RMT 服务器上创建了自定义的独立储存库,使用 SUSEConnect
将不会在客户端计算机上注册该储存库,因为它没有父产品。
要手动添加该储存库,请执行以下步骤:
将您的网页浏览器指向以下 RMT 服务器 URL:
https://RMT_SERVER_HOSTNAME/repo/
通过目录结构将浏览器导航到您的自定义储存库的
repodata/
子目录。在客户端计算机上添加发现的储存库 URL:
>
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 2 “升级路径和方法”。
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-cli
或 rmt-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 repository [IDs]
按 ID 列表镜像启用的储存库。
rmt-cli mirror product [IDs]
按 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
命令输出中的 列所标识的系统。rmt-cli systems purge
此命令用于列出非活动系统,并具有用于删除非活动系统的选项。它的选项如下:
--before DATE
— 列出自 DATE 至今一直处于非活动状态的系统。默认值为最近 3 个月。--no-confirmation
— 允许管理员直接删除匹配的系统,而无需确认。
#
rmt-cli systems purge --before 2021-06-16 +------------+----------+---------------------+---------------------+----------+ | Login | Hostname | Registration time | Last seen | Products | +------------+----------+---------------------+---------------------+----------+ | SCC_c5b0.. | 6e485e48b| 2021-06-11 13:38:07 | 2021-06-11 13:52:01 | SLES/15..| | SCC_5fcf.. | node52 | 2021-06-15 13:29:24 | 2021-06-15 13:31:25 | SLES/15..| +------------+----------+---------------------+---------------------+----------+ Do you want to delete these systems? (y/n) y Purged systems that have not contacted this RMT since 2021-06-16.
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 clean packages
#
rmt-cli clean packages
命令会删除本地镜像的悬空文件及其数据库条目。如果文件满足以下所有特征,则会被视为悬空文件:
该文件存在于包含主文件和元数据
repomd.xml
文件的储存库目录中。元数据文件中不再引用该文件。
该文件至少已存在两天。
您可以将以下选项传递给 rmt-cli clean
packages
命令:
- --dry-run
生成所有受影响文件的报告,而不实际清理它们或其数据库条目。
- --verbose
列显有关每个已清理文件的详细信息。
- --non-interactive
在继续进行清理过程前跳过确认。
6.1.11 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.5 节 “使用 YaST 配置 RMT”中所述。只有代理配置需要手动输入。此处介绍了其他配置参数供您参考。
可以在 /etc/rmt.conf
文件中找到所有可用的配置选项。
6.3.1.1 镜像设置 #
mirroring
部分可让您调整镜像行为。
mirror_src
决定是否镜像源 RPM 软件包(体系结构为
src
)。dedup_method
如果设为
hardlink
,将在镜像期间创建硬链接。如果文件系统不支持硬链接,则可将其设为copy
。可能的值:hardlink
、copy
。
6.3.1.2 HTTP 客户端设置 #
http_client
部分定义 RMT 的全局 HTTP 连接设置。
verbose
可让更多调试输出记录到
systemd
日志。proxy
代理服务器 URL(包含协议和端口号),例如
http://proxy_url:8080
。noproxy
不应经由代理连接的域列表(以逗号分隔)。例如,:
localhost.mylocaldomain
.proxy_auth
此设置决定了代理身份验证机制。可能的值为:
none
、basic
、digest
、gssnegotiate
、ntlm
、digest_ie
、ntlm_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
中用作备份目标的外部磁盘或网络共享。
切换到备份目录。
#
cd /mnt/backup
创建包含 SQL 数据库转储的文件。您需要提供安装期间为
rmt
数据库用户设置的口令。#
mysqldump -u rmt -p rmt > rmt_backup.sql
(可选)创建镜像数据的副本。
#
mkdir repos
#
rmt-cli export repos ./repos/
7.2 恢复备份 #
此过程详细说明如何通过第 7.1 节 “创建备份”中创建的备份恢复 RMT 服务器。假设备份挂载到 /mnt/backup
中,并且您要在新安装的 SLES 上恢复服务器。
按第 2 章 “RMT 安装和配置”中所述安装并配置 RMT 服务器。
转到备份目录。
#
cd /mnt/backup/
使用
mysql
去除新创建的数据库并导入数据。#
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 changedMariaDB [rmt]>
source rmt_backup.sql;
[...]MariaDB [rmt]>
quit
(可选)导入导出的储存库。
#
rmt-cli import repos ./repos/
同步您的数据并更新储存库。
#
rmt-cli sync
#
rmt-cli mirror
8 管理 TLS/SSL 证书 #
8.1 重新生成 HTTPS 证书 #
在 HTTPS 证书失效之前,或者若要包含其他通用备用名称,应重新生成该证书。如果只是重新生成 HTTPS 证书,则无需在已注册到 RMT 服务器的客户端计算机上执行其他操作。
停止 nginx 和 rmt-server 服务。
#
systemctl stop nginx
#
systemctl stop rmt-server
去除之前生成的证书。
#
rm /etc/rmt/ssl/rmt-server.*
按照第 2.5 节 “使用 YaST 配置 RMT”中所述运行
yast rmt
模块。
8.2 重新生成 CA 证书和 HTTPS 证书 #
CA 证书失效后或者发生安全问题时,可以重新生成该证书。
必须在已注册到 RMT 服务器的所有客户端上导入新生成的 CA 证书。可以按第 5.3 节 “使用 rmt-client-setup
配置客户端”中所述在客户端计算机上运行 rmt-client-setup
脚本来完成此操作。
停止 nginx 和 rmt-server 服务。
#
systemctl stop nginx
#
systemctl stop rmt-server
去除之前生成的 CA 和 HTTPS 证书。
#
rm /etc/rmt/ssl/rmt-ca.*
#
rm /etc/rmt/ssl/rmt-server.*
按照第 2.5 节 “使用 YaST 配置 RMT”中所述运行
yast rmt
模块。
A GNU licenses #
This appendix contains the GNU Free Documentation License version 1.2.
GNU Free Documentation License #
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE #
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or non-commercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS #
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
2. VERBATIM COPYING #
You may copy and distribute the Document in any medium, either commercially or non-commercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY #
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS #
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
State on the Title page the name of the publisher of the Modified Version, as the publisher.
Preserve all the copyright notices of the Document.
Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
Include an unaltered copy of this License.
Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.
Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.
Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS #
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS #
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS #
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
8. TRANSLATION #
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
9. TERMINATION #
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE #
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See https://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents #
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.