Ansible剧本中的Jinja2

Ansible剧本中的Jinja2,ansible,ansible-playbook,Ansible,Ansible Playbook,我怎样才能把收集到的事实循环成一本易懂的剧本? 我试过: 但这不起作用,它会导致语法错误。甚至可以在剧本中使用jinja吗 我使用ansible galaxy角色(info.haproxy),我不想更改提供的模板。不,你不能这样做 这必须在模板中完成,例如: 模板/haproxy.cfg.j2: ... {% for host in groups['app-servers'] %} backend {{ hostvars[host]['ansible_hostname'] }} server

我怎样才能把收集到的事实循环成一本易懂的剧本? 我试过:

但这不起作用,它会导致语法错误。甚至可以在剧本中使用jinja吗

我使用ansible galaxy角色(info.haproxy),我不想更改提供的模板。

不,你不能这样做

这必须在模板中完成,例如:

模板/haproxy.cfg.j2:

...
{% for host in groups['app-servers'] %}
backend {{ hostvars[host]['ansible_hostname'] }}
  server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}:1234 check inter 5000 slowstart 2m

{% endfor %}
...
和使用:

tasks:
  - name: Deploy haproxy config
    template: src=templatepath/haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg
你明白了,YMMV

祝你好运

tasks:
  - name: Deploy haproxy config
    template: src=templatepath/haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg