Ansible Collection 创建者路径

注意

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

Ansible Collection 是一种用于分发 Ansible 内容的格式,其中可以包含 playbook、角色 (roles)、模块 (modules) 和插件 (plugins)。一个典型的 Collection 旨在解决一组相关的用例。例如,community.dns Collection 包含了用于操作 DNS 的模块和插件。

您可以安装他人制作的 Collection,或者通过 Ansible Galaxy 等分发服务器与社区共享您的 Collection。经过认证的 Collection 可以发布到 Red Hat Automation Hub(Red Hat Ansible Automation Platform 的一部分)。

创建并共享 Collection 是为 Ansible 项目做出贡献的一种绝佳方式。

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

本指南的目的是为您(潜在的)内容创建者提供一个关于 Ansible Collection 创建者旅程的连贯概览:从第一个模块/角色的构思,到您的 Collection 被包含在 Ansible 社区包中。 Collection 开发指南章节 提供了关于该旅程中更详细方面的参考。整个旅程包含以下里程碑:

检查当前可用方案

如果您对新的角色或模块/插件有想法,但已经存在能够解决您自动化问题的充分方案,则无需重复造轮子。

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

如果发现的方案不完全充分或存在缺陷,请考虑改进它们而不是创建自己的方案。每个 Collection 都会包含关于在哪里提交该 Collection 问题以提出增强建议的信息。

如果您已经编写了内容并在工作流中使用,您仍可以考虑将其整合到现有方案中。然而,如果这些选项不适用于您的 Collection 构思,我们鼓励您创建并共享自己的作品。

创建您的内容

尝试 过但没有为您的自动化问题找到任何充分的方案。

请使用以下指南之一:

将您的内容放入 Collection 中

创建 了新内容。

现在是时候创建一个可复用且可共享的 Collection 了。请参阅 开发 Collection 指南 了解如何操作。

我们建议您使用 collection_template 仓库 作为您 Collection 的基础。

编写优秀的 Collection 用户文档

您的 Collection README.md 文件应包含快速启动安装和使用指南。您可以参考 community.general Collection 的 README 文件 作为示例。

如果您的 Collection 包含模块或插件,请确保其文档详尽。请参阅 模块格式和文档指南Ansible 文档风格指南 以了解更多信息。

发布您的 Collection 源代码

将您的 Collection 发布在软件开发和版本控制平台(如 GitHub)上。

可以是您的个人仓库或组织仓库。您也可以 申请ansible-collections 组织下创建仓库。

确保您的 Collection 包含详尽的许可证信息。Ansible 是一个开源项目,因此我们鼓励您使用开源许可证对其进行授权。如果您计划提交您的 Collection 以将其纳入 Ansible 社区包,您的 Collection 必须满足 许可证要求

如果您使用了我们之前推荐的 collection_template 仓库 作为 Collection 的骨架,其中已经包含了 GNU GPL v3 许可证。

遵循版本控制规范

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

  • 遵循版本控制规范。强烈建议使用 SemVer

  • 基于 Git tags 进行发布。

理解并实现测试与 CI

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

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

添加测试

对 Collection 进行测试可确保您的代码运行良好,并能与 ansible-core 等其他组件集成。

请参考以下文档:

实现持续集成

现在,请确保当您的 Collection 仓库中创建 pull request 时,它们能使用 CI 工具(如 GitHub Actions 或 Azure Pipelines)自动进行测试。

collection_template 仓库 包含了 GitHub Actions 模板,您可以对其进行调整并用于在您的仓库中启用工作流。

提供优秀的贡献者与维护者文档

请参考 collection_template/README.md 作为示例。

在分发服务器上发布您的 Collection

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

使您的 Collection 成为 Ansible 社区包的一部分

使您的 Collection 满足 Ansible 社区包 Collection 要求 并提交以申请纳入。请参阅 纳入流程说明 了解如何操作。

维护

维护您的 Collection。详见 Ansible Collection 维护者指南

沟通

与社区互动。请查看 Ansible 沟通指南 以了解可用的沟通方式。

另请参阅

开发集合

关于 Collection 开发方面的的一系列指南