python-2.7 - 是否可以在没有 Ansible 源代码的情况下开发自定义 Ansible 模块?
问题描述
根据Ansible 的开发人员指南,首先要做的是查看 Ansible 项目。然后在ansible/modules/中添加您自己的模块,将支持代码添加到ansible/module_utils中。将您的测试代码放在ansible/test/units/module/中,并在 ansible /test/units/module/utils.py中使用 Ansible 测试实用程序。
该文档对如何分发自定义模块保持沉默。
然而,看看开发方法,我认为这是一个安全的假设,人们应该维护自己的 Ansible 版本。在扩展了 Ansible 的源代码之后,他们不得不重新构建整个代码。他们从那里分发这个版本的 Ansible,而不是库存的 Ansible。
就个人而言,我认为这是不切实际的:
源代码管理变得复杂。
没有简单的方法可以为一系列 Ansible 版本开发自定义模块。
升级 Ansible 涉及复杂的源代码合并。
我宁愿不参与从源代码构建像 Ansible 这样的项目。
更不用说如果我触摸了错误的文件,真的会有破坏 Ansible 的风险。
我知道在ansible/modules命名空间中制作包含代码的 Python 包的方法。只需 pip 安装您的包,瞧,Ansible 知道该模块。这正是我所需要的。
但是,在ansible命名空间中开发单独的代码使得无法从已安装的 Ansible 库中导入代码。除此之外,ansible/test已从 Ansible 库中删除。不再有支持的测试代码。
因此,除非我错了,否则独立于 Ansible 的源代码开发自定义模块的唯一方法是破解我的方式。我宁愿不这样做。
还是有一种干净的方法可以做到这一点?