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