自定义通道
自定义通道使您能够创建自己的软件包和储存库,然后可以使用这些软件包和储存库来更新您的客户端。它们还使您能够在环境中使用第三方供应商提供的软件。
本节提供有关如何创建、管理和删除自定义通道的更多细节。您必须拥有管理员特权才能创建和管理自定义通道。
1. 创建自定义通道和储存库
在创建自定义通道之前,请确定要将其关联到哪个基础通道,以及要为内容使用哪些储存库。
如果您需要将自定义软件包安装在客户端系统上,可以创建自定义子通道来管理它们。需要在 SUSE Multi-Linux Manager Web UI 中创建通道,并为软件包创建储存库,然后将该通道指派到系统。
不要创建其中有软件包与客户端系统不兼容的子通道。 |
如果您要使用供应商提供的软件包,可以选择供应商通道作为基础通道。或者,选择无
以将自定义通道设为基础通道。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后单击 创建通道。 -
在
创建软件通道
页面上,为您的通道命名(例如My Tools SLES 15 SP1 x86_64
)和标签(例如my-tools-sles15sp1-x86_64
)。 标签不能包含空格或大写字母。 -
在
父通道
下拉菜单中选择相关的基础通道(例如SLE-Product-SLES15-SP1-Pool for x86_64
)。 确保为软件包选择兼容的父通道。 -
在
体系结构
下拉菜单中选择适当的硬件体系结构(例如x86_64
)。 -
根据环境的需要,在联系方法细节、通道访问控制和 GPG 字段中提供任何附加信息。
-
单击 创建通道。
自定义通道有时需要额外的安全设置。许多第三方供应商使用 GPG 保护软件包。如果您想要在自定义通道中使用受 GPG 保护的软件包,需要信任用来为元数据签名的 GPG 密钥。然后,可以选中包含已签名的元数据?
复选框,以将软件包元数据与受信任的 GPG 密钥进行匹配。
如果远程通道和储存库已使用 GPG 密钥签名,则您可以导入并信任这些 GPG 密钥。例如,从 SUSE Multi-Linux Manager Server 上的命令行执行 spacewalk-repo-sync
:
/usr/bin/spacewalk-repo-sync -c <通道标签名称> -t yum
基础 zypper
调用将导入密钥(如果已提供)。Web UI 不提供此功能。
This only works when the repository you want to mirror is set up in a special way and provides the "key" in the repository next to the signature. This is the case for all repositories generated by the Open Build Service (OBS). For other repositories special preparation steps are needed, as described further below.
当您创建新通道时,默认会选中 |
仅当储存库是有效的软件储存库时,才能使用 Web UI 将其添加到 SUSE Multi-Linux Manager。请提前检查是否提供了所需的储存库元数据。可以使用 createrepo
和 reprepro
等工具进行这种检查。mgrpush
可帮助您将单个 RPM 推送到通道,而无需创建储存库。有关详细信息,请参见 createrepo_c
和 reprepro
的手册页。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后单击 创建储存库。 -
在
创建储存库
页面上,为该储存库指定标签(例如my-tools-sles15sp1-x86_64-repo
)。 -
在
储存库 URL
字段中,提供包含repodata
文件的目录的路径(例如file:///opt/mytools/
)。可以在此字段中使用任何有效寻址协议。 -
取消选中
包含已签名的元数据?
复选框。 -
可选:如果您的储存库需要客户端证书身份验证,请填写 SSL 字段。
-
单击 创建储存库。
仅当您要镜像的储存库中在签名旁边提供了“key”时,才能正常完成上述过程。OBS 生成的所有储存库都是这种情况,但不是由 OBS 提供的操作系统储存库并非如此。
如果您要使用的储存库不包含 GPG 密钥,您可以自己提供一个 GPG 密钥并手动将其导入密钥环。如果您使用 gpg
命令行工具将密钥导入 /var/lib/spacewalk/gpgdir
密钥环,将永久存储该密钥。即使清理了 chroot 环境,也会持久保存该密钥。
-
用于将密钥导入密钥环的命令是:
mgradm gpg add /path/to/gpg.key
使用 |
uyuni_suite
-
是必需的。在 Debian 文档中,此参数也名为
distribution
。使用此参数可以指定 apt 源。如果不提供此参数,则会使用原始方法。如果该参数以/
结尾,则会将储存库标识为平面储存库。 uyuni_component
-
是可选的。此参数只能指定一个组件。无法列出组件。一个 apt 源项允许指定多个组件,但对于 Uyuni 无法做到这一点。对此,您必须为每个组件创建单独的储存库。
uyuni_arch
-
是可选的。如果将其省略,则会使用 SQL 查询为数据库中的通道计算体系结构名称。如果
uyuni_arch
与通道体系结构不匹配(有时体系结构命名不明确),请显式指定此参数。
下面提供了一些示例:
类型 | 源行/URL |
---|---|
apt 源行 |
|
URL 映射 |
|
|
|
apt 源行 |
|
URL 映射 |
|
以下有关 Debian 储存库定义格式的信息基于 https://wiki.debian.org/DebianRepository/Format#Overview。 储存库定义格式如下: deb URI 套件 [组件 1] [组件 2] [...] 例如: deb https://deb.debian.org/debian/dists stable main 或 deb https://pkg.jenkins.io/debian-stable binary/ 对于每一对 |
-
通过导航到
,并单击新建的自定义通道的名称,将新储存库指派到自定义通道。 -
导航到
储存库
选项卡,确保已选中您要分配到该通道的储存库。单击 保存储存库。 -
默认情况下,同步过程会立即开始。
有关通道同步的详细信息,请参见 自定义通道同步。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后选择要将自定义通道添加到的密钥。 -
在
细节
选项卡上的子通道
列表中,选择要关联的通道。 如果需要,您可以选择多个通道。 -
单击 更新激活密钥。
2. 自定义通道同步
为了避免错过重要更新,SUSE 建议通过远程储存库更改来使您的自定义通道保持最新。
默认情况下,您创建的所有自定义通道将自动同步。具体而言,在以下情况下将发生同步:
-
在 UI 中或者使用
spacewalk-common-channels
将储存库添加到通道后 -
在执行日常任务
mgr-sync-refresh-default
的过程中,这将同步您的所有自定义通道和供应商通道。
要禁用此默认行为,请在 /etc/rhn/rhn.conf
中设置:
java.unify_custom_channel_management = 0
关闭此属性后,将不会自动执行同步,要使自定义通道保持最新,您需要:
-
通过导航到
同步
选项卡并单击 立即同步 来手动同步该通道。 -
在
储存库
选项卡中设置自动同步日程安排。
该过程开始后,可通过多种方式检查通道是否已完成同步:
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后选择产品
选项卡。 产品同步时,此对话框将为每个产品显示一个完成栏。 -
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后单击与储存库关联的通道。 导航到menu:[储存库 > 同步]选项卡。储存库名称旁边会显示同步状态
。 -
在命令提示符下检查同步日志文件:
tail -f /var/log/rhn/reposync/<channel-label>.log
每个子通道在同步过程中会生成自身的日志。您需要检查所有基础通道和子通道日志文件,以确保同步完成。
可使用以下自定义通道同步选项:
- 保留已从储存库中去除的通道中的软件包
-
此选项会关闭
严格
模式。 - 不同步勘误
-
不要同步补丁。
- 仅同步最新软件包
-
仅同步最新的软件包版本。
- 创建可无人值守安装树
-
此选项准备一个随时可用于自动安装 Kickstart 的目录树。
- 出现任何错误时终止
-
如果发生错误,则停止同步。
将为每个通道永久保存这些选项。在执行同步之前,单击立即同步按钮也会保存通道选项。
3. 将软件包和补丁添加到自定义通道
如果您创建新的自定义通道但未从现有通道克隆,则创建的通道不包含任何软件包或补丁。可以使用 SUSE Multi-Linux Manager Web UI 添加所需的软件包和补丁。
自定义通道只能包含克隆的或者自定义的软件包或补丁,并且这些软件包或补丁必须与通道的基础体系结构相匹配。添加到自定义通道的补丁必须适用于通道中的软件包。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后转到软件包
选项卡。 -
可选:通过导航到
列出/去除
选项卡查看当前包含在通道中的所有软件包。 -
通过导航到
添加
选项卡将新软件包添加到通道。 -
选择要为其提供软件包的父通道,然后单击 查看软件包 以填充列表。
-
检查要添加到自定义通道的软件包,然后单击 添加软件包。
-
如果您觉得选择合适,请单击 确认添加 以将软件包添加到通道。
-
可选:可以通过导航到
,然后转到 选项卡,将当前通道中的软件包与其他通道中的软件包进行比较。 要使两个通道相同,请单击 合并差异 按钮,然后解决任何冲突。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后转到补丁
选项卡。 -
可选:通过导航到
列出/去除
选项卡查看当前包含在通道中的所有补丁。 -
通过导航到
添加
选项卡,然后选择要添加的补丁类型,将新补丁添加到通道。 -
选择要为其提供补丁的父通道,然后单击 浏览关联补丁 以填充列表。
-
检查要添加到自定义通道的补丁,然后单击 确认。
-
如果您觉得选择合适,请单击 确认 以将补丁添加到通道。
4. 管理自定义通道
SUSE Multi-Linux Manager 管理员和通道管理员可以更改或删除任何通道。
要授予其他用户更改或删除通道的权限,请导航到管理者
选项卡,并选中要向其授予权限的用户。单击 更新 以保存更改。
如果您删除某个已指派到一组客户端的通道,与已删除通道关联的任何客户端的通道状态将立即更新。这是为了确保在储存库文件中准确反映所做的更改。 |
无法使用 Web UI 删除 SUSE Multi-Linux Manager 通道。只能删除自定义通道。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后选择要删除的通道。 -
单击 删除软件通道。
-
在
删除通道
页面上,检查您要删除的通道的细节,然后选中取消订阅系统
复选框,以从任何可能仍已订阅的系统中去除该自定义通道。 -
单击 删除通道。
删除通道时,不会自动去除其中的软件包。您无法更新其通道已被删除的软件包。
可以在 SUSE Multi-Linux Manager Web UI 中删除与通道没有关联的软件包。导航到
,选中要去除的软件包,然后单击 删除软件包。