Ansible Playbook-在for循环中传递变量

Ansible Playbook-在for循环中传递变量,ansible,ansible-playbook,Ansible,Ansible Playbook,我试图根据主机的数量创建tomcat集群,并试图将变量传递给模板文件中的for循环 我想通过变量控制num\u hosts 模板文件片段是: {% for id in range(1,( {{ num_hosts }} )) %} <Member className="org.apache.catalina.tribes.membership.StaticMember" port="4110" host="${test.server.web

我试图根据主机的数量创建tomcat集群,并试图将变量传递给模板文件中的for循环

我想通过变量控制
num\u hosts

模板文件片段是:

{% for id in range(1,( {{ num_hosts }} )) %}
    <Member
       className="org.apache.catalina.tribes.membership.StaticMember"
       port="4110"
       host="${test.server.web.other{{ id }}.fqdn}"
       domain="delta-static"
    />
{% endfor %}

我尝试了多种语法组合,但没有一种有效。

range
accespts整数作为参数,但jinja将默认将所有内容转换为字符串。您可以使用内置的jinja2过滤器将值转换为整数:

{% for id in range(1,( {{ num_hosts | int }} )) %}

最终能够使用以下语法使其工作


{%id的范围为(1,(num_hosts | int))%}

请包括您在此处使用的剧本部分
{% for id in range(1,( {{ num_hosts | int }} )) %}