如何在Ansible中创建数组模板?

如何在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']列表: 对列表的各个元素应用过滤器正则表达式替换 用

我有一个模板文件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']列表:

对列表的各个元素应用过滤器正则表达式替换

用单引号括住每个列表元素字符串

在输出中将结果列表转换为逗号分隔的字符串


谢谢如果我想把这个数组转换成字符串?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(",") }}]