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 %}