linux 我如何获得JSON、CSV或其他格式的Ansible ad-hoc命令输出?

1qczuiv0  于 2023-02-03  发布在  Linux
关注(0)|答案(3)|浏览(147)

Ansible ad-hoc命令输出JSON、CSV或其他格式的方法是什么?

mspsb9vt

mspsb9vt1#

如果不想修改.cfg文件,也可以通过环境变量执行此操作,例如:

ANSIBLE_LOAD_CALLBACK_PLUGINS=true \
ANSIBLE_STDOUT_CALLBACK=json \
ansible all \
  -a "df -h /tmp"

有关Ansible环境变量的更多信息,请访问:https://docs.ansible.com/ansible/latest/reference_appendices/config.html#environment-variables。

z9ju0rcb

z9ju0rcb2#

ansible.cfg中添加:

[defaults]
stdout_callback = json

参见documentation
而不是这个:

ok: [localhost] => {
    "msg": "test"
}

您将拥有:

{
    "plays": [
        {
            "play": {
                "id": "720000f8-9450-586c-9a68-000000000005", 
                "name": "Json Test"
            }, 
            "tasks": [
                {
                    "hosts": {
                        "localhost": {
                            "_ansible_no_log": false, 
                            "_ansible_verbose_always": true, 
                            "changed": false, 
                            "msg": "test"
                        }
                    }, 
                    "task": {
                        "id": "720000f8-9450-586c-9a68-000000000007", 
                        "name": "Debug"
                    }
                }
            ]
        }
    ], 
    "stats": {
        "localhost": {
            "changed": 0, 
            "failures": 0, 
            "ok": 1, 
            "skipped": 0, 
            "unreachable": 0
        }
    }
}

适用于以下行动手册:

---
- name: Json Test
  hosts: localhost
  gather_facts: False

  vars: 
    test: test

  tasks:
    - name: Debug
      debug:
        msg: "{{ test  }}"
6kkfgxo0

6kkfgxo03#

您至少需要使用Ansible 2.5
然后在您的ansible配置中进行设置:

stdout_callback = json
bin_ansible_callbacks = True

关于ansible配置的一个简短说明(抱怨?)...配置文件不是累加的。如果你有多个配置文件(例如/etc/ansible/ansible. cfg和~/. ansible.cfg),它只会从~/. ansible中取值。
下面是配置文件的顺序:
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file
这里有一个错误:
https://github.com/ansible/ansible/issues/17914
这里还有完整的回调插件列表:
https://docs.ansible.com/ansible/2.6/plugins/callback.html#plugin-list

相关问题