Jinja2 с Ansible, несколько переменных в цикле - PullRequest
0 голосов
/ 07 сентября 2018

Я использую шаблон Jinja2 с Ansible для создания конфигурации HaProxy. У меня есть некоторые проблемы, когда я хочу добавить несколько переменных в одном цикле.

var file:

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

К сожалению, я делаю что-то не так, и у меня нет серверов в первом блоке.

1 Ответ

0 голосов
/ 07 сентября 2018

деталь

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

должна быть включена в

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

, чтобы работать, поэтому переместите первый {% endfor %} вниз.

...