使用这款开源工具管理您的软件仓库

Pulp 简介:这款开源仓库管理解决方案的功能和范围正在不断扩展。
107 位读者喜欢这篇文章。

Foreman 是一款强大的管理和自动化产品,为 Linux 环境的管理员提供企业级解决方案,应对以下四个关键场景:配置管理、配置管理、补丁管理和内容管理。Foreman 中内容管理功能的一个主要组成部分是由 Pulp 项目提供的。虽然 Pulp 是这款产品不可或缺的一部分,但它也是一个独立的、免费的开源项目,并且自身也在取得巨大进展。

让我们来了解一下 Pulp 项目,特别是最新版本 Pulp 3 的功能。

什么是 Pulp?

Pulp 是一个用于管理软件包仓库并使其可供大量消费者使用的平台。您可以使用 Pulp 来镜像、同步、上传和推广各种内容,例如 RPM、Python 包、Ansible 集合、容器镜像以及更多跨不同环境的内容。如果您有几十个、几百个甚至几千个软件包,并且需要更好的方法来管理它们,Pulp 可以提供帮助。

最新的主要版本是 Pulp 3,它于 2019 年 12 月发布。Pulp 3 是多年来收集用户需求以及对现有 Pulp 架构进行全面技术改造的成果,旨在提高可靠性和灵活性。此外,它还包含大量新功能。

谁在使用 Pulp?

在大多数情况下,Pulp 用户管理的是企业软件环境,在这些环境中,内容的稳定性和可靠性至关重要。Pulp 用户希望拥有一个平台来开发内容,而无需担心仓库可能会消失。他们希望以安全的方式在生命周期环境的不同阶段推广内容,从而优化磁盘空间并扩展其环境以满足新的需求。他们还需要灵活地处理各种内容类型。Pulp 3 提供了这些以及更多功能。

在一个地方管理各种内容

安装 Pulp 后,您可以为您计划管理的内容类型添加内容插件,在本地镜像内容,添加私有托管内容,并混合内容以满足您的需求。例如,如果您是 Ansible 用户,并且不想将您的私有内容托管在 Ansible Galaxy 上,您可以添加 Pulp Ansible 插件,镜像您需要的公共 Ansible 内容,并将 Pulp 用作本地平台来管理和分发可扩展的公共和私有 Ansible 角色和集合,供您的组织使用。您可以对任何内容类型执行此操作。有各种各样的内容插件可用,包括 RPM、Debian、Python、容器和 Ansible,仅举几例。还有一个文件插件,您可以使用它来管理 ISO 映像等文件。

如果您没有找到您需要的内容类型的插件,Pulp 3 引入了新的插件 API 和插件模板,以便轻松创建您自己的 Pulp 插件。您可以使用插件编写指南来自动生成一个最小可行的插件,然后从那里开始构建。

高可用性

借助 Pulp 3,从 MongoDB 更改为 PostgreSQL 促进了性能和数据完整性方面的重大改进。Pulp 用户现在拥有完全开源的技术堆栈,可提供高可用性 (HA) 和更好的可扩展性。

仓库版本控制

使用 Pulp 3,您可以无风险地进行实验。每次添加或删除内容时,Pulp 都会创建一个不可变的仓库版本,以便您可以回滚到较早的版本,从而保证操作的安全性和稳定性。使用发布和分发,您可以公开仓库的多个版本,您可以将其用作回滚到较早版本的另一种方法。要回滚,您可以简单地将您的分发指向较早的发布。

磁盘优化

对于任何软件开发环境来说,磁盘优化都是主要的挑战之一。如果您不断下载软件包,例如,您今天需要但明天不再需要的仓库的每日构建版本,磁盘空间将很快成为问题。Pulp 3 在设计时考虑了磁盘优化。虽然默认选项会下载并保存所有软件包,但您也可以启用“按需”或“流式”选项。“按需”选项通过仅下载和保存客户端请求的内容来节省磁盘空间。使用“流式”选项,您也可以在客户端请求时下载,但您不会将内容保存在 Pulp 中。这非常适合同步内容,例如,来自每日仓库的内容,并使您无需在稍后阶段执行磁盘清理。

多种存储选项

即使采用最佳的磁盘优化,随着项目的增长,您可能也需要一种扩展部署以满足您需求的方法。除了本地文件存储之外,Pulp 还支持一系列云存储选项,例如 Amazon S3 和 Azure,以确保您可以扩展以满足部署的需求。

保护您的内容

Pulp 3 可以选择添加 Certguard 插件,该插件提供了一个支持 X.509 的 ContentGuard,要求客户端提交证书以证明他们有权获取内容,然后才能从 Pulp 接收内容。

任何在请求时出示基于 X.509 或 Red Hat 订阅管理的证书的客户端都将被授权,只要客户端证书未过期、由证书颁发机构签名并且在创建时存储在 Certguard 上即可。客户端使用传输层安全性 (TLS) 呈现证书,这证明客户端不仅拥有证书,还拥有其密钥。您可以放心地进行开发,因为您的内容受到保护。

Pulp 团队还在积极开发用于整个 Pulp 部署的基于角色的访问控制系统,以便管理员可以确保合适的用户可以访问合适的环境。

在容器中试用 Pulp

如果您有兴趣亲自评估 Pulp 3,您可以轻松使用 Docker 或 Podman 在容器中安装 Pulp 3。Pulp 团队一直在努力简化安装过程。您还可以使用 Ansible playbook 来自动化 Pulp 3 的完整安装和配置。

接下来阅读什么
User profile image.
我帮助 Foreman 和 Pulp 社区。我喜欢写作和鸟类。

评论已关闭。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.