第 8 章 管理内容视图
Red Hat Satellite 6 使用内容视图从存储库创建自定义存储库。要做到这一点,您必须定义要使用的存储库,然后将某些过滤器应用到内容。这些过滤器包括软件包过滤器、软件包组过滤器、勘误表过滤器和模块流过滤器。您可以使用内容视图来定义特定环境使用的软件版本。例如,生产环境 可能会使用包含旧软件包版本的内容视图,而 开发环境 可能会使用包含较新版本的内容视图。
每个内容视图在每个环境中创建一组软件仓库,Satellite 服务器存储和管理它们。当您将内容视图从一个环境提升到应用生命周期中的下一个环境时,卫星服务器上对应的存储库会更新并发布软件包。
开发 | 测试 | Production | |
---|---|---|---|
内容视图版本和内容 | 版本 2 - example_software-1.1-0.noarch.rpm | 版本 1 - example_software-1.0-0.noarch.rpm | 版本 1 - example_software-1.0-0.noarch.rpm |
用于 Testing 和 Production 的存储库包含 example_software-1.0-0.noarch.rpm
软件包。如果您将版本 2 的内容视图从 Development 提升到 Testing,则测试的存储库会重新生成,然后包含 example_software-1.1-0.noarch.rpm
软件包:
开发 | 测试 | Production | |
---|---|---|---|
内容视图版本和内容 | 版本 2 - example_software-1.1-0.noarch.rpm | Version 2 - example_software-1.1-0.noarch.rpm | 版本 1 - example_software-1.0-0.noarch.rpm |
这样可确保系统被指定到特定的环境,但当环境使用新版本的内容视图时接收更新。
创建用于过滤和创建快照的内容视图的一般工作流如下:
- 创建内容视图.
- 将存储库和您要添加到内容视图的 Puppet 模块添加。
- (可选)创建一个或多个过滤器来优化内容视图的内容。
- (可选)解析内容视图的任何软件包依赖项。
- 发布内容视图.
- (可选)将内容视图提升到另一个环境。
- 将内容主机附加到内容视图。
如果存储库没有与内容视图关联,则文件 /etc/yum.repos.d/redhat.repo
会保持空,并且注册到它的系统无法接收更新。
主机只能与单个内容视图关联。要将主机与多个内容视图关联,请创建一个复合内容视图。更多信息请参阅 第 8.7 节 “创建复合内容视图”。
软件包依赖解析
软件包依赖项是软件包管理的复杂性。有关如何在内容视图中管理软件包依赖项的更多信息,请参阅 第 8.9 节 “解决软件包依赖项”。
8.1. 创建内容视图
使用这个流程创建简单的内容视图。
先决条件
虽然您可以确定是否要根据内容视图在内容视图上解析任何软件包依赖项,但您可能希望更改默认的 Satellite 设置以为所有内容视图启用或禁用软件包解析。更多信息请参阅 第 8.9 节 “解决软件包依赖项”。
流程
要创建内容视图,请完成以下步骤:
- 在 Satellite Web UI 中,进入到 Content > Content Views 并点 Create New View。
- 在 Name 字段中输入视图的名称。Satellite 会根据您输入的名称自动完成 Label 字段。
- 在 Description 字段中,输入视图的描述。
- 可选:如果要在每次发布此内容视图时自动解决依赖项,请选择 Solve Dependencies 复选框。依赖项会妨碍发布时间缓慢,并可能会忽略您所使用的任何内容视图过滤器。这也可能导致在解析勘误依赖项时出现错误。
- 点 Save 以创建内容视图。
- 在 Repository Selection 区域中,选择要添加到内容视图的存储库,然后单击 Add Repositories。
- 单击 Publish New Version,然后在 Description 字段中输入有关日志更改的信息。
- 点 Save。
- 可选:若要强制在 Yum 存储库上重新生成元数据,请从您的内容视图版本的 Actions 列表中选择 Regenerate Repository Metadata。
您可以在 Content Views 窗口中查看内容视图。要查看有关内容视图的更多信息,请点内容视图名称。
要将主机注册到您的内容视图, 请参阅管理主机指南中的 注册主机。
使用 Hammer CLI 创建内容视图
获取存储库 ID 列表:
# hammer repository list --organization "My_Organization"
创建内容视图并添加软件仓库:
# hammer content-view create \ --name "Example_Content_View" \ --description "Example Content View" \ --repository-ids 1,2 \ --organization "My_Organization"
对于
--repository-ids
选项,您可以在hammer repository list
命令的输出中找到 ID。发布视图:
# hammer content-view publish \ --name "Example_Content_View" \ --description "Example Content View" \ --organization "My_Organization"
可选: 要在现有内容视图中添加存储库,请输入以下命令:
# hammer content-view add-repository \ --name "Example_Content_View" \ --organization "My_Organization" \ --repository-id repository_ID
Satellite 服务器创建视图的新版本,并将其发布到 Library 环境。