我尝试过这样的东西:
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开头的接口地址。
那么,如何获取主机内网地址?
发布于 2018-01-19 00:03:26
您可以使用ansible_all_ip_addresses事实和ipaddr过滤器。
{{ ansible_all_ipv4_addresses | ipaddr('private') | first }}注意:您可以查看您在ansible -m setup localhost中有哪些可用的事实
编辑:您还可以使用ipaddr按ip进行过滤
{{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}发布于 2016-01-12 05:12:18
这样如何:
- debug: var="ansible_eth0['ipv4']['address']"或
- debug: var=ansible_eth0.ipv4.address发布于 2019-05-14 23:30:37
- debug: var=hostvars[inventory_hostname].private_ipv4https://stackoverflow.com/questions/34730239
复制相似问题