自定义通道
自定义通道使您能够创建自己的软件包和储存库,然后可以使用这些软件包和储存库来更新您的客户端。它们还使您能够在环境中使用第三方供应商提供的软件。
本节提供有关如何创建、管理和删除自定义通道的更多细节。您必须拥有管理员特权才能创建和管理自定义通道。
1. 创建自定义通道和储存库
在创建自定义通道之前,请确定要将其关联到哪个基础通道,以及要为内容使用哪些储存库。
如果您需要将自定义软件包安装在客户端系统上,可以创建自定义子通道来管理它们。需要在 SUSE Manager Web UI 中创建通道,并为软件包创建储存库,然后将该通道指派到系统。
不要创建其中有软件包与客户端系统不兼容的子通道。 |
如果您要使用供应商提供的软件包,可以选择供应商通道作为基础通道。或者,选择无
以将自定义通道设为基础通道。
-
在 SUSE 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 Manager Server 上的命令行执行 spacewalk-repo-sync
:
/usr/bin/spacewalk-repo-sync -c <通道标签名称> -t yum
基础 zypper
调用将导入密钥(如果已提供)。Web UI 不提供此功能。
仅当您要镜像的储存库是以特殊方式设置的,并且储存库中的签名旁边提供了“key”时,才可以正常完成此操作。开放式构建服务 (OBS) 生成的所有储存库都是这种情况。对于其他储存库,需要完成特殊的准备步骤(参见下文!)。
当您创建新通道时,默认会选中 |
如果您正在注册传统的 Red Hat Enterprise Linux 7 或 SLES Expanded Support 7 客户端,有可能会看到未签名软件包的错误。有关详细信息,请参见 对注册传统 Red Hat 客户端时出现的问题进行查错。 |
仅当储存库是有效的软件储存库时,才能使用 Web UI 将其添加到 SUSE Manager。请提前检查是否提供了所需的储存库元数据。可以使用 createrepo
和 reprepro
等工具进行这种检查。mgrpush
可帮助您将单个 RPM 推送到通道,而无需创建储存库。有关详细信息,请参见 createrepo_c
和 reprepro
的手册页。
-
在 SUSE 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 环境,也会持久保存该密钥。
-
用于将密钥导入 pub 密钥环的 gpg 命令是:
gpg --keyring /var/lib/spacewalk/gpgdir --import /path/to/gpg.key gpg --edit-key <密钥 ID>
使用 |
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 Manager Web UI 中,导航到
,然后选择要将自定义通道添加到的密钥。 -
在
细节
选项卡上的子通道
列表中,选择要关联的通道。 如果需要,您可以选择多个通道。 -
单击 更新激活密钥。
2. 自定义通道同步
为了避免错过重要更新,SUSE 建议通过远程储存库更改来使您的自定义通道保持最新。
系统默认不会自动同步自定义通道。为了确保自定义通道保持最新状态,您需要:
-
通过导航到
同步
选项卡并单击 立即同步 来手动同步该通道。 -
在
储存库
选项卡中设置自动同步日程安排。
您也可以为创建的所有自定义通道启用自动同步。要实现此目的,请在 /etc/rhn/rhn.conf
中进行如下设置:
java.unify_custom_channel_management = 1
启用此属性后,系统将会自动执行一次同步:
-
在 UI 中或者使用
spacewalk-common-channels
将储存库添加到通道后 -
在执行日常任务
mgr-sync-refresh-default
的过程中,这将同步您的所有自定义通道和供应商通道。
该过程开始后,可通过多种方式检查通道是否已完成同步:
-
在 SUSE Manager Web UI 中,导航到
,然后选择产品
选项卡。 产品同步时,此对话框将为每个产品显示一个完成栏。 -
在 SUSE Manager Web UI 中,导航到
,然后单击与储存库关联的通道。 导航到 选项卡。储存库名称旁边会显示同步状态
。 -
在命令提示符下检查同步日志文件:
tail -f /var/log/rhn/reposync/<channel-label>.log
每个子通道在同步过程中会生成自身的日志。您需要检查所有基础通道和子通道日志文件,以确保同步完成。
3. 将软件包和补丁添加到自定义通道
如果您创建新的自定义通道但未从现有通道克隆,则创建的通道不包含任何软件包或补丁。可以使用 SUSE Manager Web UI 添加所需的软件包和补丁。
自定义通道只能包含克隆的或者自定义的软件包或补丁,并且这些软件包或补丁必须与通道的基础体系结构相匹配。添加到自定义通道的补丁必须适用于通道中的软件包。
-
在 SUSE Manager Web UI 中,导航到
,然后转到软件包
选项卡。 -
可选:通过导航到
列出/去除
选项卡查看当前包含在通道中的所有软件包。 -
通过导航到
添加
选项卡将新软件包添加到通道。 -
选择要为其提供软件包的父通道,然后单击 查看软件包 以填充列表。
-
检查要添加到自定义通道的软件包,然后单击 添加软件包。
-
如果您觉得选择合适,请单击 确认添加 以将软件包添加到通道。
-
可选:可以通过导航到
,然后转到 选项卡,将当前通道中的软件包与其他通道中的软件包进行比较。 要使两个通道相同,请单击 合并差异 按钮,然后解决任何冲突。
-
在 SUSE Manager Web UI 中,导航到
,然后转到补丁
选项卡。 -
可选:通过导航到
列出/去除
选项卡查看当前包含在通道中的所有补丁。 -
通过导航到
添加
选项卡,然后选择要添加的补丁类型,将新补丁添加到通道。 -
选择要为其提供补丁的父通道,然后单击 浏览关联补丁 以填充列表。
-
检查要添加到自定义通道的补丁,然后单击 确认。
-
如果您觉得选择合适,请单击 确认 以将补丁添加到通道。
4. 管理自定义通道
SUSE Manager 管理员和通道管理员可以更改或删除任何通道。
要授予其他用户更改或删除通道的权限,请导航到管理者
选项卡,并选中要向其授予权限的用户。单击 更新 以保存更改。
如果您删除某个已指派到一组客户端的通道,与已删除通道关联的任何客户端的通道状态将立即更新。这是为了确保在储存库文件中准确反映所做的更改。 |
无法使用 Web UI 删除 SUSE Manager 通道。只能删除自定义通道。
-
在 SUSE Manager Web UI 中,导航到
,然后选择要删除的通道。 -
单击 删除软件通道。
-
在
删除通道
页面上,检查您要删除的通道的细节,然后选中取消订阅系统
复选框,以从任何可能仍已订阅的系统中去除该自定义通道。 -
单击 删除通道。
删除通道时,不会自动去除其中的软件包。您无法更新其通道已被删除的软件包。
可以在 SUSE Manager Web UI 中删除与通道没有关联的软件包。导航到
,选中要去除的软件包,然后单击 删除软件包。