使用ansible通过编程方式收集的事实

Mar*_*ing 5 python ansible ansible-facts

我想写一个Python程序,它使用Ansible给我的事实ansible HOST -m setup.

当我调用它时,我得到一个响应,使它只有几乎纯粹的JSON:

$ ansible localhost -m setup
localhost | success >> {
    // actual data
}
Run Code Online (Sandbox Code Playgroud)

有没有办法直接获得这个JSON响应而不解析shell输出(可能不太稳定)?我甚至可以直接在Python 3程序中使用Ansible吗?

leu*_*cos 1

如果Python2适合您,您可以直接使用Ansible API。您可以在这里找到详细说明: http: //docs.ansible.com/developing_api.html 这非常简单。

另一种以 shell 为中心的方法是使用 jq。这里有一个快速介绍:http://xmodulo.com/how-to-parse-json-string-via-command-line-on-linux.html