gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 19:41:36 24 4
gpt4 key购买 nike

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

我要控制num_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 %}

得到以下错误
fatal: [test-web01.aliceapp.com]: FAILED! =>
{"changed": false,
"failed": true,
"invocation": {"module_args": {"dest": "/home/tomcat/apache-tomcat/conf/server.xml", "src": "test/server.j2"}, "module_name": "template"},
"msg": "AnsibleError: an unexpected type error occurred. Error was an integer is required"}

我尝试了多种语法组合,但它们都不起作用。

最佳答案

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

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

关于Ansible Playbook- 在 for 循环中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36679134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com