使用 Foreman 管理 CentOS Stream

此示例让您初步了解使用 Foreman 管理和配置 CentOS Stream 内容的多种选项。
40 位读者喜欢这篇文章。
Puzzle pieces coming together to form a computer screen

Opensource.com

在 2021 年 12 月,CentOS 8 将停止生命周期,并被 CentOS Stream 取代。CentOS 以前的版本和 CentOS Stream 之间的主要变化之一是缺少次要版本。CentOS Stream 采用了持续发布周期。从今年年初开始,Foreman 社区的开发人员开始看到 CentOS Stream 由于持续发布而提供的更早的错误检测和修补的好处。我们不再需要等待下一个版本才能利用最新的更改和错误修复。一位资深的 Linux 社区爱好者指出,此举也使 RHEL 开发人员比以往任何时候都更接近 FOSS 社区。

但是,如果您是数百或数千台服务器的管理员,您可能希望控制何时将新软件包添加到特定服务器。如果您正在寻找一个免费的开源工具,可以帮助您确保生产服务器的稳定性,同时又允许您安全地从 Centos Stream 中提取最新的更改以进行开发和测试,那么 Foreman 可以为您提供帮助。借助 Foreman,您可以管理生命周期环境中所有阶段的 Centos Stream 内容。

什么是 Foreman?

Foreman 是用于物理和虚拟服务器的完整生命周期管理工具。借助 Foreman,系统管理员可以轻松地自动化重复性任务,快速部署应用程序,并主动管理本地或云端的服务器。Foreman 为配置管理、配置管理和监控提供企业级解决方案。由于其插件架构,Foreman 可以以多种方式扩展。使用 Katello 插件,您可以将 Foreman 用作完整的内容管理工具,以管理 CentOS Stream 以及许多其他内容类型。

借助 Foreman 和 Katello,您可以精确定义每个环境要包含的软件包。例如,生产环境可能使用已验证为稳定的软件包,而开发人员环境可能需要可用的最新和最棒的软件包版本。您还可以跨生命周期环境提升内容视图。让我们看一下 Foreman 是如何实现这一点的。

本文中我们引用了 Web UI,但 Foreman 也具有强大的 CLI 和 API。Katello 插件为 Pulp 项目提供了一个工作流程和 Web UI,您可以在本文中阅读更多相关信息。我们还在此处提供了一个简单的工作流程,但 Foreman 和 Katello 项目提供了许多不同的配置选项,以满足您的特定需求。

本文假定已安装 Foreman 和 Katello。有关如何执行此操作的更多信息,请参阅Katello 安装手册

创建产品

第一步是在 Foreman 中创建一个产品。该产品充当内部标签,用于存储 CentOS Stream 存储库。

  1. 在 Foreman Web UI 中,导航到内容 >产品,然后单击创建产品
  2. 名称字段中,输入产品的名称。Foreman 会根据您为名称输入的内容自动完成标签字段,并且稍后无法更改。

将 CentOS Stream 存储库添加到产品

现在您有了一个产品,您可以使用 AppStream 和 BaseOS 存储库的 URL 并将其添加到您的新产品中。

  1. 在 Foreman Web UI 中,导航到内容 > 产品,选择您要使用的产品,然后单击新建存储库
  2. 名称字段中,输入存储库的名称;例如,Centos8StreamBaseOS。Foreman 会根据您为名称输入的内容自动完成标签字段。
  3. 类型列表中,选择存储库的类型,然后选择 Yum
  4. URL 字段中,输入要用作源的 CentOS Stream Baseos 存储库的 URL:http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/
  5. 选择下载策略列表。默认值为按需 - 这意味着 Katello 将仅下载元数据。如果您想下载所有软件包,请更改为立即,这将下载所有软件包,可能达到 20-30 GB。
  6. 确保选中同步时镜像复选框。此选项确保在同步期间删除不再是上游存储库一部分的内容。
  7. 单击保存

重复这些步骤以添加带有 URL 的 AppStream 存储库,例如,http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/。确保您使用最近的官方 CentOS 镜像。

要执行立即同步,请在您的产品窗口中单击立即同步。初始同步可能需要一些时间。您可以从内容 > 同步状态观看同步状态。

同步完成后,您可以在主机 > 操作系统中查看新的 CentOS Stream 操作系统。您可以随意编辑名称和描述以满足您的要求。

如果您计划使用 Ansible 或 Puppet 等配置管理软件,Foreman 会自动创建操作系统报告。您可以在管理 > 设置 > 忽略操作系统的事实中关闭此选项。最好重命名操作系统以匹配配置管理软件中的名称。例如,对于 Puppet,这将是CentOS 8

定义您基础设施的生命周期环境

应用程序生命周期是 Foreman 内容管理功能的核心概念。应用程序生命周期定义了特定系统及其软件在特定阶段的外观。例如,应用程序生命周期可能很简单;您可能只有开发阶段和生产阶段。Foreman 提供了自定义每个应用程序生命周期阶段的方法,以受控方式满足您的规范。

