2017-07-21 63 views
0

假設我有三種以下格式的列表。Ansible複雜嵌套循環示例

['A', 'B'] 
    ['1', '2'] 
    ['a','b','c','d'] 

我需要得到以下的輸出:

A1a 
A2a 
A1b 
A2b 
B1c 
B2c 
B1d 
B2d 

注意它不是一個簡單的對一個嵌套因爲這將是16個輸出線。在這個例子中,我只想要8.在輸出中,我不能在第三列中有任何重複的第二列。 「A1a和B1a」會是一個糟糕的組合。

我已經嘗試了with_nested和with_flattened的許多組合,並且似乎無法獲得我需要的位置。

我的下一個方法是與他們所有人一起創建一個字典,並看看關於以某種方式進行迭代。

有什麼想法?

回答

0

解決你的問題是with_cartesian

下面是示例代碼:

- debug: 
    msg: "{{item | join()}}" 
    with_cartesian: 
    - ['A', 'B'] 
    - ['1', '2'] 
    - ['a','b','c','d'] 

希望幫助你。

+0

感謝您的時間,但這不起作用。這將輸出16,與with_nested輸出類似。它違反了這個規則:「我不能在第二列中有任何重複的列。」A1a和B1a「會是一個不好的組合」。 – broncofan7