如何在Ansible中创建数组模板?
我有一个模板文件config.j2: 我的输出是:如何在Ansible中创建数组模板?,ansible,jinja2,Ansible,Jinja2,我有一个模板文件config.j2: 我的输出是: ips= 192.168.231.91 ips= 192.168.231.92 ips= 192.168.231.93 我希望保存在数组变量中,如下所示: ips=['192.168.231.91','192.168.231.92','192.168.231.93'] 如何做到这一点?解决方案 解释 字符串ips[和]直接打印在模板中 Jinja2表达式处理组['dbs']列表: 对列表的各个元素应用过滤器正则表达式替换 用
ips= 192.168.231.91
ips= 192.168.231.92
ips= 192.168.231.93
我希望保存在数组变量中,如下所示:
ips=['192.168.231.91','192.168.231.92','192.168.231.93']
如何做到这一点?解决方案
解释
字符串ips[和]直接打印在模板中
Jinja2表达式处理组['dbs']列表:
对列表的各个元素应用过滤器正则表达式替换
用单引号括住每个列表元素字符串
在输出中将结果列表转换为逗号分隔的字符串
谢谢如果我想把这个数组转换成字符串?e、 g.[ip1”,“ip2”,“ip3']转换为“ip1,ip2,ip3”,然后您只需要应用上面答案中的一个过滤器。请解释更多。如何解决这个问题?我做了很多筛选,但没有回答。上面第2-3点。
ips= 192.168.231.91
ips= 192.168.231.92
ips= 192.168.231.93
ips=[{{ groups['dbs'] | map("regex_replace", "(.*)", "'\\1'") | join(",") }}]