内容生命周期管理

内容生命周期管理允许您在更新生产客户端之前自定义和测试软件包。如果您需要在有限的维护时段内应用更新,此功能将特别有用。

内容生命周期管理允许您选择软件通道作为源、根据环境的需要调整软件通道,并在安装到生产客户端之前对其进行全面的测试。

虽然您无法直接修改供应商通道,但可以克隆它们,然后通过添加或去除软件包和自定义补丁来修改克隆版本。可以将这些克隆的通道指派到测试客户端,以确保它们按预期工作。

默认情况下,克隆的供应商通道与原始供应商通道一致并会自动选择依赖项。您可以在 /etc/rhn/rhn.conf 中添加以下选项来禁止自动为克隆的通道选择依赖项:

java.cloned_channel_auto_selection = false

然后,当所有测试都通过后,您可以将克隆的通道升级为生产服务器。

此功能是通过一系列环境实现的,软件通道在其生命周期内可以在这些环境之间转移。大多数环境生命周期至少包括测试和生产环境,但您可以创建任意所需数量的环境。

本章介绍基本的内容生命周期过程以及可用的过滤器。有关更具体的示例,请参见 内容生命周期管理示例

1. 创建内容生命周期项目

要设置内容生命周期,需要从一个项目开始。该项目定义软件通道源、用于查找软件包的过滤器,以及构建环境。

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

  2. 标签字段中输入项目的标签。 标签字段仅接受小写字母、数字、句点、连字符和下划线。

  3. 名称字段中输入项目的描述性名称。

  4. 单击 创建 按钮以创建项目并返回项目页面。

  5. 单击 挂接/分离源

  6. 对话框中选择源类型,然后选择项目的基础通道。 此时会显示所选基础通道的可用子通道,包括有关通道是必需通道还是建议通道的信息。

  7. 选中所需的子通道,然后单击 保存 返回项目页面。 您选择的软件通道现在应会显示出来。

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

  9. 筛选器对话框中,选择要挂接到项目的过滤器。 要创建新过滤器,请单击 创建新过滤器

  10. 单击 添加环境

  11. 环境生命周期对话框中,为第一个环境指定名称、标签和说明,然后单击 保存标签字段仅接受小写字母、数字、句点、连字符和下划线。

  12. 继续创建环境,直到为整个生命周期创建了所有环境。 可以选择环境在生命周期中的顺序,方法是在创建某个环境时在在前面插入字段中选择该环境。

2. 过滤器类型

SUSE Manager 允许您创建各种类型的过滤器来控制用于构建项目的内容。使用过滤器可以选择要在构建中包含或排除哪些软件包。例如,可以排除所有内核软件包,或仅包含某些软件包的特定发行版。

支持的过滤器为:

  • 软件包过滤

    • 按名称

    • 按名称、纪元、版本、发行版和体系结构

    • 按提供的名称

  • 补丁过滤

    • 按建议名称

    • 按建议类型

    • 按摘要

    • 按关键字

    • 按日期

    • 按受影响的软件包

  • 模块

    • 按流

在内容过滤期间不会解析软件包依赖项。

可以将多个匹配器与过滤器配合使用。哪些匹配器可用取决于所选的过滤器类型。

可用的匹配器为:

  • 包含

  • 匹配(必须采用正则表达式形式)

  • 等于

  • 大于

  • 大于或等于

  • 低于或等于

  • 低于

  • 高于或等于

2.1. 过滤器规则参数

每个过滤器都有一个规则参数,可将此参数设置为允许拒绝。过滤器的处理方式如下:

  • 如果某个软件包或补丁满足拒绝过滤器的条件,则从结果中排除它。

  • 如果某个软件包或补丁满足允许过滤器的条件,则将它包含在结果中(即使它已由拒绝过滤器排除)。

当您想要使用一般的拒绝过滤器来排除大量软件包或补丁,并想要使用特定的允许过滤器来“挑选”特定的软件包或补丁时,此行为很有用。

内容过滤器在您的组织中是全局性的,并可以在项目之间共享。

如果您的项目已包含构建的源,当您添加环境时,该环境中会自动填充现有内容。内容是从周期中的前一个环境(如果有)提取的。如果前一个环境不存在,则将内容留空,直到再次构建了项目源。

3. 过滤器模板

为了帮助为某些常见方案创建过滤器,SUSE Manager 提供了过滤器模板。应用这些模板有助于提前创建一组针对特定用例定制的过滤器。

本节介绍可用的模板及其用法。

3.1. 根据 SUSE 产品在线增补

在包含在线增补的项目中,必须排除未来的常规内核软件包,以便仅将在线补丁软件包作为更新提供给客户端。另一方面,仍然必须包含已安装的常规内核软件包以保持系统完整性。

应用此模板会创建三个所需的过滤器来实现以下行为:

  • 允许其中包含与基础内核版本相同的 kernel-default 软件包的补丁

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

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

有关如何设置在线增补项目的详细信息,请参见 administration:content-lifecycle-examples.adoc#exclude-higher-kernel-version

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

  2. 在对话框中单击 使用模板。输入将相应地更改。

  3. 前缀字段中键入名称前缀。此值将添加到模板创建的每个过滤器的名称前面。如果在项目上下文中应用模板,则此字段中会预先填充项目标签。

  4. 模板字段中,选择根据 SUSE 产品在线增补

  5. 产品字段中,选择要为其设置在线增补的产品。

  6. 内核字段中,从所选产品的可用版本列表中选择一个内核版本。拒绝后续常规内核补丁的过滤器将基于此版本。

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

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

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

  10. 选择具有指定前缀的三个过滤器,然后单击 保存

