Ansible 将数组复制到模板中会引入额外的';u';每变量

Ansible 将数组复制到模板中会引入额外的';u';每变量,ansible,jinja2,Ansible,Jinja2,我正在用Ansible设置一个Traefik节点,为此,我想在模板中插入一个TrustedIP数组。 但是,在将数组插入模板时,它会为每个数组元素添加一个字符“u” 我认为Traefik配置文件需要一个带字符串的简单数组,我认为它需要双引号,但我不确定这一点,如果单引号起作用,我会尝试 我还尝试在变量和replace之间添加safe,但这似乎并不重要 现在,我确实发现了一些关于某人有相同问题的其他问题,这确实为我澄清了一些,但我仍然不确定如何在我的案例中解决它,因为我没有像其他问题中的人那样循环

我正在用Ansible设置一个Traefik节点,为此,我想在模板中插入一个TrustedIP数组。 但是,在将数组插入模板时,它会为每个数组元素添加一个字符“u”

我认为Traefik配置文件需要一个带字符串的简单数组,我认为它需要双引号,但我不确定这一点,如果单引号起作用,我会尝试

我还尝试在变量和replace之间添加safe,但这似乎并不重要

现在,我确实发现了一些关于某人有相同问题的其他问题,这确实为我澄清了一些,但我仍然不确定如何在我的案例中解决它,因为我没有像其他问题中的人那样循环变量。 关于如何实施解决方案有什么想法吗

无论如何,为了实现这一点,我创建了以下内容。 我的模板条目如下所示:

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"]
我的变量如下所示:

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"]
我希望它看起来像这样:

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"]
但我的结果是这样的:

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"]

下面的模板完成了这项工作

$ cat test.j2
trustedIPs = ["{{ trustedIps|join('", "') }}"]

  vars:
    trustedIps: ["127.0.0.1/32", "XX.XXX.X.XX"]
  tasks:
    - template:
        src: test.j2
        dest: test
给予