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