2016-12-09 6 views
0

key는 이름이고 값은 정수 값입니다. 내 외부 루프 dict 반복하고 내부 루프 값 반복 횟수 반복해야합니다. 외부 루프를 dict로, 내부 루프를 dict 값의 값으로 사용할 수있는 중첩 루프

- hosts: localhost 
    tasks: 
    - debug: msg="region {{ item.key }} value {{ item.value }}" 
    with_subelements: 
     - "{{ objs }}" 
     - "{{ item.value }}" 
    vars: 
    objs: 
     amrs: 3 
     apac: 1 
     emea: 2 

그래서 출력은

region amrs value 1 
region amrs value 2 
region amrs value 3 
region apac value 1 
region emea value 1 
region emea value 2 

내가 ansible를 통해 달성 될 수있다 위의 경우를 알고 싶습니다해야한다. 또한 with_nested을 시도했다하지만 당신은 시퀀스를 생성하는 도우미 작업과이 작업을 수행 할 수 있습니다

답변

0

작동하지 않았다 : 자세한 내용은 제발에

--- 
- hosts: localhost 
    gather_facts: yes 
    vars: 
    objs: 
     amrs: 3 
     apac: 1 
     emea: 2 
    tasks: 
    - set_fact: 
     tmp_list: "{{ tmp_list | default([]) + [dict(name=item.key,seq=lookup('sequence','count='+item.value|string,wantlist=true))] }}" 
     with_dict: "{{ objs }}" 
    - debug: msg="region {{ item.0.name }} value {{ item.1 }}" 
     with_subelements: 
     - "{{ tmp_list }}" 
     - seq 
+0

것은 당신이 tmp_list 라인을 설명 할 수있다. –

+0

원래의'objs' dict를 반복하고'name'이 원래 dict의 키로 설정된 dict 요소를 추가하고'seq' - 생성 된 순서 (list)를 1부터 원래의 dict 값까지 추가하여 빈 목록에서 시작하여'tmp_list'를 확장합니다 . –

+0

환상적인 당신은 챔피언입니다! –