如何使ansible-playbook以xml或json等机器可读格式记录其输出

203次阅读
没有评论

问题描述

想要了解如何使ansible-playbook以机器可读的格式输出。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在Ansible中,可以通过配置选项来实现以机器可读的格式输出。有几个选项可以输出JSON格式的结果:
1. JSON输出到标准输出
2. JSON输出到syslog

你可以在配置文件(ansible.cfg)或环境变量(ANSIBLE_XXX)中设置这些配置选项,具体取决于你的喜好。以下是配置文件的示例(ansible.cfg):

[defaults]
callback_whitelist=json
stdout_callback=json

使用环境变量的示例:

ANSIBLE_CALLBACK_WHITELIST=json ANSIBLE_STDOUT_CALLBACK=json ansible-playbook ...

请注意,Ansible会按照以下顺序搜索配置文件,并使用找到的第一个文件,忽略其他文件:
1. ANSIBLE_CONFIG(如果设置了环境变量)
2. ansible.cfg(在当前目录)
3. ~/.ansible.cfg(在用户主目录)
4. /etc/ansible/ansible.cfg

以上是使用Ansible的配置选项来实现以机器可读格式输出的方法。你可以根据自己的需求选择适合的方法。

正文完