如果有人开发了一个ansible角色,可以通过在github上创建一个可通过ansible-galaxy(very clear instructions)安装的repo来轻松分发。
模块怎么样?
是否有类似的“支持框架”来发布开源的ansible模块(例如,一堆python文件),以便用户可以轻松安装?
答案 0 :(得分:2)
目前,最好的方法是通过galaxy角色的library
目录。您仍然可以通过requirements file安装和使用角色(和捆绑模块),而无需从角色执行任何操作。我们还在研究如何使角色更自己的库(例如,变量/空入口点,而不仅仅是硬编码到tasks / main.yml)。
答案 1 :(得分:1)
角色可以在库文件夹中保存模块。要激活剧本中的模块,您需要先将此角色添加到您的剧本或作为其他角色的依赖项。否则Ansible不知道包含的模块。提供模块的角色不需要定义任何其他任务。只需将library
文件夹放在里面,当然还有所需的meta/main.yml
从Ansible 2.0开始,这甚至适用于(大多数)插件,例如动作插件或回调插件可以放入文件夹action_plugins
或callback_plugins
等。我认为连接,变量和策略插件不能以这种方式工作,但这是显而易见的原因。这些插件在playbook级别上工作,因此无法通过角色加载。