我正在使用Ansible设置Traefik节点,为此,我想在模板中插入一个trustedIps数组。 但是,在将数组插入模板时,它会为每个数组元素添加一个字符'u'。
我认为Traefik配置文件期望使用带字符串的简单数组,并且希望使用双引号,但是我不确定,如果单引号有效,我会尝试使用
。我还尝试在变量和替换之间添加保险柜,但这似乎无关紧要。
现在,我确实找到了另一个有关同一问题的人的问题,这确实为我解决了一些问题,但是我仍然不确定如何解决此问题,因为我没有遍历像这样的变量另一个问题的人做到了。 Link to other question. 关于如何实施解决方案的任何想法?
无论如何,为了实现这一点,我创建了以下代码。 我的模板条目如下所示:
trustedIPs = {{ trustedIps | safe | replace('\'', '\"') }}
我的变量如下:
trustedIps: ["127.0.0.1/32", "XX.XXX.X.XX"]
我希望它看起来像这样:
trustedIps = ["127.0.0.1/32", "XX.XXX.X.XX"]
但是我的结果看起来像这样:
trustedIps = [u"127.0.0.1/32", u"XX.XXX.X.XX"]
答案 0 :(得分:2)
下面的模板可以完成工作
$ cat test.j2
trustedIPs = ["{{ trustedIps|join('", "') }}"]
戏剧
vars:
trustedIps: ["127.0.0.1/32", "XX.XXX.X.XX"]
tasks:
- template:
src: test.j2
dest: test
给予
$ cat test
trustedIPs = ["127.0.0.1/32", "XX.XXX.X.XX"]