我正在使用Ansible的Jinja2模板来生成HaProxy配置。 我想在同一循环中添加多个变量时遇到一些问题。
var文件:
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
不幸的是,我做错了事,并且第一块中没有服务器。
答案 0 :(得分:0)
零件
{% for server in servers %}
server {{ server }}:80 cookie SA check
{% endfor %}
必须包含在
中{% for url in haproxy_url %}
...
{% endfor %}
要工作,因此将第一个{% endfor %}
移到底部。