Ansible设置模块来搜索和查找IP地址
问题描述:
我的主机有3个网络IP地址,其中一个在我的操作手册中稍后需要。Ansible设置模块来搜索和查找IP地址
在我的剧本我已经跑了以下安装模块:
- name: Gather Networks Facts into Variable
setup:
register: setup
- name: Debug Set Facts
debug:
var: setup.ansible_facts.ansible_ip_addresses
将提供以下的输出:
{
"setup.ansible_facts.ansible_ip_addresses": [
"10.0.2.15",
"fe80::85ae:2178:df12:8da0",
"192.168.99.63",
"fe80::3871:2201:c0ab:6e39",
"192.168.0.63",
"fe80::79c5:aa03:47ff:bf65",
"fd89:8d5f:2227:0:79c5:aa03:47ff:bf65",
"2a02:c7f:9420:7100:79c5:aa03:47ff:bf65"
]
}
我试图找到一种方法,通过搜索找到192.168.0.63使用前三个八位字节或192.168.0。我也想把这个价值转化为事实,所以我可以在以后的剧本中使用它。
用Ansible或Jinja2搜索和查找价值的最佳方法是什么?
答
请问这是吗?
- set_fact:
my_fact: "{{ (setup.ansible_facts.ansible_ip_addresses | select('match','192.168.0.') | list)[0] }}"
如果有多个匹配模式的值,它将按顺序得到第一个值。
完美运作。谢谢 – PatchSte