概述¶
关键技术¶
Galaxy NG 依赖以下依赖项:
- Pulp:软件仓库(更多信息见下文)
- Django:Python Web 应用框架。
- Django Rest Framework:用于使用 Django 开发 REST API 的库。
- React:用于前端的 JavaScript 框架。
- Postgres:数据库。
- Dynaconf:Python 设置库。用于管理配置。
在这些依赖中,对于后端开发而言,最重要的是 Pulp,本文档的其余部分将重点介绍它。对于技术栈中的其他技术,请参阅其各自的文档。
Pulp 概述¶
Pulp 是一个可插拔的库,用于管理软件包。它能够存储软件(例如 Ansible 集合和容器镜像),从远程源(例如 galaxy.ansible.com 和 quay.io)同步它们并将它们组织到仓库中。我们使用了以下 Pulp 项目:
- pulpcore:它本身功能并不多。它提供了存储任何软件类型所需的一般数据结构,这些数据结构是使用插件添加的。
- pulp_ansible:这是一个 Pulp 插件,它增加了对 Ansible 集合和角色的支持。这是 galaxy_ng 主要使用的插件。
- pulp_container:另一个 Pulp 插件,它增加了对容器镜像的支持。这用于 galaxy_ng 中的执行环境支持。
Galaxy NG 本身只是另一个 Pulp 插件,尽管它有点特殊。Galaxy NG 并没有像其他 Pulp 插件那样提供任何自身的内容类型,而是将现有的 Pulp 插件集成到更一致的 Ansible 用户体验中。