内容生命周期管理示例

本节提供了一些常见示例来说明如何使用内容生命周期管理。请使用这些示例来构建您自己的个性化实现。

1. 为每月修补周期创建项目

每月修补周期的示例项目包括:

  • 创建一个按日期过滤器

  • 将过滤器添加到项目

  • 将过滤器应用于新项目构建

  • 从项目中排除补丁

  • 在项目中包含补丁

1.1. 创建一个按日期过滤器

按日期过滤器排除指定日期之后发布的所有补丁。此过滤器对于遵循每月修补周期的内容生命周期项目很有用。

过程:创建按日期过滤器
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  过滤器并单击 创建过滤器

  2. 过滤器名称字段中键入过滤器的名称。 例如,按日期排除补丁

  3. 过滤器类型字段中选择补丁(发布日期)

  4. 匹配器字段中,已自动选择晚于或等于

  5. 选择日期和时间。

  6. 单击 保存

1.2. 将过滤器添加到项目

过程:将过滤器添加到项目
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  项目并从列表中选择一个项目。

  2. 单击 挂接/分离过滤器 链接以查看所有可用的过滤器

  3. 选择新的按日期排除补丁过滤器。

  4. 单击 保存

1.3. 将过滤器应用于新项目构建

新过滤器已添加到过滤器列表,但仍然需要将其应用于项目。要应用过滤器,需要构建第一个环境。

过程:使用过滤器
  1. 单击 构建 以构建第一个环境。

  2. 可选:添加消息。 可以使用消息来帮助跟踪构建历史记录。

  3. 在测试服务器上使用新通道来检查过滤器是否正常工作。

  4. 单击 升级 将内容移到下一个环境。 如果您有大量过滤器,或者过滤器非常复杂,则构建过程需要较长时间。

1.4. 从项目中排除补丁

测试可以帮助您发现问题。如果发现问题,请排除按日期过滤器之前发布的有问题补丁。

过程:排除补丁
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  过滤器并单击 创建过滤器

  2. 过滤器名称字段中输入过滤器的名称。 例如,排除 openjdk 补丁

  3. 过滤器类型字段中选择补丁(建议名称)

  4. 匹配器字段中选择等于

  5. 建议名称字段中键入建议名称。 例如,SUSE-15-2019-1807

  6. 单击 保存

  7. 导航到内容生命周期  项目并选择您的项目。

  8. 单击 挂接/分离过滤器 链接,选择排除 openjdk 补丁,然后单击 保存

当您使用 构建 按钮重构建项目时,新过滤器将与前面添加的按日期过滤器一起使用。

1.5. 在项目中包含补丁

此示例假设您收到了一条安全警报。当前工作月刚过几天,发布了一个重要的安全补丁。新补丁的名称是SUSE-15-2019-2071。您需要将此新补丁包含在您的环境中。

允许过滤器规则会覆盖拒绝过滤器规则的排除功能。有关详细信息,请参见 内容生命周期管理

过程:在项目中包含补丁
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  过滤器并单击 创建过滤器

  2. 过滤器名称字段中键入过滤器的名称。 例如,包含内核安全修复

  3. 过滤器类型字段中选择补丁(建议名称)

  4. 匹配器字段中选择等于

  5. 建议名称字段中键入 SUSE-15-2019-2071,然后选中允许

  6. 单击 保存 以存储该过滤器。

  7. 导航到内容生命周期  项目并从列表中选择您的项目。

  8. 单击 挂接/分离过滤器,然后选择包含内核安全补丁

  9. 单击 保存

  10. 单击 构建 以重构建环境。

2. 更新现有的每月修补周期

每月修补周期完成后,您可以更新下个月的修补周期。

过程:更新每月修补周期
  1. 按日期字段中,将过滤器的日期更改为下个月。 或者,创建一个新过滤器并更改项目的指派。

  2. 检查是否可以将 SUSE-15-2019-1807 的排除过滤器从项目中分离。 可能有一个新补丁可以修复此问题。

  3. 分离前面添加的允许过滤器。 默认已包含该补丁。

  4. 重构建项目以创建包含下个月补丁的新环境。

