From c59bb754e3c01a7ca4d42a25b4ed6f84070188b4 Mon Sep 17 00:00:00 2001 From: Moritz 'e1mo' Fromm Date: Thu, 31 Dec 2020 10:50:01 +0100 Subject: [PATCH] Add support for custom user groups --- defaults/main.yml | 2 ++ tasks/user.yml | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index a06a427..89976c3 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,6 @@ --- +user_groups: [] + users: - { name: 'user', state: 'present', public_key: '' } - { name: 'nouser', state: 'absent', public_key: '' } diff --git a/tasks/user.yml b/tasks/user.yml index 7eee81d..07b45cf 100644 --- a/tasks/user.yml +++ b/tasks/user.yml @@ -7,6 +7,12 @@ with_items: - "{{ users }}" +- name: Ensure all groups are present or absent + group: + name: '{{ item.name | default(item) }}' + state: '{{ item.state | default("present") }}' + with_items: '{{ user_groups }}' + - name: get bash's path command: which bash register: bash_path @@ -14,10 +20,15 @@ changed_when: false - name: create user - user: state=present - name="{{ item.username if item.username is defined else item.name }}" - groups="{{ "sudo,adm" if item.sudo is defined and item.sudo }}" append=yes - shell={{ item.shell | default(bash_path.stdout) }} + user: + state: present + name: "{{ item.username if item.username is defined else item.name }}" + groups: + - "{{ item.groups | default([]) | join(',')}}" + - "{{ 'sudo,adm' if item.sudo is defined and item.sudo }}" + append: true + shell: '{{ item.shell | default(bash_path.stdout) }}' + home: "{{ item.home | default('/home/' + (item.username | default(item.name))) }}" with_items: - "{{ users }}" when: item.state != 'absent'