繁体   English   中英

带有Ansible的Jinja2,循环中存在多个变量

[英]Jinja2 with Ansible, multiple variables in loop

我正在使用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

不幸的是,我做错了什么,但我没有在第一块中的服务器。

那个部分

{% for server in servers %}
    server {{ server }}:80 cookie SA check
{% endfor %}

必须包含在里面

{% for url in haproxy_url %}
...
{% endfor %}

要正常工作,请将第一个{% endfor %}移到底部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM