如何从Ansible中提取值并收集事实并加以操纵?

问题描述

我想从收集的事实{{ 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