実際に出力される項目をリストする必要があります。

実際に出力される項目をリストする必要があります。

set_factを使用して、ターゲットホストのIPアドレスをファイルに保存する必要があります。以下は私のスクリプトですが、リスト形式で出力を提供します。

  hosts:  all
  tasks:
    - set_fact:
        data:  "{{ ansible_all_ipv4_addresses }}"
    - set_fact:
        ip: "{{ data.split(',')  }}"

    - name: Show the devices
      shell: echo {{ item }} >> /tmp/ips
      with_items: "{{  ip  }}"

出力: OK: [system1] => {"data": ["172.19.0.1", "172.18.0.1", "172.20.0.1", "172.17.0.1", "172.16.108.124", "10.0.41.1" ]}

cat /tmp/ips
[u'172.19.0.1', u'172.18.0.1', u'172.20.0.1', u'172.17.0.1', u'172.16.108.124', u'10.0.41.117']


Desired o/p is 
 172.168.1.21
 172.168.1.22

ベストアンサー1

変える

shell: echo {{ item }} >> /tmp/ips
with_items: "{{  ip  }}"

使用金型

template:
  src: ips.j2
  dest: /tmp/ips

テンプレートips.j2の使用

{% for item in ip %}
{{ item }}
{% endfor %}

おすすめ記事