3.2. 根据系统在线增补

如果您想要根据特定已注册系统中安装的内核版本设置在线增补项目,可以使用根据系统在线增补模板。

应用此模板会创建三个所需的过滤器来实现以下行为:

  • 允许其中包含与基础内核版本相同的 kernel-default 软件包的补丁

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

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

有关如何设置在线增补项目的详细信息,请参见 administration:content-lifecycle-examples.adoc#exclude-higher-kernel-version

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

  2. 在对话框中单击 使用模板。输入将相应地更改。

  3. 前缀字段中键入名称前缀。此值将添加到模板创建的每个过滤器的名称前面。如果在项目上下文中应用模板,则此字段中会预先填充项目标签。

  4. 模板字段中,选择根据特定系统在线增补

  5. 系统字段中,从列表中选择一个系统,或键入系统名称以缩小选项的范围。

  6. 内核字段中,从所选系统上安装的版本列表中选择一个内核版本。拒绝后续常规内核补丁的过滤器将基于此版本。

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

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

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

  10. 选择具有指定前缀的三个过滤器,然后单击 保存

3.3. 含默认值的 AppStream 模块

如果您想要在项目中包含模块化储存库中提供的所有可用模块,可以使用此过滤器模板自动添加这些模块。

应用后,此模板将为每个模块及其默认流创建一个 AppStream 过滤器。

如果从项目的页面完成此过程,则过滤器将自动添加到项目。否则,创建的过滤器可能会列在内容生命周期  过滤器中,并根据需要添加到任何项目。

可以编辑每个过滤器以选择不同的模块流,或去除所有这些过滤器以从目标储存库中排除该模块。

由于并非所有模块流都相互兼容,因此更改单个流可能会导致无法成功解析模块化依赖关系。如果发生这种情况,项目细节页面中的过滤器窗格会显示描述问题的错误,并且在选择的所有模块都兼容之前,构建按钮将会禁用。

自 Red Hat Enterprise Linux 9 起,模块便不再具有任何定义的默认流。因此,对 Red Hat Enterprise Linux 9 源使用此模板将不会有任何效果。

有关如何使用内容生命周期管理设置 AppStream 储存库的详细信息,请参见 administration:content-lifecycle-examples.adoc#appstream-filters

过程:应用模板
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  项目,然后选择您的项目。

  2. 过滤器部分,单击 挂接/分离过滤器,然后单击 创建新过滤器

  3. 在对话框中单击 使用模板。输入将相应地更改。

  4. 前缀字段中键入名称前缀。此值将添加到模板创建的每个过滤器的名称前面。如果在项目上下文中应用模板,则此字段中会预先填充项目标签。

  5. 模板字段中,选择含默认值的 AppStream 模块

  6. 通道字段中,选择一个模块化通道以从中获取模块。此下拉列表中仅显示模块化通道。

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

  8. 滚动到过滤器部分以查看新挂接的 AppStream 过滤器。

  9. 可以编辑/去除任何一个过滤器以根据您的需要定制项目。

4. 构建内容生命周期项目

创建项目、定义环境、挂接源和过滤器后,可以首次构建项目。

构建过程会将过滤器应用于挂接的源,并将过滤器克隆到项目中的第一个环境。

可以使用相同的供应商通道作为多个内容项目的源。在这种情况下,SUSE Manager 不会为每个克隆的通道创建新的补丁克隆版本,而是在所有克隆的通道之间共享一个补丁克隆版本。如果供应商修改了某个补丁(例如,撤回了该补丁,或者更改了补丁中的软件包),则这可能会导致问题。当您构建某个内容项目时,默认情况下,共享克隆补丁的所有通道将与原始通道同步,即使这些共享通道位于内容项目的其他环境中,或者位于您的组织的其他内容项目通道中,也是如此。可以通过在组织设置中关闭自动补丁同步来更改此行为。要在以后为共享补丁的所有通道手动同步补丁,请导航到软件  管理  通道,单击要同步的通道,然后导航到同步子选项卡。即使手动同步补丁,也会影响共享补丁的所有组织通道。

过程:构建内容生命周期项目
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  项目,然后选择您要构建的项目。

    在构建项目前,请确保环境可用。

  2. 查看挂接的源和过滤器,然后单击 构建

  3. 提供版本消息以描述此构建中的更改或更新。

  4. 可以在环境生命周期部分监视构建进度。

构建完成后,环境版本号将会加 1,可将构建的源(例如软件通道)指派到您的客户端。

5. 升级环境

构建项目后,可将构建的源按顺序升级到环境。

过程:升级环境
  1. 在 SUSE Manager Web UI 中,导航到内容生命周期  项目,然后选择您要处理的项目。

  2. 环境生命周期部分,找到要升级到其后继版本的环境,然后单击 升级

  3. 可以在环境生命周期部分监视构建进度。

6. 将客户端指派到环境

当您构建和升级内容生命周期项目时,SUSE Manager 会创建一个软件通道树。要将客户端添加到环境,请使用客户端的系统细节页面中的软件  软件通道将基础通道和子软件通道指派到客户端。

新添加的克隆通道不会自动指派到客户端。如果您添加或升级了源,则需要手动检查并更新您的通道指派。

在将来的版本中,自动指派会添加到 SUSE Manager。