3. 使用实时修补增强项目

本节介绍如何设置过滤器以创建可实时修补的环境。

当您准备使用实时修补时,需要注意一些重要事项

  • 永远只在您的系统上使用一个内核版本。 实时修补软件包与特定内核一起安装。

  • 实时修补更新作为一个补丁交付。

  • 后续会安装一系列新实时修补内核的每个内核补丁会显示需要重引导标志。 这些内核补丁附带实时修补工具。安装这些补丁后,需要在下一年开始之前至少重引导系统一次。

  • 仅安装与已安装内核版本匹配的在线补丁更新。

  • 在线补丁作为独立补丁提供。 您必须排除内核版本高于当前安装版本的所有常规内核补丁。

3.1. 排除内核版本较高的软件包

在此示例中,您将使用 SUSE-15-2019-1244 补丁更新您的系统。此补丁包含 kernel-default-4.12.14-150.17.1-x86_64

需要排除所有包含较高版 kernel-defaultkernel-default-base 的补丁。

过程:排除内核版本较高的软件包
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  过滤器并单击 创建过滤器

  2. 过滤器名称字段中键入过滤器的名称。 例如,排除内核版本大于 4.12.14-150.17.1 的软件包

  3. 过滤器类型字段中选择补丁(包含软件包)

  4. 匹配器字段中选择版本大于

  5. 软件包名称字段中键入 kernel-default

  6. 纪元字段留空。

  7. 版本字段中键入 4.12.14

  8. 发行版字段中键入 150.17.1

  9. 单击 保存 以存储该过滤器。

  10. 导航到内容生命周期  项目并选择您的项目。

  11. 单击 挂接/分离过滤器

  12. 选择排除内核版本大于 4.12.14-150.17.1 的软件包,然后单击 保存

需要对 kernel-default-base 软件包重复此过程。

单击 构建 后,会创建一个新环境。新环境包含版本不高于所安装版本的所有内核补丁。

所有内核版本更高的内核补丁都将被去除。只要实时修补内核不是发行系列中的第一个,它们就仍然可用。

可以使用过滤器模板自动完成此过程。有关如何应用实时修补过滤器模板的详细信息,请参见 administration:content-lifecycle.adoc#filter-templates

4. 切换到实时修补的新内核版本

特定内核版本的实时修补仅可使用一年。一年后,您必须更新系统上的内核。执行以下环境更改:

过程:切换到新内核版本
  1. 确定要升级到哪个内核版本。 例如:4.12.14-150.32.1

  2. 创建新的内核版本过滤器。

  3. Detach all previous Live Patching filters associated with the old kernel.

  4. Attach the new kernel version filter.

  5. 单击 构建 以重构建环境。

    Once the build is complete, you must immediately re-attach the two filters which:

    • 拒绝其中包含 reboot_suggested 关键字的补丁

    • 拒绝其中包含带有名称 installhint(reboot-needed) 的软件包的补丁

The new environment contains all kernel patches up to the new kernel version you selected. Systems using these channels have the kernel update available for installation. You need to reboot systems after they have performed the upgrade. The new kernel remains valid for one year. All packages installed during the year match the current live patching kernel filter.

5. AppStream 过滤器

如果您使用的是 Red Hat Enterprise Linux 8 或更高版本的客户端,则无法直接从模块化储存库(例如 Red Hat Enterprise Linux AppStream 储存库)执行软件包操作,例如安装或升级。您可以使用 AppStream 过滤器将模块化储存库转换为常规储存库。为此,该过滤器会将软件包保留在储存库中,并除去模块元数据。可以在 SUSE Manager 中像使用常规储存库一样使用转换后的储存库。

AppStream 过滤器将选择要包含在目标储存库中的单个模块流。您可以添加多个过滤器来选择多个模块流。

