Pulp 是一种程序库内容管理工具,它支持 RPM、Debian、Puppet 模块,现在还开始支持 Docker 库。该项目已经发布了 2.5 版本,包含了一些缺陷修正,以及管理 Docker 库的新插件。
Pulp 是 SysAdvent 系列工具的组成部分, Justin Garrison 已经介绍了如何用它来管理程序库。Pulp 使用_ 导入程序(importers)_ 来从外部源、本地文件系统和其他库来获取和同步内容,然后使用_ 分发程序(distributors)_ 通过http、ISO、rsync 和其他方式来发布那些内容。它使用插件的形式来添加和扩展新的源以及格式。
Pulp 2.5.0 可以和 pulp_docker 一起使用,那是一种可选的插件,可以管理 Docker 库,但还处于 _ 技术预览 _ 的状态。该插件让我们可以在本地创建所有或者部分 Docker 库的镜像,把内容托管在新库中,然后在单独位置管理来自于多个源的内容,它包括以下特性:
- 管理员界面(Pulp API)和终端用户界面(Docker)的分离
- 通过 LDAP 的支持,实现基于角色的访问控制(RBAC)
- 使用结点实现跨组织的内容同步
- 通过用户自定义的环境——像 dev、test 或 prod——来推送内容
- 通过 http、amqp 或 email 实现基于事件的通知
- 对 Docker 注册 API 的只读实现,那可以单独部署
Pulp 可以作为虚拟机和 Docker 注册表功能一起部署,也可以作为 Docker 容器和 Crane 一起部署,或者仅用作一个多容器的环境。它还提供了 Puppet 模块,用于在 RHEL 和 Fedora 中的安装和部署。
Pulp 组件包括:
- Apache httpd:针对 API 和 http(s)发布的库的前端
- Pulp Workers:针对长期运行任务——像库同步和发布——的进程。
- Pulp CeleryBeat:维护 worker 和任务的取消操作
- Pulp 资源管理器:负责为任务分配作业
- MongoDB:存储库和内容的元数据值
- Apache Qpid/RabbitMQ:针对作业分配的消息总线
- pulp-admin:用来管理内容和消费程序的命令行工具。
所有组件都可以分发,以调整服务的规模。Pulp 服务器还可以完全或者部分地被其他服务器分发和复制,那可以跨父子节点关系的多个位置进行。
查看英文原文: Pulp 2.5 Released Including Docker Repository Management
评论