Ansible - 将对象数组映射到不同的对象数组

有没有办法将Ansible Playbook中的对象数组映射到不同的对象数组?比方说,我们有一个源阵列之中:Ansible - 将对象数组映射到不同的对象数组

arr: 

- value: a

- value: b

- value: c

而我们想要的是让基于第一阵列中的对象不同的数组,让我们说:

arr2: 

- const: 1

var: a

- const: 1

var: b

- const: 1

var: c

这将是可行的利用元素模板:

const: 1 

var: {{ value }}

有没有办法将这样的模板应用到数组中的每个元素?我还没有找到合适的map过滤器,因为lookup('template', ...)不能在map内部使用。

回答:

正如Konstantin Suvorov在评论中提到的那样,它可以使用递归数组构建完成。这是我做的:

#role test 

---

- hosts: localhost

gather_facts: no

vars:

arr:

- value: a

- value: b

- value: c

tasks:

- set_fact:

arr2: "{{ (arr2 | default([])) + [ lookup('template', 'template.yaml.j2') | from_yaml ] }}"

with_items: "{{ arr }}"

- debug:

msg: "{{ arr2 }}"

#template.yaml.j2

const: 1

var: {{ item.value }}

以上是 Ansible - 将对象数组映射到不同的对象数组 的全部内容, 来源链接: utcz.com/qa/262307.html

回到顶部