首页 > 解决方案 > 如何在 ansible 操作插件之间共享代码

问题描述

我正在开发一些 ansible 操作插件来与主机相关设置进行交互(监控 API,目前在 ansible 模块中不支持)。

当我从单个模块转移到多个模块时,我很清楚需要共享某些功能,例如,所需的授权舞蹈或解包请求。

某些功能是特定于 API 的,可以进入 pip 可安装的 python 模块来包装对 API 的访问。

其他一些功能是非常具体的。API 需要一大块标头会话/令牌数据,因为如果您继续请求令牌并且不使用当前未过期的令牌,该站点将拒绝访问 - 所以这应该存储在 ansible 事实中众所周知的位置,例如所有相关的插件都会从同一个地方访问它。

简单地放置一个相邻的 python 文件并将其导入到动作插件代码中是行不通的——我认为在角色或剧本中使用动作插件时,ansible 最终如何加载动作插件有一些魔力。

因此,除了将 ansible 的特定部分推回 API 包装器 python 库之外,还有什么方法可以将代码保存在集合中以与多个操作插件共享?

标签: pythonansible

解决方案


推荐阅读