自定义通道
自定义通道使您能够创建自己的软件包和储存库,然后可以使用这些软件包和储存库来更新您的客户端。它们还使您能够在环境中使用第三方供应商提供的软件。
本节提供有关如何创建、管理和删除自定义通道的更多细节。您必须拥有管理员特权才能创建和管理自定义通道。
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
This command and procedure is for temporary GPG key synchronization only. For storing the key permantenly, see this section later on.
基础 zypper 调用将导入密钥(如果已提供)。Web UI 不提供此功能。
仅当您要镜像的储存库是以特殊方式设置的,并且储存库中的签名旁边提供了“key”时,才可以正常完成此操作。开放式构建服务 (OBS) 生成的所有储存库都是这种情况。对于其他储存库,需要完成特殊的准备步骤(参见下文!)。
| 当您创建新通道时,默认会选中 | 
仅当储存库是有效的软件储存库时,才能使用 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 环境,也会持久保存该密钥。
- 
On the container host, the command to import a key into the keyring, is: mgradm gpg add /path/to/gpg.key
- 
For more information, see 使用您自己的 GPG 密钥. 
| 使用  | 
- 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 建议通过远程储存库更改来使您的自定义通道保持最新。
默认情况下,您创建的所有自定义通道将自动同步。具体而言,在以下情况下将发生同步:
- 
在 UI 中或者使用 spacewalk-common-channels将储存库添加到通道后
- 
在执行日常任务 mgr-sync-refresh-default的过程中,这将同步您的所有自定义通道和供应商通道。
要禁用此默认行为,请在 /etc/rhn/rhn.conf 中设置:
java.unify_custom_channel_management = 0
关闭此属性后,将不会自动执行同步,要使自定义通道保持最新,您需要:
- 
通过导航到 同步选项卡并单击 立即同步 来手动同步该通道。
- 
在 储存库选项卡中设置自动同步日程安排。
该过程开始后,可通过多种方式检查通道是否已完成同步:
- 
在 SUSE Manager Web UI 中,导航到,然后选择 产品选项卡。 产品同步时,此对话框将为每个产品显示一个完成栏。
- 
在 SUSE Manager Web UI 中,导航到,然后单击与储存库关联的通道。 导航到menu:[储存库 > 同步]选项卡。储存库名称旁边会显示 同步状态。
- 
在命令提示符下检查同步日志文件: tail -f /var/log/rhn/reposync/<channel-label>.log 每个子通道在同步过程中会生成自身的日志。您需要检查所有基础通道和子通道日志文件,以确保同步完成。 
可使用以下自定义通道同步选项:
- 保留已从储存库中去除的通道中的软件包
- 
此选项会关闭 严格模式。
- 不同步勘误
- 
不要同步补丁。 
- 仅同步最新软件包
- 
仅同步最新的软件包版本。 
- 创建可无人值守安装树
- 
此选项准备一个随时可用于自动安装 Kickstart 的目录树。 
- 出现任何错误时终止
- 
如果发生错误,则停止同步。 
将为每个通道永久保存这些选项。在执行同步之前,单击立即同步按钮也会保存通道选项。
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 中删除与通道没有关联的软件包。导航到,选中要去除的软件包,然后单击 删除软件包。