我使用像这样的剧本跑步者:
stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=1)
runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=1)
pb = ansible.playbook.PlayBook(
... # basic info
)
results = pb.run()
Run Code Online (Sandbox Code Playgroud)
结果变量包含如下输出:
{"status": 1, "result": {"127.0.0.1": {"unreachable": 0, "skipped": 0, "ok": 3, "changed": 2, "failures": 0}}}
Run Code Online (Sandbox Code Playgroud)
哪个好.但是我还需要像下面显示的dict一样的任务级别输出:
changed: [127.0.0.1] => {"changed": true, "name": "apache2", "state": "started"}
Run Code Online (Sandbox Code Playgroud)
我试着改变冗长,但这不是我想要的.
在挖掘之后,我设法将输出输出到日志文件,如下所示:
from ansible import constants as C
C.DEFAULT_LOG_PATH = 'project.log'
reload(callbacks)
Run Code Online (Sandbox Code Playgroud)
但我需要在我的代码中访问它.