2017-06-02 60 views
0

我想在Ansible中向另一个列表添加一个列表。虽然在那,我发现,使用在Ansible中添加一个列表到另一个(oneliner)

tasks: 
    set_fact: 
    my_list: "{{ my_list + my_append_list }}" 

的作品,但它需要3行代码,这似乎是很多麻烦。问题是,使用

my_list: "{{ my_list + my_append_list }}" 

以无限递归结束。这种类型的分配仅适用于涉及第三个列表名称的情况(例如my_third_list: "{{ my_list + my_append_list }}"

问题是:有没有办法通过单行代码将列表附加到另一行,而不使用另一个变量呢?

由于提前,P.

回答

1

号因为在Ansible在大多数情况下,你不分配变量,但定义模板。

分配:

- set_fact: 
    my_list: "{{ my_list + my_append_list }}" 

这是一种:模板是什么右侧,并将结果指定到左侧,模板(评估)在set_fact执行的时刻完成的。

vars: 
    my_list1: "{{ my_list + my_append_list }}" 

这是一种:

别名(我发明了这个词,你会不会在Ansible文档找到)定义一个名为my_list1别名(左侧)为模板字符串在右侧。在某些任务中使用my_list1变量时,右侧将立即进行模板化(评估)。

如果您在左侧和右侧表达式中使用相同的名称,则可以获得无限递归..

相关问题