使用Ansible获取最后两段ip地址
Get last two segment of ip address using Ansible
我有一个获取 ip 地址的 playbook,如下所示。
---
- hosts: all
tasks:
- debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address']
输出:
TASK [debug] *************************************************************************************************************************************************
ok: [mwiwas01] => {
"hostvars[inventory_hostname]['ansible_default_ipv4']['address']": "10.0.12.15"
}
但是,我希望获得 IP 地址的最后两段,即仅 12.15
。
注意:每个主机上的 IP 地址都会发生变化,因此我正在寻找一种兼容任何给定 IP 版本 4 的标准解决方案。
如何从IP地址中获取相同的内容。
利用split
功能。
- debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address'].split(".")[3]+hostvars[inventory_hostname]['ansible_default_ipv4']['address'].split(".")[4]
我有一个获取 ip 地址的 playbook,如下所示。
---
- hosts: all
tasks:
- debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address']
输出:
TASK [debug] *************************************************************************************************************************************************
ok: [mwiwas01] => {
"hostvars[inventory_hostname]['ansible_default_ipv4']['address']": "10.0.12.15"
}
但是,我希望获得 IP 地址的最后两段,即仅 12.15
。
注意:每个主机上的 IP 地址都会发生变化,因此我正在寻找一种兼容任何给定 IP 版本 4 的标准解决方案。
如何从IP地址中获取相同的内容。
利用split
功能。
- debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address'].split(".")[3]+hostvars[inventory_hostname]['ansible_default_ipv4']['address'].split(".")[4]