2016-01-22 40 views
0

在Ansible,如果我有一個列表變量與下面的混合結構:Ansible變換混合列表結構,結構均勻

input_items: 
    - mainkey: 'main.value.1' 
     subkey: 'subvalue_1.1' 

    - mainkey: 'main.value.2' 
     group: 
      - subkey: 'subvalue_2.1' 
      - subkey: 'subvalue_2.2' 

有沒有辦法把它轉變成這樣一個平面結構:

transformed: 
    - mainkey: 'main.value.1' 
     subkey: 'subvalue_1.1' 

    - mainkey: 'main.value.2' 
     subkey: 'subvalue_2.1' 

    - mainkey: 'main.value.2' 
     subkey: 'subvalue_2.2' 

這個想法是允許一個更緊湊的結構來定義列表,然後將其轉換爲一個簡單的扁平結構,使用with_items即可將其輸入到模塊中。

我已經用盡了每個形狀的循環,包括,set_fact和jinja過濾器我可以召集,但我確定必須有一種方法。

+0

非常不可能在Ansible內解決。你應該看看創建一個自定義過濾器插件。 http://docs.ansible.com/ansible/developing_plugins.html#filter-plugins – udondan

回答