将你的模块贡献到现有的 Ansible 集合
如果你想将一个模块贡献给现有的集合,你必须满足社区的客观和主观要求。请阅读下面的详细信息,并查看我们的模块开发技巧。
被接受到某些集合中的模块会包含在 PyPI 上发布的每个 Ansible 版本中。但是,贡献到这些集合中并不是分发模块的唯一方法 - 你可以创建你自己的集合,将模块嵌入到 Galaxy 上的角色中,或者只是为了本地使用而共享模块代码的副本。
贡献模块:客观要求
要将模块贡献到大多数 Ansible 集合,你必须
使用 Python 或 Powershell 为 Windows 编写你的模块
使用
AnsibleModule
通用代码支持 Python 2.6 和 Python 3.5 - 如果你的模块不能支持 Python 2.6,请在
DOCUMENTATION
的 requirements 部分中解释所需的最低 Python 版本和理由使用正确的 Python 3 语法
在 GPL 许可(GPLv3 或更高版本)下许可你的模块
理解 DCO 协议,该协议适用于对 Ansible Core 和 Ansible 文档存储库的贡献。
符合 Ansible 的 格式和文档标准
为你的模块包含全面的测试
最小化模块依赖项
如果可能,支持 check_mode
确保你的代码是可读的
如果一个模块被命名为
<something>_facts
,那应该是为了它主要目的是返回ansible_facts
。不要将不执行此操作的模块命名为_facts
。仅使用ansible_facts
来表示特定于主机的信息,例如网络接口及其配置、操作系统和安装的程序。查询/返回一般信息(而不是
ansible_facts
)的模块应命名为_info
。一般信息是非主机特定信息,例如关于在线/云服务的信息(你可以从同一主机访问同一在线服务的不同帐户),或者关于可从该机器访问的 VM 和容器的信息。
其他要求可能适用于某些集合。请查看各个集合存储库以获取更多信息。
请确保你的模块在提交 PR/提案之前满足这些要求。如果你有疑问,请访问Ansible 通信指南,了解如何与社区联系。
为 Ansible 做贡献:主观要求
如果你的模块符合这些客观要求,集合维护者将审查你的代码,看看他们是否认为它是清晰、简洁、安全和可维护的。他们将考虑你的模块是否提供了良好的用户体验、有用的错误消息、合理的默认值等等。此过程是主观的,没有确切的接受标准。为了最大限度地提高你的模块被接受的机会,请遵循我们的模块开发技巧。