gpt4 book ai didi

ansible - 使用来自 git 存储库的 ansible 模块?

转载 作者:行者123 更新时间:2023-12-04 15:09:28 25 4
gpt4 key购买 nike

我有一本剧本和一堆我写的模块。

现在我想在我的下一个剧本中为不同的项目重用相同的模块。

我真的很想将这些模块推送到公共(public) git 存储库,然后以某种方式告诉 ansible 使用 git 存储库中的模块。

(有点像 npm package.json 引用 github)

我似乎找不到任何关于如何做到这一点的文档。

现在,我正在使用一种解决方法,告诉人们 npm install 存储库,然后定义 ANSIBLE_LIBRARY 变量。

如何告诉剧本从 github 存储库或其他远程位置加载模块?

最佳答案

实际上,模块可以嵌套在角色内部已经很长时间了。从 Ansible 2 开始,大多数插件都可以做到这一点。

modules 所在的文件夹& plugins需要存储在角色内部与剧本级别相同。模块进入 library , 插件进入 *_plugins (action_pluginscallback_pluginsfilter_plugins 等)

要使模块/插件可用,必须将角色应用于剧本(或添加为另一个角色的依赖项)

我唯一知道的异常(exception)是可变插件,这完全有道理。由于变量插件是在读取 list 时执行的,这发生在解释角色之前。
vars_plugins仍然可以按角色分配,但 path needs to be added in the ansible.cfg .幸运的是,您还可以在路径中使用通配符:

vars_plugins = roles/*/vars_plugins

不,所有这些都没有以任何方式记录。 :)

最后,要分配角色,您可以使用 Ansible Galaxy :
ansible-galaxy install foo

直接使用 git 没有错。 Ansible Galaxy 实际上只是一个安装 git 存储库的工具。但由于 Galaxy 是 Ansible 标准,我建议至少提供与 Galaxy 兼容的格式。可以在 here 中找到如何将 Galaxy 角色与项目角色分开安装的良好(最佳?)实践。 .

下面是一个 Action 插件的例子: https://galaxy.ansible.com/udondan/ssh-reconnect/

关于ansible - 使用来自 git 存储库的 ansible 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34918058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com