2017-12-18 37 views
2

AnsiblePlotbook에있는 객체 배열을 다른 객체 배열에 매핑하는 방법이 있습니까? 의 우리가 소스 배열의 존재가 있다고 가정 해 봅시다 :Ansible - 다른 객체 배열에 객체 배열 매핑

arr: 
    - value: a 
    - value: b 
    - value: c 

그리고 우리가 원하는 것은 첫 번째 배열에있는 개체를 기반으로 다른 배열을 얻을 수 있습니다를,의 말을하자

arr2: 
    - const: 1 
    var: a 
    - const: 1 
    var: b 
    - const: 1 
    var: c 

이는에 의해 행할 것 요소 템플릿 :

배열의 모든 요소에 이러한 템플릿을 적용 할 수있는 방법이 있습니까? map 필터를 찾지 못했습니다. lookup('template', ...)map 안에 사용할 수 없습니다.

+0

확인하시기 바랍니다 https://stackoverflow.com/questions/42152192/ansible-how-to-apply-defaults-to-each-complex-arguments-of-a-list : 이것은 내가 그것을 어떻게입니다/42152622 # 42152622 –

답변

0

콘스탄틴 수보 로프 (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 }}