是否可以将变量列表附加到ansible的静态列表中?
我可以将整个列表定义为变量:
my_list:
- 1
- 2
- 3
然后在剧本中使用它
something: {{my_list}}
但我似乎无法找到如何做到这一点(伪代码):
list_to_append:
- 3
- 4
然后在剧本中:
something:
- 1
- 2
- {{append: list_to_append}}
如果这实际上是不可能的,那么您对我的用例有什么建议?
我在参数中有一个项目列表,但其中一些是optional
,应该可以使用变量进行修改。
换句话说:我有default values
+ optional values
可以通过变量添加,也可以不添加。
预先不知道optional values
,我可以添加1,2或100,所以它们不是静态的。
我基本上有一个默认静态列表++可附加的可配置变量列表。
编辑: 我找到了这个,但它只适用于with_items,我需要它在一个普通的参数中:
with_flattened:
- "{{list1}}"
- "{{list2}}"
答案 0 :(得分:36)
如果您确实要附加到内容,则需要使用Thread.Sleep()
模块。但是如果你只是想使用合并列表,那么就像这样简单:
set_fact
使用{{ list1 + list2 }}
,它看起来像这样:
set_fact
注意:如果您需要对连接列表执行其他操作,请务必按以下方式对其进行分组:
- set_fact:
list_merged: "{{ list1 + list2 }}"
答案 1 :(得分:3)
以下内容适用于Ansible 2.1.2.0:
- name: Define list of mappings
set_facts:
something:
- name: bla
mode: 1
- name: Append list with additional mapping
set_facts:
something: "{{ something + [{'name': 'blabla', 'mode': 1}] }}"