问题标签 [ansible-runner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3021 浏览

python - Ansible 奇怪的错误:错误是:'str object' 没有属性'ip'

我对 Ansible 剧本有一个非常奇怪的问题。

我将 ansible 与 Flask API 一起使用,因此我使用 ansible-runner 将变量传递给我的剧本。

我的剧本只是我的字典及其 ip 属性的调试:

那时我什么都不懂了。我的应用程序位于 docker 容器中,这是我在启动 playbook 时遇到的错误:

除非我在 docker 之外运行我的剧本,否则我没有错误,并且我无法在本地或我的 docker 上使用相同版本的 python。

你知道那是什么吗?

Ansible 2.7.4

Python 3.5.3

如果您需要更多详细信息,请随时询问。

[编辑]

我已经尝试过有关此问题的新方法,这似乎是格式问题。所以我在这里写了一个更完整的帖子

0 投票
2 回答
325 浏览

python - 使用 Python 字典编写 Ansible 剧本

我正在尝试使用 python 脚本执行以下剧本。

该剧本基本上检查是否启用了任何 apache 站点,如果是,则通过从 /etc/apache2/sites-enabled 中删除所有文件来禁用它们。

第二个任务应该在目录/etc/apache2/sites-enabled为空时执行。但是“何时”条件总是被评估为真。即使我写when="False"。也试过when="eval(False)"

0 投票
0 回答
769 浏览

python - 使用 python 执行 ansible playbook 时出错

如果我使用ansible-playbook命令运行,我有一本可以正常工作的剧本。但我想从 python 脚本执行这个剧本所以我在 python 中创建了一个函数,它接受库存文件的路径和剧本文件的路径。

如果我使用此函数执行剧本,我会收到以下错误:

这是剧本代码:

0 投票
2 回答
817 浏览

python - 将列表作为库存传递给 ansible_runner python 模块

我想使用 ansible_runner 对主机进行一些解析。我有一个脚本,它从数据库中收集主机列表,然后我想将该列表传递给 ansible_runner python 模块,而不将“库存”写入磁盘。

根据我从文档中可以理解的内容,我尝试这样做:

我似乎将我传递的列表中的每个元素都视为位于清单目录中的清单文件。我只想将列表中的元素用作要使用的主机,在这种情况下执行 ping。

我的问题是如何将库存变量传递给 ansible_runner python 模块是否是 json 文件、列表、字典,它在磁盘上的任何位置都不存在?并让 ansible 连接到那些。

0 投票
1 回答
323 浏览

python - 如何为 Ansible Runner 任务设置超时?

在下面的假设示例中,我sleep通过 shell 模块在远程主机上执行了 5 秒。如果远程 shell 进程没有返回,我希望 Ansible Runner 在四秒后超时。这可能吗?

0 投票
1 回答
407 浏览

python - 使用 ansible-runner 作为 Python 模块接口到 Ansible 错误:RunnerConfig' 对象没有属性 'command'

我使用 ansible 2.9.13 和 ansible-runner 1.4.6

下面是我的 Python 代码:

执行这段代码时出错,</p>

有人可以帮我看看是什么问题吗?感谢所有回复的朋友!

0 投票
1 回答
1314 浏览

python - Ansible Runner 无法执行 playbook

我正在尝试使用 ansible runner 在 Flask Python 项目中执行 ansible playbook,但在执行时,我收到以下错误:The command was not found or was not executable: ansible-playbook.

该应用程序在目录内的 docker 容器中运行/app

代码:

这是项目树:

烧瓶 Docker 文件:

0 投票
1 回答
252 浏览

python - 完成得太快时,Ansible Runner 连续调用会混乱

我使用官方 Ansible Runner 库制作了一个软件,该库接收多个远程调用来运行 1 或 N 次 1 或 M 剧本...... Ansible 运行配置是顺序的,尽管这与不同的调用无关(如果我理解正确,它只是在同一个剧本运行中配置任务)

所以,我使用Ansible Runnerrun_async()运行剧本:

并保持一个循环异步线程的is_alive()方法,检查其他条件

如果引发异常,或者线程完成后,我只检查状态结果并返回。

问题是,当系统同时收到大量呼叫时,它会出现混乱,并且我会收到如下错误:

错误显然是这样的:

我做检查(日志和 env/extravars 文件),但发送的命令是正确的:

所以,似乎一个内存区域在没有被清理的情况下被覆盖,可能是 2 个跑步者一起运行(似乎有可能)没有线程安全?请问您对如何解决这个问题或防止它发生的方法有一些想法吗?

代码正常工作,使用一些延迟时相同的调用工作,但我不认为这是一个理想的解决方案......

我在玩 Ansible 配置,但没办法。

0 投票
0 回答
122 浏览

python - 将 dict 作为 playbok 传递给 ansible_runner python 模块

如何将剧本从 dict 而不是本地 yaml 文件传递​​给 ansible-runner 以与 ansible 交互。

我将剧本转换为字典,我想使用它。而不是在单独的 yaml 文件中使用剧本。

但是执行脚本时出现错误。

我得到的错误是:

我怎么能模仿 yaml 文件的传递。ansible 在内部将 yaml 文件转换为 dict...,如 python api 文档中所示。

我通过使用它在我的代码中得到了 dict,这就是 ansible 解析 yaml 文件的方式:

谢谢

0 投票
0 回答
74 浏览

python-3.x - 更改 ansible_runner Python 解释器版本

我正在尝试使用 ansible_runner,但我不确定是否可以在使用 run() 执行之前更改 Python 解释器版本?

我正在制作一个python项目并通过SSH通过远程解释器运行它。这个项目有一个我使用的虚拟环境。当我运行我的代码时,它在正确的环境下按预期工作(参见下面的前两行),但是当尝试使用 ansible_runner.run(stuffhere)函数时,它似乎使用的是 Python3.7。

你可以猜到,我已经在我的环境中安装了 jinja2(也是全局的)。而且“/usr/local/bin/ansible-playbook”路径不是我的环境之一。

这是我的输出错误:

有谁知道我是否可以明确告诉跑步者使用我的虚拟环境?

非常感谢你的建议