首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ansible中获取主机内网地址

如何在Ansible中获取主机内网地址
EN

Stack Overflow用户
提问于 2016-01-12 04:14:01
回答 3查看 8K关注 0票数 2

我尝试过这样的东西:

代码语言:javascript
复制
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开头的接口地址。

那么,如何获取主机内网地址?

EN

回答 3

Stack Overflow用户

发布于 2018-01-19 00:03:26

您可以使用ansible_all_ip_addresses事实和ipaddr过滤器。

代码语言:javascript
复制
{{ ansible_all_ipv4_addresses | ipaddr('private') | first }}

注意:您可以查看您在ansible -m setup localhost中有哪些可用的事实

编辑:您还可以使用ipaddr按ip进行过滤

代码语言:javascript
复制
{{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}
票数 8
EN

Stack Overflow用户

发布于 2016-01-12 05:12:18

这样如何:

代码语言:javascript
复制
- debug: var="ansible_eth0['ipv4']['address']"

代码语言:javascript
复制
- debug: var=ansible_eth0.ipv4.address
票数 3
EN

Stack Overflow用户

发布于 2019-05-14 23:30:37

代码语言:javascript
复制
- debug: var=hostvars[inventory_hostname].private_ipv4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34730239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档