Ansible使用数组

时间:2018-03-15 18:02:26

标签: ansible

我最新的Ansible playbook旨在为我们的redhat系统设置新用户。每个环境都有自己的用户列表,如:

users:
  - loginid: "someuser"
    name: This_guy
    groups: []
    password: "{{ newuser_pass }}"
    ssh_public_key: []

我的问题是groups数组。虽然它在这里是一个空数组,但它可能被定义为

groups:
  - admins
  - dbas
  - managers

我有一个使用Ansible用户模块的任务,我想将用户的组设置为此数组中的第一个值。这是我到目前为止所尝试的内容:

group: "{{ item.groups.[0] if item.groups.[0] exists else 'users' }}"

您可以在此处看到,如果没有定义任何组,则用户会获得"用户"或者一个小组作为他们的默认组。但是如何抓住"管理员"作为用户的默认值?很明显,上面这行没有用。

1 个答案:

答案 0 :(得分:0)

试试这个:

group: "{{ (item.groups | first) if (item.groups | count > 0) else 'users' }}"