For loop 循环中有多个可变变量的Jinja2
我使用Ansible的Jinja2模板来生成HaProxy配置。 当我想在同一个循环中添加多个变量时,我遇到了一些问题 变量文件: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
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%}
移到底部