Ansible 作业输出到 json 文件,同时保持默认标准输出

Ansible job output to json file, while keeping default stdout

我需要 运行 ansible-playbook 并将 运行 结果输出到 json 文件,并且 保持正常的标准输出日志。

换句话说,将人类可读的日志流保留在标准输出上,但将机器可读的输出创建到文件中。


我可以通过设置

让ansible-playbook输出一个json日志
[defaults]
log_path = /tmp/log.txt
stdout_callback = json

问题是这覆盖了 stdout 设置,因此它不再将“正常”作业输出文本输出到 stdout。 相反,它会在 运行 完成后转储 json 文本,并将 json 输出到标准输出。

我正在寻找的是某种 log_callback = jsonlog_callback = yaml 类型设置,并保留 stdout_callback 默认值。但是,在查看可用选项时,似乎没有什么合适的。

与ansible的自动化交互有专门的库,ansible-runner