2016-12-09 5 views
0

私はkeyが名前で値が整数値であるということができます。私は外側のループがdictを反復し、内側のループが値の回数繰り返すようにしたい。dictとしてouterloopを持ち、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 

ので出力は、私は上記のansibleを介して達成することができるかどうかを知りたい

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

でなければなりません。私はまた、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)を元のdictの値。 –

+0

ファンタスティックなあなたはチャンピオンメイトです! –

関連する問題