4

如果有人开发了 ansible 角色,可以通过在 github 上创建一个 repo 来轻松分发它,该 repo 可以通过 ansible-galaxy 进行安装(非常清晰的说明)。

模块呢?

是否有类似的“支持框架”来发布开源 ansible 模块(例如,一堆 python 文件),以便用户可以轻松安装它?

4

2 回答 2

6

编辑:在 2020 年,最好的方法是创建 Ansible Collection。集合允许适当的一流命名空间、文档和各种 Ansible 内容的分发,包括角色、模块和其他插件类型。

2016 年原始答案

目前,最好的方法实际上是通过libraryGalaxy 角色中的目录。您仍然可以通过需求文件安装和使用角色(和捆绑的模块),而无需实际执行角色中的任何内容。我们也在寻找使角色本身更像库的方法(例如,可变/空入口点,而不仅仅是硬编码到tasks/main.yml)。

于 2016-06-20T21:20:47.223 回答
1

角色可以在库文件夹中保存模块。要激活 playbook 中的模块,您需要先将此角色添加到 playbook 或作为另一个角色的依赖项。否则 Ansible 不知道包含的模块。提供模块的角色不需要定义任何其他类似任务。只需将您的library文件夹放入其中,当然需要meta/main.yml

由于 Ansible 2.0 这甚至适用于(大多数)插件,例如动作插件或回调插件可以放入文件夹action_pluginscallback_plugins。我认为连接、变量和策略插件不能以这种方式工作,但这是显而易见的原因。这类插件在剧本级别上工作,因此无法通过角色加载。

于 2016-06-21T08:18:43.757 回答