我尝试过这样的事情:
gather_facts: yes
tasks:
- debug: var=ansible_all_ipv4_addresses
- set_fact:
man_ip: "{{ item }}"
with_items: ansible_all_ipv4_addresses
when: "item.startswith('10.')"
- debug: var=man_ip
它可以工作,但是我使用docker的服务器有问题,因为docker容器也有10.x.x.x
开头的接口地址。
那么,我怎样才能获得主机专用网址?
答案 0 :(得分:6)
您可以使用ansible_all_ip_addresses
事实和ipaddr
过滤器。
{{ ansible_all_ipv4_addresses | ipaddr('private') | first }}
注意:您可以查看ansible -m setup localhost
修改:您也可以使用ipaddr
{{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}
答案 1 :(得分:3)
怎么样:
- debug: var="ansible_eth0['ipv4']['address']"
或
- debug: var=ansible_eth0.ipv4.address
答案 2 :(得分:0)
- debug: var=hostvars[inventory_hostname].private_ipv4