gpt4 book ai didi

Ansible 模板模块不解析 with_items 变量

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

我使用的是一个简单的模板,其中仅包含变量。这就是我的任务在我的剧本中的样子(实际上是我的剧本中使用的角色):

- name: Ensure the conf file exists
template:
src: file.conf.j2
dest: '/opt/file.conf'
with_items: '{{ myrole }}'

我将变量保存在 group_vars 中。 file.conf.j2 中的任何变量都将正确扩展,例如 {{ myrole_user }},但在扩展 with_items 变量之一时会失败,例如 {{ myrole.应用程序名称}}

我的 group_vars 看起来像这样:

myrole_user: regularuser
myrole:
- { applicationName: foo, othervar: bar }

这是 Ansible 错误:

"msg": "AnsibleUndefinedVariable: 'list object' has no attribute 'applicationName'"

最佳答案

您定义了一个名为 myrole 的列表,然后尝试访问键 myrole.applicationName 的值,因此您收到一条错误消息,表明该列表不包含键/属性(这是正确的——列表只包含一组有序的元素)。

Ansible with_ 默认循环* 设置一个名为 item 的变量,其中包含当前迭代中元素的值,因此在模板中您应该引用 item (而不是保持不变的 myrole 变量):

{{ item.applicationName }}
<小时/>

* 您可以使用 loop control 中的 loop_var 设置更改此设置。部分。

关于Ansible 模板模块不解析 with_items 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43084220/

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