我尝试过这样的事情:
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
Run Code Online (Sandbox Code Playgroud)
它有效,但我使用docker的服务器有问题,因为docker容器也有开始接口的地址10.x.x.x.
那么,我怎样才能获得主机专用网址?
你可以使用ansible_all_ip_addresses事实和ipaddr过滤器.
{{ ansible_all_ipv4_addresses | ipaddr('private') | first }}
Run Code Online (Sandbox Code Playgroud)
注意:您可以查看可用的安全事实ansible -m setup localhost
编辑:你也可以通过ip过滤ipaddr
{{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}
Run Code Online (Sandbox Code Playgroud)
怎么样:
- debug: var="ansible_eth0['ipv4']['address']"
Run Code Online (Sandbox Code Playgroud)
或者
- debug: var=ansible_eth0.ipv4.address
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5345 次 |
| 最近记录: |