我尝试过这样的事情:
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
.
那么,我怎样才能获得主机专用网址?
你可以使用ansible_all_ip_addresses
事实和ipaddr
过滤器.
{{ ansible_all_ipv4_addresses | ipaddr('private') | first }}
注意:您可以查看可用的安全事实ansible -m setup localhost
编辑:你也可以通过ip过滤ipaddr
{{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}