我需要一些帮助,以一种非常简单的方式从ansible中的IP地址中提取最后两个数字。我的剧本目前看起来像这样
---
- hosts: localhost
tasks:
- name: install dns resolver
yum: name=python-dns
- debug: msg={{ lookup('dig','google.com.') }}
运行此剧本会产生以下内容
TASK [install dns resolver] ****************************************************
ok: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "172.217.7.142"
有没有办法让ansible返回该IP的最后两个数字?即.42
我实际上必须将其嵌入到最终将具有如此格式的模板中:
last_two_numbers_of_IP={{ lookup('dig','google.com.') }}
模板中的输出应如下所示:
last_two_numbers_of_IP=42
答案 0 :(得分:3)
获取最后一个八位字节然后最后两个字符的最后八位字节。如果最后一个八位字节只有一个数字,它将只返回该数字。
vars:
ip: 192.168.1.123
tasks:
- name: install dns resolver
debug: msg={{ ip.split('.')[-1][-2:] }}
<强>输出强>
TASK [install dns resolver] ****************************************************
ok: [localhost] => {
"msg": "23"
}