blockinfile
似乎使用{{
模板进行基本的替换。文档没有提到任何模板功能。
然而,似乎没有可能做一个完整的模板,比如循环。这与template error while templating string: unexpected '%'
blockinfile:
dest: /etc/haproxy/haproxy.cfg
marker: "# {mark} ANSIBLE CONFIG certs"
block: |
{% if certs %}
bind *:443 ssl crt {% for cert in certs %}{{cert}} {{% endfor %}
{% endif %}
这似乎是一个基本的用例,我可能想对配置文件进行一些一次性编辑,但仍然需要模板的强大功能。
请注意,使用with_items
并不能真正做到我想要的,因为我需要一行。
答案 0 :(得分:3)
我认为问题在于您在模板中有额外的{
。
bind *:443 ssl crt {% for cert in certs %}{{cert}} {{% endfor %}
应该是
bind *:443 ssl crt {% for cert in certs %}{{cert}} {% endfor %}