我想使用 Ansible 从多个服务器收集信息。这些信息应该在本地进行后处理,因此应该以某种格式呈现。除了和和grep
和sed
其他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()
我链接到的文档中有一个更详尽的示例。