使用with_list和多个变量的Ansible循环值

时间:2018-11-28 12:12:10

标签: ansible

我正在尝试使用与变量列表相同的代码创建使用不同变量的用户列表。

我定义的变量如下:

org1:
  - { name: 'Sales',         id: "{{ 'john,mike'.split(',') }}"}

org2:
  - { name: 'Testing',       id: "{{ 'samy,jazz'.split(',') }}"}
  - { name: 'dept303',       id: "{{ 'doug'.split(',') }}"}

我编写的代码如下。当我使用单个变量时,此代码有效。

- name: Create users entry
  lineinfile:
    dest: "/etc/vsftpd_users/user_list"
    line: "{{ item.1 | lower }}"
  with_list: "{{ lookup('subelements', org1, 'id', skip_missing=True) }}"

,但尝试用作列表时不起作用。它将使用所有转换后的值创建一条长长的垃圾线。

with_list:
- "{{ lookup('subelements', org1, 'id', skip_missing=True) }}"
- "{{ lookup('subelements', org2, 'id', skip_missing=True) }}"

还有其他方法吗?或者我在这里想念什么。请帮我在这里。谢谢。

  

我的Ansible版本:ansible 2.2.1.0

1 个答案:

答案 0 :(得分:2)

您正在制作列表列表。如果你刚刚

with_lists:
- "{{ lookup('subelements', org1, 'id', skip_missing=True) }}"

您仍然会遇到同样的问题。

您想要做的是将它们连接在一起

with_lists: "{{ lookup('subelements', org1, 'id', skip_missing=True) + 
                lookup('subelements', org2, 'id', skip_missing=True) }}"

希望这会有所帮助。