Foreman 是用于部署、配置和修补主机的数据中心自动化工具。 它依赖 Katello 进行内容管理,而 Katello 又依赖 Pulp 来管理存储库。 有关更多信息,请参见使用 Pulp Debian 管理内容。
Pulp 为不同的内容类型提供了许多插件,包括 RPM 软件包、Ansible 角色和集合、PyPI 软件包和 deb 内容。 后者称为 pulp_deb 插件。
Foreman 中的内容管理
为主机提供内容的基本思路是镜像存储库,并通过 Foreman 服务器或连接的 Smart Proxies 为主机提供内容。
本教程是向 Foreman 添加 deb 内容并为运行 Debian 10 的主机提供服务的逐步指南。“Deb 内容”是指基于 Debian 的 Linux 系统(例如 Debian 和 Ubuntu)的软件包和勘误。 本文重点介绍 Debian 10 Buster,但除非另有说明,否则该说明也适用于 Ubuntu 20.04 Focal Fossa。
1. 创建操作系统
1.1. 创建架构
导航至主机 > 架构并创建一个新的架构(如果您要部署 Debian 10 主机的架构丢失)。 本教程假设您的主机运行在 x86_64 架构上,就像 Foreman 一样。
1.2. 创建安装介质
导航至主机 > 安装介质并创建新的 Debian 10 安装介质。 使用上游存储库 URL http://ftp.debian.org/debian/。
选择 Debian 或 Ubuntu 的 Debian 操作系统系列。
或者,您也可以使用 Debian 镜像。 但是,通过 Pulp 同步的内容不起作用,原因有两个:首先,linux
和initrd.gz
文件不在预期位置;其次,Release
文件未签名。
1.3. 创建操作系统
导航至主机 > 操作系统并创建一个名为 Debian 10 的新操作系统。 使用 10 作为主要版本,并将次要版本字段留空。 对于 Ubuntu,使用 20.04 作为主要版本,并将次要版本字段留空。

