For loop 循环中有多个可变变量的Jinja2

For loop 循环中有多个可变变量的Jinja2,for-loop,ansible,jinja2,For Loop,Ansible,Jinja2,我使用Ansible的Jinja2模板来生成HaProxy配置。 当我想在同一个循环中添加多个变量时,我遇到了一些问题 变量文件: haproxy_url: - site1 - site2 servers: - 'server1 192.168.11.2' - 'server2 192.168.11.3' 模板文件: ### Backends {% for url in haproxy_url %} backend {{ url }} errorfile 503

我使用Ansible的Jinja2模板来生成HaProxy配置。 当我想在同一个循环中添加多个变量时,我遇到了一些问题

变量文件:

haproxy_url:
  - site1
  - site2

servers:
  - 'server1 192.168.11.2'
  - 'server2 192.168.11.3'
模板文件:

### Backends

{% for url in haproxy_url %}

backend {{ url }}
    errorfile 503 /etc/haproxy/503.http
    mode http
    option http-keep-alive
    cookie SRVNAME insert
    option httpchk GET / HTTP/1.1\r\nHost:\ {{ url }}
{% endfor %}
    http-check expect string Something
    default-server inter 3s fall 3 rise 2
{% for server in servers %}
    server {{ server }}:80 cookie SA check
{% endfor %}
现在的结果是:

### Backends

backend site1
    errorfile 503 /etc/haproxy/503.http
    mode http
    option http-keep-alive
    cookie SRVNAME insert
    option httpchk GET / HTTP/1.1\r\nHost:\ something

backend site2
    errorfile 503 /etc/haproxy/503.http
    mode http
    option http-keep-alive
    cookie SRVNAME insert
    option httpchk GET / HTTP/1.1\r\nHost:\ something
    server server1 192.168.11.2:80 cookie SA check
    server server2 192.168.11.3:80 cookie SA check
不幸的是,我做错了什么,第一个块中没有服务器。

部分

{% for server in servers %}
    server {{ server }}:80 cookie SA check
{% endfor %}
必须包括在内

{% for url in haproxy_url %}
...
{% endfor %}
要工作,请将第一个
{%endfor%}
移到底部