调整 Ansible 输出

调整 Ansible 输出

我想使用 Ansible 从多个服务器收集信息。这些信息应该在本地进行后处理,因此应该以某种格式呈现。除了和和grepsed其他awk系统管理员最好的朋友之外,我如何从 Ansible 中获取与任务相关的信息,而不获取其他信息?

必须有一种方法可以从 Python 运行 Ansible,将变量导出到包装脚本,或者从 Ansible 运行 Python 来自定义输出。

答案1

Ansible 确实可以直接从你自己的 Python 脚本中调用。Ansible API有完整的文档。我自己没有用过,但你应该能够编写自己的 Python 脚本来利用 Ansible 并执行你想做的事情。根据他们的文档,它很简单:

import ansible.runner

runner = ansible.runner.Runner(
   module_name='ping',
   module_args='',
   pattern='web*',
   forks=10
)
datastructure = runner.run()

我链接到的文档中有一个更详尽的示例。

相关内容