Ansible 集合创建者路径

注意

如果您不熟悉 Ansible 集合,请先查看 使用 Ansible 集合指南

Ansible 集合是一种用于 Ansible 内容的分发格式,其中可以包含剧本、角色、模块和插件。一个典型的集合解决了一组相关的用例。例如,community.dns 集合包括用于处理 DNS 的模块和插件。

您可以安装其他人制作的集合,也可以通过分发服务器(例如 Ansible Galaxy)与社区共享您的集合。经过认证的集合可以发布到 Red Hat Automation Hub,它是 Red Hat Ansible Automation Platform 的一部分。

创建和共享集合是为 Ansible 项目做出贡献的好方法。

Ansible 社区软件包由 ansible-core 组成,它除了其他核心组件外,还包括由核心团队维护的 ansible.builtin 集合,以及由社区维护的一组集合。

本指南的目的是为(潜在的)内容创建者提供一个一致的概述,从第一个模块/角色的想法到将您的集合包含在 Ansible 社区软件包中,这将是 Ansible 集合创建者的旅程。 集合开发指南部分 提供了对这段旅程中更详细方面的参考。整个旅程包括以下里程碑

检查当前可用的解决方案

如果您有一个新的角色或模块/插件的想法,如果已经存在一个能够解决您的自动化问题的足够解决方案,那么就没有必要重新发明轮子。

因此,首先检查当前可用的内容,包括

如果您发现的解决方案不完全足够或存在缺陷,请考虑改进它们,而不是创建自己的解决方案。每个集合都包含有关在何处创建该集合的问题以提出您的增强想法的信息。

如果您已经编写了内容并在工作流程中使用它,您仍然可以考虑将其集成到现有解决方案中。但是,如果这些选项不适用于您的集合想法,我们鼓励您创建和分享您自己的集合。

创建您的内容

尝试过,但没有找到任何适合您的自动化问题的足够解决方案。

使用以下指南之一

  • 角色指南:如果您想创建一个角色。

  • 开发者指南:如果您想为个人使用创建新的 Ansible 模块或插件。

将您的内容放入集合中

创建了新的内容。

现在是时候创建一个可重用且可共享的集合了。使用 开发集合指南 来学习如何操作。

我们建议您使用 collection_template 存储库 作为您的集合的基础。

编写良好的用户集合文档

您的集合 README.md 文件应该包含快速入门安装和使用指南。您可以使用 community.general 集合 README 文件 作为示例。

如果您的集合包含模块或插件,请确保它们的文档完整。使用 模块格式和文档指南Ansible 文档风格指南 了解更多信息。

发布您的集合源代码

在用于软件开发和版本控制的平台(例如 GitHub)上发布您的集合。

它可以是您的个人存储库或您的组织的存储库。您也可以 请求 ansible-collections 组织下的存储库。

确保您的集合包含详尽的许可信息。Ansible 是一个开源项目,因此我们鼓励您在开源许可证下对其进行许可。如果您计划提交您的集合以包含在 Ansible 社区软件包中,您的集合必须满足 许可要求

如果您之前推荐使用 collection_template 存储库 作为您的集合的骨架,它已经包含了 GNU GPL v3 许可证。

遵循版本控制约定

在发布集合的新版本时,请考虑以下推荐做法

  • 遵循版本控制约定。使用 SemVer 强烈推荐。

  • 基于 Git 标签 发布您的版本。

理解和实现测试和 CI

本节适用于包含模块和插件的集合。

对于角色测试,请参阅 Ansible Molecule 项目。

添加测试

测试您的集合可确保您的代码运行良好,并与其他组件(如 ansible-core)集成。

查看以下文档

实施持续集成

现在确保在您的集合存储库中创建拉取请求时,它们会自动使用 CI 工具(如 GitHub Actions 或 Azure Pipelines)进行测试。

collection_template 存储库 包含 GitHub Actions 模板,您可以调整并使用它们来启用存储库中的工作流程。

提供良好的贡献者和维护者文档

参见 collection_template/README.md 作为示例。

在分发服务器上发布您的集合

为了分发您的集合并让其他人方便地使用它,请将您的集合发布到一个或多个分发服务器上。参见 分发集合指南 以了解如何操作。

将您的集合纳入 Ansible 社区包

确保您的集合满足 Ansible 社区包集合要求 并将其提交以进行包含。参见 包含流程说明 以了解如何操作。

维护

维护您的集合。参见 Ansible 集合维护者指南 获取详细信息。

沟通

与社区互动。看看 Ansible 沟通指南 了解可用的沟通选项。

另请参见

开发集合

关于集合开发方面的指南集