2017-07-21 65 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