如果您不在 CLM 项目中使用 AppStream 过滤器,则模块化源中的模块元数据将保持不变,并且目标储存库包含相同的模块元数据。只要在 CLM 项目中至少启用一个 AppStream 过滤器,所有目标储存库就会转换为常规储存库。

在某些情况下,您可能想要构建常规储存库,而不包含任何模块的软件包。要实现此目的,请使用匹配器无(禁用模块化)添加 AppStream 过滤器。这会在目标储存库中禁用所有模块。此设置非常适合用于 Red Hat Enterprise Linux 9 客户端,这种客户端大多数模块的默认版本均已包含在作为常规储存库提供的 AppStream 储存库中。

要使用 AppStream 过滤器,需要一个包含模块化储存库(例如 Red Hat Enterprise Linux AppStream)的 CLM 项目。在开始之前,请确保包含所需的模块作为源。

过程:使用 AppStream 过滤器
  1. 在 SUSE Manager Web UI 中,导航到您的 Red Hat Enterprise Linux 8 或 9 CLM 项目。 确保已包含项目的 AppStream 通道。

  2. 单击 创建过滤器 并使用以下参数:

    • 过滤器名称字段中键入新过滤器的名称。

    • 过滤器类型字段中选择模块(流)

    • 匹配器字段中选择等于

    • 模块名称字段中键入模块名称。 例如 postgresql

    • 字段中键入所需流的名称。 例如 10。如果将此字段留空,则会选择模块的默认流。

  3. 单击 保存 以创建新过滤器。

  4. 导航到内容生命周期  项目并选择您的项目。

  5. 单击 挂接/分离过滤器,选择您的新 AppStream 过滤器,然后单击 保存

可以使用创建/编辑过滤器表单中的浏览功能从模块化通道的可用模块流列表中选择一个模块。

过程:浏览可用模块流
  1. 在 SUSE Manager Web UI 中,导航到您的 Red Hat Enterprise Linux 8 或 9 CLM 项目。 确保已包含项目的 AppStream 通道。

  2. 单击 创建过滤器 并使用以下参数:

    • 过滤器名称字段中键入新过滤器的名称。

    • 过滤器类型字段中选择模块(流)

    • 匹配器字段中选择等于

  3. 单击浏览可用模块以查看所有模块化通道。

  4. 选择一个通道以浏览模块和流:

    • 模块名称字段中,开始键入要搜索的模块名称,或者从列表中选择。

    • 字段中,开始键入要搜索的流名称,或者从列表中选择。

只能在浏览模块时选择通道。选定的通道不会与过滤器一起保存,并且不会对 CLM 过程产生任何影响。

您可以为要包含在目标储存库中的任何其他模块流创建额外的 AppStream 过滤器。会自动包含选定流所依赖的任何模块流。

请小心不要指定有冲突的、不兼容的或缺失的模块流。例如,从同一个模块中选择两个流是无效的。

过程:禁用模块化
  1. 在 SUSE Manager Web UI 中,导航到您的 Red Hat Enterprise Linux 8 或 9 CLM 项目。 确保已包含项目的 AppStream 通道。

  2. 单击 创建过滤器 并使用以下参数:

    • 过滤器名称字段中键入新过滤器的名称。

    • 过滤器类型字段中选择模块(流)

    • 匹配器字段中选择无(禁用模块化)

  3. 单击 保存 以创建新过滤器。

  4. 导航到内容生命周期  项目并选择您的项目。

  5. 单击 挂接/分离过滤器,选择您的新 AppStream 过滤器,然后单击 保存

这样会有效从目标储存库中去除模块元数据,并排除属于模块的所有软件包。

当您使用 Web UI 中的 构建 按钮构建 CLM 项目时,目标储存库是不包含任何模块的常规储存库,其中包含来自选定模块流的软件包。

在 Red Hat Enterprise Linux 8 项目中完全禁用模块化可能导致环境存在缺陷,因为在 Red Hat Enterprise Linux 8 中,某些模块对于系统的健康运行是不可或缺的。