[英]Add up Ansible variable in Jinja2 template
我有这个vars文件:
addvlan:
- vlan: pruebavlan
address: 192.168.10.0
mask: 25
gateway: ????
tag: 1917
而且我有使用以上vars的vars的JSON:
"address": "{{address}}",
"mask": {{mask}},
"gateway": "{{gateway}}",
"tag": "{{tag}}",
我需要网关始终使用该地址的下一个IP。 例如,在上述情况下,可能是192.168.10.1
您知道这是否可行或有任何方法吗?
看看ipaddr
过滤器 :
gateway: "{{ network_address | ipaddr('1') | ipaddr('address') }}"
不带ipaddr
过滤器的解决方案:
{{ gateway.split('.')[:3] | join('.') + '.' + (gateway.split('.')[3] | int + 1) | string }}
但是您不能这样做:
addvlan:
- vlan: pruebavlan
address: 192.168.10.0
mask: 25
gateway: "{{ << address manipulations here >> }}"
tag: 1917
这将给您递归错误,因为您尝试定义addvlan.vlan
键来引用同一字典中的其他键。
而是在JSON模板中进行操作:
...
"address": "{{ address }}",
"mask": "{{ mask }}",
"gateway": "{{ address.split('.')[:3] | join('.') + '.' + (address.split('.')[3] | int + 1) | string }}",
"tag": "{{ tag }}",
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.