在ansible中提取最后两个IP

cru*_*der 3 python ansible

我需要一些帮助,想出一种非常简单的方法来从 ansible 的 IP 地址中提取最后两个数字。我的剧本目前看起来像这样

---
- hosts: localhost
  tasks:
   - name: install dns resolver
     yum: name=python-dns

   - debug: msg={{ lookup('dig','google.com.') }}
Run Code Online (Sandbox Code Playgroud)

运行这个剧本会产生以下结果

TASK [install dns resolver] ****************************************************
ok: [localhost]

TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "172.217.7.142"
Run Code Online (Sandbox Code Playgroud)

有没有办法只返回该IP的最后两个数字?ie42

实际上,我必须将其嵌入到最终将具有如下格式的模板中:

last_two_numbers_of_IP={{ lookup('dig','google.com.') }}
Run Code Online (Sandbox Code Playgroud)

模板中的输出应如下所示:

 last_two_numbers_of_IP=42
Run Code Online (Sandbox Code Playgroud)

hel*_*loV 6

获取最后一个八位字节,然后获取最后一个八位字节的最后两个字符。如果最后一个八位字节只有一个数字,它将只返回那个数字。

  vars:
    ip: 192.168.1.123

  tasks:
   - name: install dns resolver
     debug: msg={{ ip.split('.')[-1][-2:] }}
Run Code Online (Sandbox Code Playgroud)

输出

TASK [install dns resolver] ****************************************************
ok: [localhost] => {
    "msg": "23"
}
Run Code Online (Sandbox Code Playgroud)