将您的模块贡献到现有的 Ansible 集合

如果您想将模块贡献到现有的集合,则必须满足社区的客观和主观要求。请阅读以下详细信息,并查看我们的 模块开发技巧

被某些集合接受的模块包含在 PyPI 上的每个 Ansible 版本中。但是,为其中一个集合贡献代码并不是分发模块的唯一方法 - 您可以 创建您自己的集合,将模块嵌入 Galaxy 上的角色,或者简单地共享模块代码的副本以供 本地使用

贡献模块:客观要求

要将模块贡献到大多数 Ansible 集合,您必须

  • 使用 Python 或 Windows 的 Powershell 编写您的模块

  • 使用 AnsibleModule 公共代码

  • 支持 Python 2.6 和 Python 3.5 - 如果您的模块不支持 Python 2.6,请在 DOCUMENTATION 中的要求部分说明所需的最低 Python 版本和理由

  • 使用正确的 Python 3 语法

  • 遵循 PEP 8 Python 风格约定 - 请参阅 pep8 以获取更多信息

  • 在 GPL 许可证(GPLv3 或更高版本)下许可您的模块

  • 了解 DCO 协议,该协议适用于对 Ansible CoreAnsible 文档 存储库的贡献。

  • 符合 Ansible 的 格式和文档 标准

  • 为您的模块包含全面的 测试

  • 最大程度地减少模块依赖项

  • 如果可能,支持 check_mode

  • 确保您的代码可读

  • 如果模块命名为 <something>_facts,则应该是因为它主要目的是返回 ansible_facts。不要将不执行此操作的模块命名为 _facts。仅对特定于主机的信息使用 ansible_facts,例如网络接口及其配置、哪个操作系统以及安装了哪些程序。

  • 查询/返回一般信息(而不是 ansible_facts)的模块应命名为 _info。一般信息是非特定于主机的信息,例如有关在线/云服务的信息(您可以从同一主机访问同一在线服务的不同帐户),或有关机器可访问的 VM 和容器的信息。

某些集合可能适用其他要求。查看各个集合存储库以获取更多信息。

在提交 PR/建议之前,请确保您的模块满足这些要求。如果您有任何疑问,请访问 Ansible 通信指南,了解如何联系社区。

为 Ansible 贡献代码:主观要求

如果您的模块满足这些客观要求,集合维护人员将审查您的代码,以查看他们是否认为代码清晰、简洁、安全且可维护。他们将考虑您的模块是否提供了良好的用户体验、有帮助的错误消息、合理的默认值等等。此过程是主观的,没有确切的接受标准。为了最大程度地提高模块被接受的机会,请遵循我们的 模块开发技巧

其他清单