跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / RMT 指南 / RMT 工具和配置文件
适用范围 SUSE Linux Enterprise Server 15 SP6

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 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 命令输出中的 Login 列所标识的系统。

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。可能的值:hardlinkcopy

6.3.1.2 HTTP 客户端设置

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

verbose

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

proxy

代理服务器 URL(包含协议和端口号),例如 http://proxy_url:8080

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 配置客户端”