第 8 章 管理内容视图

Red Hat Satellite 使用内容视图来允许主机访问独立策展的内容子集。要做到这一点,您必须定义要使用的存储库,然后将某些过滤器应用到内容。这些过滤器包括软件包过滤器、软件包组过滤器、勘误过滤器、模块流过滤器和容器镜像标签过滤器。您可以使用内容视图来定义特定环境使用的软件版本。例如,生产环境 可能会使用包含较老的软件包版本的内容视图,而 开发环境 可能会使用包含较新的软件包版本的内容视图。

或者,默认机构 视图是与 Satellite 同步的所有内容的应用控制内容视图。如果要将主机注册到 Satellite 并使用订阅访问内容而无需操作内容视图和生命周期,则此类型很有用。

每个内容视图在每个环境中创建一组软件仓库,Satellite 服务器存储和管理它们。当您将内容视图从一个环境提升到应用程序生命周期中的下一个环境时,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

测试和生产的存储库包含 example_software-1.0-0.noarch.rpm 软件包。如果您将内容视图的版本 2 从 Development 提升到测试,则测试将重新生成的存储库,然后包含 example_software-1.1-0.noarch.rpm 软件包:

 开发测试Production

内容视图版本和内容

版本 2 - example_software-1.1-0.noarch.rpm

版本 2 - example_software-1.1-0.noarch.rpm

版本 1 - example_software-1.0-0.noarch.rpm

这样可确保系统指定为特定环境,但在该环境使用新版本的内容视图时接收更新。

创建用于过滤和创建快照的内容视图的一般工作流如下:

  1. 创建内容视图.
  2. 为内容视图添加一个或多个您需要的仓库。
  3. 可选:创建一个或多个过滤器来重新定义内容视图的内容。更多信息请参阅 第 8.10 节 “内容过滤器示例”
  4. 可选:解决内容视图的任何软件包依赖项。更多信息请参阅 第 8.8 节 “解决软件包依赖项”
  5. 发布内容视图.
  6. 可选:将内容视图复制到另一个环境。更多信息请参阅 第 8.3 节 “提升内容视图”
  7. 将内容主机附加到内容视图。

如果存储库没有与内容视图关联,则文件 /etc/yum.repos.d/redhat.repo 仍为空,并且注册到它的系统无法接收更新。

主机只能与单个内容视图关联。要将主机与多个内容视图关联,请创建一个复合内容视图。更多信息请参阅 第 8.6 节 “创建 Composite 内容视图”

8.1. 创建内容视图

使用这个流程创建简单的内容视图。要使用 CLI 而不是 Satellite Web UI,请参阅 CLI 过程

先决条件

虽然您可以停止是否想通过内容视图解析任何软件包依赖项,但您可能希望更改默认 Satellite 设置以为所有内容视图启用或禁用软件包解析。更多信息请参阅 第 8.8 节 “解决软件包依赖项”

流程

  1. 在 Satellite Web UI 中,导航到 Content > Content Views,再点 Create content view
  2. Name 字段中输入视图的名称。Satellite 会根据您输入的名称自动完成 Label 字段。
  3. Description 字段中,输入视图的描述。
  4. Type 字段中,选择 Content viewComposite 内容视图
  5. 可选: 如果要在每次发布此内容视图时自动解决依赖项,请选择 Solve dependencies 复选框。依赖项会减慢发布时间,并可能会忽略您使用的任何内容视图过滤器。这也可以在解析勘误依赖项时导致错误。
  6. 可选:如果要指定从上游服务器导入此内容视图,请选择 Import only 复选框。无法直接发布仅导入的内容视图。
  7. Create content view

内容视图步骤

  1. 单击 Create content view 以创建内容视图。
  2. Repositories 选项卡中,从您要添加到内容视图的 Type 列表中选择存储库,选择您要添加的可用存储库旁边的复选框,然后单击 Add repositories
  3. 单击 Publish new version,然后在 Description 字段中输入有关日志更改的版本的信息。
  4. 可选: 您可以通过点 Promote 从可用的提升路径中选择执行环境来提升新版本
  5. 点击 Next
  6. Review 页面中,您可以查看您要发布的环境。
  7. Finish

    注意

    删除 和删除 类似,但 Delete 选项会删除整个内容视图以及与该生命周期阶段关联的版本。Remove 选项允许您选择要从生命周期阶段中删除哪个版本。

您可以在内容视图窗口中查看内容视图。要查看有关内容视图的更多信息,请单击内容视图名称。要将一个主机注册到您的内容视图,请参阅管理主机中的注册主机

CLI 过程

  1. 获取存储库 ID 列表:

    # hammer repository list --organization "My_Organization"
  2. 创建内容视图并添加存储库:

    # hammer content-view create \
    --description "My_Content_View" \
    --name "My_Content_View" \
    --organization "My_Organization" \
    --repository-ids 1,2

    对于 --repository-ids 选项,您可以在 hammer repository list 命令的输出中找到 ID。

  3. 发布视图:

    # hammer content-view publish \
    --description "My_Content_View" \
    --name "My_Content_View" \
    --organization "My_Organization"
  4. 可选: 要将存储库添加到现有的内容视图中,请输入以下命令:

    # hammer content-view add-repository \
    --name "My_Content_View" \
    --organization "My_Organization" \
    --repository-id repository_ID

Satellite 服务器会创建新版本的视图,并将其发布到库环境。