此时,您必须创建生命周期环境路径

  1. 在 Foreman Web UI 中,导航到内容 >生命周期环境
  2. 单击新建环境路径以启动新的应用程序生命周期。
  3. 名称字段中,输入您的环境的名称。
  4. 描述字段中,输入您的环境的描述。
  5. 单击保存
  6. 根据需要添加尽可能多的环境路径。例如,您可以创建 devtest、 stage production 环境。要添加这些环境,请单击添加新环境,填写名称描述字段,然后从先前环境列表中选择先前的环境,以便按照您期望使用的顺序将它们链接在一起。

创建和发布内容视图

在 Foreman 中,内容视图是您在特定时间点的存储库的快照。内容视图提供了在您想要保留的状态下隔离软件包版本的机制。内容视图具有许多可配置的功能,您可以用于进一步细化。就本教程而言,让我们保持简单。

  1. 在 Foreman Web UI 中,导航到内容 > 内容视图,然后单击创建新视图
  2. 名称字段中,输入视图的名称。Foreman 会从您输入的名称自动完成标签字段。
  3. 描述字段中,输入视图的描述。
  4. 单击保存以创建内容视图。
  5. 在您的新内容视图中,单击Yum 内容 > 添加存储库存储库选择区域中,单击添加。 对于 BaseOS 和 Appstream 存储库,选择您要包含的软件包,然后单击添加存储库
  6. 单击发布新版本,并在描述字段中输入有关版本的信息以记录更改。
  7. 单击保存

当您单击发布新版本时,您将创建所有已同步内容的快照。这意味着您订阅此内容视图的每台服务器都将只能访问与此生命周期环境关联的内容视图中的软件包版本。

每个新的内容视图和后续版本都首先发布到库环境,您可以在其中将其提升到其他环境。

跨生命周期环境提升内容

如果您已测试新软件包并确信一切稳定,则可以将您的内容视图提升到另一个生命周期环境。

  1. 导航到内容 > 内容视图,然后选择您要提升的内容视图。
  2. 单击内容视图的版本选项卡。
  3. 选择您要提升的版本,然后在操作列中,单击提升
  4. 选择您要将内容视图提升到的环境,然后单击提升版本
  5. 再次单击提升按钮。这次选择生命周期环境,例如 Test,然后单击提升版本
  6. 最后,再次单击提升按钮。例如,选择 Production 环境,然后单击提升版本

分配给该特定环境的服务器现在可以从更新的软件包集中拉取。

创建激活密钥

要将 CentOS Stream 服务器注册到您在特定生命周期中定义的内容,您必须创建一个激活密钥。激活密钥是一种与服务器共享凭据的安全方法。这使用名为 subscription-manager 的工具将 CentOS Stream 服务器订阅到内容。

创建激活密钥后,将 CentOS Stream 订阅添加到激活密钥。

  1. 在 Foreman Web UI 中,导航到内容 > 激活密钥,然后单击创建激活密钥
  2. 名称字段中,输入激活密钥的名称。
  3. 描述字段中,输入激活密钥的描述。
  4. 环境列表中,选择要使用的环境。
  5. 内容视图列表中,选择您刚刚创建的内容视图。
  6. 单击保存

从 Foreman 管理的内容创建 CentOS Stream 主机

现在一切都已设置完毕。通过您在内容视图中创建并跨生命周期提升的内容,您现在可以使用您想要使用的确切内容来配置主机,并订阅您希望它们接收的更新。

要在 Foreman 中创建主机,请导航到主机 > 创建主机

  1. 名称字段中,输入主机的名称。
  2. 单击组织位置选项卡,以确保将配置上下文自动设置为当前上下文。
  3. 部署在列表中,选择裸机
  4. 单击操作系统选项卡。
  5. 架构列表中,选择 x86_64
  6. 操作系统列表中,选择 CentOS_Stream 8。
  7. 选中构建模式框。
  8. 对于媒体选择,选择同步内容以使用您之前同步的 CentOS Stream 内容。
  9. 已同步 内容列表中,确保已选择 CentOS Stream。
  10. 分区表列表中,对于此演示,选择 Kickstart 默认值,但有许多可用选项。
  11. Root 密码字段中,输入新主机的 root 密码。
  12. 单击接口选项卡,然后单击编辑,并添加 Mac 地址。
  13. 单击参数选项卡,并确保存在提供激活密钥的参数。如果不存在,请添加激活密钥。
  14. 单击提交以保存主机条目。

现在新主机处于构建模式,这意味着当您打开它时,它将开始安装操作系统。

如果您导航到主机 > 内容主机,您可以看到您的主机订阅的订阅、生命周期环境和内容视图的完整详细信息。

此示例只是让您初步了解使用 Foreman 管理和配置 CentOS Stream 内容的多种选项。如果您想了解有关如何管理 CentOS Stream 版本、控制服务器可以访问的内容以及控制和保护基础设施稳定性的更多详细信息,请查看 Foreman 内容管理文档。通过控制所有 CentOS Stream 内容,您可以创建和注册仅使用您指定内容的 Centos Stream。有关配置的更多详细信息,请参阅 Foreman 配置文档。如果您有任何问题、反馈或建议,可以在 https://community.theforeman.org/ 找到 Foreman 社区

接下来阅读
User profile image.
我帮助 Foreman 和 Pulp 社区。我喜欢写作和鸟类。
User profile image.
红帽公司首席软件工程师

评论已关闭。

© . All rights reserved.