将列表变量附加到Ansible中的另一个列表

Gio*_*tti 25 jinja2 ansible ansible-playbook

是否可以将变量列表附加到ansible的静态列表中?

我可以将整个列表定义为变量:

my_list:
  - 1
  - 2
  - 3
Run Code Online (Sandbox Code Playgroud)

然后在剧本中使用它

something: {{my_list}}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到如何做到这一点(伪代码):

list_to_append: 
  - 3
  - 4
Run Code Online (Sandbox Code Playgroud)

然后在剧本中:

something:
  - 1
  - 2
  - {{append: list_to_append}}
Run Code Online (Sandbox Code Playgroud)

如果这实际上是不可能的,你会对我的用例有什么建议?

我有一个参数中的项目列表,但其中一些是optional并且应该可以使用变量进行修改.

换句话说:我有default values+ optional values可以或不可以通过变量添加.

optional values事先不知道,我可以添加1,2或其中的100个,所以它们不是静态的.

我基本上有一个默认静态列表++一个可附加的可配置变量列表.

编辑:我发现了这个,但它只适用于with_items,我需要在普通参数中:

  with_flattened:
   - "{{list1}}"
   - "{{list2}}"
Run Code Online (Sandbox Code Playgroud)

udo*_*dan 39

如果您确实要附加到内容,则需要使用该set_fact模块.但是,如果您只想使用合并列表,它就像这样简单:

{{ list1 + list2 }}
Run Code Online (Sandbox Code Playgroud)

有了set_fact它看起来是这样的:

- set_fact:
    list_merged: "{{ list1 + list2 }}"
Run Code Online (Sandbox Code Playgroud)

注意:如果您需要对连接列表执行其他操作,请确保将它们分组,如下所示:

- set_fact:
    list_merged: "{{ (list1 + list2) | ... }}"
Run Code Online (Sandbox Code Playgroud)

  • @JonathanHartley试试这个:"{{aws_rules + extra}}"` (2认同)