zoukankan      html  css  js  c++  java
  • ansible 获取内网 IP

    问题:

      由于线上机器是多家厂商的且网卡会有公网IP和内网IP都绑定情形,并且有些服务必须保证监听内网IP,但在host清单文件配置中有可能是内网IP,也有可能是公网IP。

      使用:变量 {{ ansible_all_ipv4_addresses }}  会获取机器所有IP,但没有排序

      使用:  变量  {{ ansible_default_ipv4['address'] }} 则是网卡默认IP,经验证此时有可能是内网IP也有可能是公网IP

    解决:

        安装:netaddr 模块

    yum install -y python-netaddr
    pip3 install netaddr 
    

     对变量 ansible_all_ip_addresses  使用 ipaddr 过滤 

    {{ ansible_all_ipv4_addresses | ipaddr('private') | first }}
    
    or
    
    {{ ansible_all_ipv4_addresses | ipaddr('10.0.0.0/8') | first }}

    参考:

    https://docs.ansible.com/ansible/2.3/playbooks_filters_ipaddr.html

    https://docs.ansible.com/ansible/2.3/playbooks_filters.html#filters

    https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters_ipaddr.html

    https://stackoverflow.com/questions/34730239/how-to-get-host-private-network-address-in-ansible

    https://www.cnblogs.com/carriezhangyan/p/10950970.html

  • 相关阅读:
    对象生成xml
    Memcache使用指南
    java实现AES加密解密
    Log4j常用的配置说明
    java利用dom4j对任意xml的解析
    一个不错的JDBC连接池教程
    jwt介绍
    model基础操作
    图书管理系统前端
    图书管理系统后端
  • 原文地址:https://www.cnblogs.com/morse/p/14036236.html
Copyright © 2011-2022 走看看