如何从 Ansible 中提取值收集事实并对其进行操作?

How to extract values from Ansible gather facts and manipulate it?

我想从收集的事实中提取一些值{{ ansible_default_ipv4 }}
为此,我 运行 ansible -i hosts all -m setup -a filter=ansible_default_ipv4 然后我得到输出为:

"ansible_facts": {
        "ansible_default_ipv4": {
            "address": "10.6.97.221",
            "alias": "bond0",
            "broadcast": "10.6.97.255",
            "gateway": "10.6.97.1",
            "interface": "bond0",
            "macaddress": "e8:39:35:c0:38:a4",
            "mtu": 1500,
            "netmask": "255.255.255.0",
            "network": "10.6.97.0",
            "type": "ether"
        },
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false

我想从地址 + 网络掩码 + 网关中提取值并将它们以该值的形式打印到文件中。 我怎样才能做到这一点?

我通过

实现了它
- name: echo
  shell: echo "{{ ansible_hostname }} {{ ansible_default_ipv4.macaddress }} {{ ansible_default_ipv4.address }} {{ ansible_default_ipv4.netmask}} {{ ansible_default_ipv4.gateway}} {{ SERVER_ILO.stdout }}" >> /tmp/log.txt