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

posted @ 2024-03-18 11:14  wdgde  阅读(144)  评论(0)    收藏  举报