如何从ansible getent包装模块中提取IP

时间:2019-01-31 16:04:49

标签: ansible

我想使用getent包装器模块来解析/ etc / hosts的内容并将ip地址保存在变量中以备后用。如果在/ etc / hosts

上找到IP,我就无法隔离

我们这样做是为了检查服务器场上的/ etc / hosts是否最新,我们将使用此变量针对dns进行验证,如果两个地址不匹配,则更正/ etc / hosts。我也尝试过吃喝但是没有成功

---
- hosts: all

  tasks:

  - name: getent hosts
    getent:
      database: hosts
      key: "{{ansible_hostname}}"
    register: results

  - name: print result
    debug:
      msg="{{results}}"

  - set_fact:
     a_host_ip={{ getent_hosts[ansible_default_ipv4.address] }}


  - debug: var=a_host_ip

我想将IP地址包含在变量a_host_ip中,但实际内容是与该IP地址相对应的主机名。如何将IP地址保存在变量中。

1 个答案:

答案 0 :(得分:0)

要获取IP列表:

{{ getent_hosts.keys() }}

要获取单个元素:

{{ getent_hosts.keys() | first }}