ansible输出内容转为json格式
1.ansible配置文件优先级
在Ansible中,它的配置文件是一个名为ansible.cfg的配置文件,ansible.cfg配置文件是以ini格式存储配置数据的。但是ansible.cfg配置文件可以存放在不同的目录,但只有一个可用,在运行Ansible命令时,Ansible将会按照预先设定的顺序查找配置文件,检查到哪个就用哪个。
ansible预先设定的优先级顺序如下:
ANSIBLE_CFG:首先,Ansible命令会先检查环境变量,及这个环境变量将指向的配置文件; ./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件; ~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件; /etc/ansible/ansible.cfg:最后,将会检查在安装Ansible时自动生产的配置文件。
2.在ansible.cfg配置文件中添加以下的配置
[defaults] stdout_callback = json bin_ansible_callbacks = True
3.正常执行ansible命令即可
4.ansible-playbook命令在配置了以上配置后,也可以输出json格式的内容,但是json内容太多了。
5.ansible-playbook输出内容处理
- hosts: xdd tasks: - name: "ansible-playbook aaa script test" script: ./script/a.sh register: result until: result.rc == 0 - name: "deal with stdout" debug: msg: "{{ result }}" #这里还可以使用ansible的过滤器进行各种格式化操作。如to_json、from_json、to_yaml、from_yaml、regex_replace、trim等 when: result is defined
参考连接
https://cloud.tencent.com/developer/article/2241156
https://www.cnblogs.com/liaoyuanbo/p/17367376.html