(Maximilian Kolb,CC BY-SA 4.0)
选择 Debian 或 Ubuntu 的 Debian 操作系统系列,并指定发行版名称(例如,Debian 10 的 Buster 或 Debian 9 的 Stretch)。 选择默认分区表和配置模板,即 Preseed 默认 *。
1.4. 调整默认 Preseed 模板(可选)
导航至主机 > 分区表和主机 > 配置模板,并在必要时调整默认 Preseed 模板。 请注意,您需要先克隆锁定的模板,然后才能对其进行编辑。 克隆的模板将不会收到 Foreman 较新版本的更新。 所有基于 Debian 的系统都使用 Preseed 模板,默认情况下 Foreman 中包含这些模板。
1.5. 关联模板
导航至主机 > 配置模板并搜索 Preseed。 将所有所需的配置模板关联到操作系统。 然后,导航至主机 > 操作系统并选择 Debian 10 作为操作系统。 选择模板选项卡,并关联所需的任何配置模板。
2. 同步内容
2.1. 为 Debian 上游存储库和 Debian 客户端创建内容凭证
导航至内容 > 内容凭证并添加所需的 GPG 公钥作为 Foreman 的内容凭证,以验证 deb 软件包的真实性。 要获取必要的 GPG 公钥,请验证 Release 文件并按如下方式导出相应的 GPG 公钥
- Debian 10 main
wget http://ftp.debian.org/debian/dists/buster/Release && wget http://ftp.debian.org/debian/dists/buster/Release.gpg gpg --verify Release.gpg Release gpg --keyserver keys.gnupg.net --recv-key 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC gpg --keyserver keys.gnupg.net --recv-key 0146DC6D4A0B2914BDED34DB648ACFD622F3D138 gpg --keyserver keys.gnupg.net --recv-key 6D33866EDD8FFA41C0143AEDDCC9EFBF77E11517 gpg --armor --export E0B11894F66AEC98 DC30D7C23CBBABEE DCC9EFBF77E11517 > debian_10_main.txt
- Debian 10 security
wget http://security.debian.org/debian-security/dists/buster/updates/Release && wget http://security.debian.org/debian-security/dists/buster/updates/Release.gpg gpg --verify Release.gpg Release gpg --keyserver keys.gnupg.net --recv-key 379483D8B60160B155B372DDAA8E81B4331F7F50 gpg --keyserver keys.gnupg.net --recv-key 5237CEEEF212F3D51C74ABE0112695A0E562B32A gpg --armor --export EDA0D2388AE22BA9 4DFAB270CAA96DFA > debian_10_security.txt
- Debian 10 updates
wget http://ftp.debian.org/debian/dists/buster-updates/Release && wget http://ftp.debian.org/debian/dists/buster-updates/Release.gpg gpg --verify Release.gpg Release gpg --keyserver keys.gnupg.net --recv-key 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC gpg --keyserver keys.gnupg.net --recv-key 0146DC6D4A0B2914BDED34DB648ACFD622F3D138 gpg --armor --export E0B11894F66AEC98 DC30D7C23CBBABEE > debian_10_updates.txt
- Debian 10 client
wget --output-document=debian_10_client.txt https://apt.atix.de/atix_gpg.pub
您可以选择相应的 ASCII 盔甲 TXT 文件以上传到您的 Foreman 实例。
2.2. 创建名为 Debian 10 和 Debian 10 客户端的产品
导航至内容 > 主机并创建两个新产品。
2.3. 创建必要的 Debian 10 存储库
导航至内容 > 产品并选择 Debian 10 产品。 创建三个 deb 存储库
- Debian 10 main
- URL:
http://ftp.debian.org/debian/
- Releases:
buster
- Component:
main
- Architecture:
amd64
- URL:
- Debian 10 security
- URL:
http://deb.debian.org/debian-security/
- Releases:
buster/updates
- Component:
main
- Architecture:
amd64
- URL:
如果需要,可以添加一个自托管的勘误服务:https://github.com/ATIX-AG/errata_server
和 https://github.com/ATIX-AG/errata_parser
- Debian 10 updates
- URL:
http://ftp.debian.org/debian/
- Releases:
buster-updates
- Component:
main
- Architecture:
amd64
- URL:
选择您在步骤 2.1 中创建的内容凭证。 根据需要调整组件和架构。 导航至内容 > 产品并选择 Debian 10 client 产品。 创建一个 deb 存储库,如下所示
- Debian 10 subscription-manager
- URL:
https://apt.atix.de/Debian10/
- Releases:
stable
- Component:
main
- Architecture:
amd64
- URL:
选择您在步骤 2.1 中创建的内容凭证。 Debian 10 客户端包含 subscription-manager 软件包,该软件包在每个内容主机上运行,以接收来自 Foreman 服务器或连接的 Smart Proxy 的内容。 有关更多说明,请访问 apt.atix.de。
2.4. 同步存储库
如果需要,您可以创建一个同步计划来定期同步 Debian 10 和 Debian 10 client 产品。 要一次同步产品,请单击产品页面上的选择操作 > 立即同步按钮。
2.5. 创建内容视图
导航至内容 > 内容视图,并创建一个名为 Debian 10 的内容视图,该视图包含在 Debian 10 产品中创建的 Debian 上游存储库,并发布新版本。 对 Debian 10 client 产品的 Debian 10 client 存储库执行相同的操作。
2.6. 创建组合内容视图
创建一个名为 Composite Debian 10 的新组合内容视图,该视图包含先前发布的 Debian 10 和 Debian 10 client 内容视图,并发布新版本。 您可以选择性地添加您选择的其他内容视图(例如,Puppet)。

(Maximilian Kolb,CC BY-SA 4.0)
2.7. 创建激活密钥
导航至内容 > 激活密钥并创建一个名为 debian-10 的新激活密钥
- 选择库生命周期环境并添加 Composite Debian 10 内容视图。
- 在详细信息选项卡上,分配正确的生命周期环境和组合内容视图。
- 在订阅选项卡上,分配必要的订阅,即 Debian 10 和 Debian 10 client 产品。
3. 部署主机
3.1. 通过端口 8000 启用配置
通过 SSH 连接到您的 Foreman 实例并编辑以下文件
/etc/foreman-proxy/settings.yml
搜索 :http_port: 8000
并确保它未被注释掉(即,该行不是以 #
开头)。
3.2. 创建主机组
导航至配置 > 主机组并创建一个名为 Debian 10 的新主机组。 查看有关 创建主机组的 Foreman 文档,并确保在操作系统和激活密钥选项卡上选择正确的条目。
3.3. 创建一个新主机
导航至主机 > 创建主机并选择上述主机组,或者手动输入相同的信息。
提示:部署运行 Ubuntu 20.04 的主机甚至更容易,因为您可以使用其官方安装介质 ISO 映像并进行脱机安装。 查看 orcharhino 的 管理 Ubuntu 系统指南以获取更多信息。
ATIX 已经开发了多个 Foreman 插件,并且是 Foreman 开源生态系统不可或缺的一部分。 社区对我们贡献的反馈将反馈给我们的客户,因为我们将不断努力改进我们的下游产品 orcharhino。
评论已关闭。