跳至内容

概述

关键技术

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 用户体验中。