Ansible:动态列表创建

Ansible:动态列表创建

我正在尝试在剧本执行期间动态创建一个列表,根据下面的代码,列表没有更新

- debug: var=builds[{{item}}]
  with_sequence: start={{ exactlen }} end={{ buildslen }}
- set_fact: upg_version_list = upg_version_list +  builds[{{item}}]
  with_sequence: start={{ exactlen }} end={{ buildslen }}

这里builds是一个列表,exactlen和buildslen是列表的索引值。

如果我显示 upg_version_list 它有空值

答案1

  1. key=value参数的表示法不允许在之间有空格=
  2. 参数的右边部分set_fact是一个字符串,所以你应该对其进行模板化。

尝试:

- set_fact: upg_version_list="{{ upg_version_list + builds[item] }}"
  with_sequence: start={{ exactlen }} end={{ buildslen }}

您可能还希望使用列表来添加元素,并在第一次迭代中使用默认空列表:

{{ upg_version_list|default([]) + [builds[item]] }}

相关内容