commit c6929ae9f67280fb508018d3366dbf0bcffda4dc Author: nd Date: Tue Apr 9 18:24:40 2019 +0200 Initial commit diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..fa9e4fa --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,3 @@ +accounts: + users: {} + groups: {} diff --git a/tasks/groups.yml b/tasks/groups.yml new file mode 100644 index 0000000..2d6b5ea --- /dev/null +++ b/tasks/groups.yml @@ -0,0 +1,15 @@ +- set_fact: + defaultgroup: + system: true + state: present + gid: "{{ omit }}" + +- set_fact: + group: "{{ defaultgroup|combine(item.value|d({}), {'name': item.key} ) }}" + +- name: create groupss + group: + name: "{{ group.name }}" + system: "{{ group.system }}" + state: "{{ group.state }}" + gid: "{{ group.gid|d(omit) }}" diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..69ed7fc --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,9 @@ +- name: handle groups + with_dict: "{{ accounts.groups }}" + include_tasks: + file: groups.yml + +- name: handle users + with_dict: "{{ accounts.users }}" + include_tasks: + file: users.yml diff --git a/tasks/users.yml b/tasks/users.yml new file mode 100644 index 0000000..b3cdfe0 --- /dev/null +++ b/tasks/users.yml @@ -0,0 +1,24 @@ +- set_fact: + defaultuser: + genssh: false + group: ~ + groups: [] + home: "{{ ('/var/lib/'+item.key) if (item.value.system|d(True)) else ('/home/'+item.key) }}" + system: true + state: present + uid: "{{ omit }}" + +- set_fact: + user: "{{ defaultuser|combine(item.value|d({}), {'name': item.key} ) }}" + +- name: create users + user: + name: "{{ user.name }}" + generate_ssh_key: "{{ user.genssh }}" + ssh_key_type: ed25519 + group: "{{ user.group }}" + groups: "{{ user.groups }}" + home: "{{ (user.home) }}" + system: "{{ user.system }}" + state: "{{ user.state }}" + uid: "{{ user.uid|d(omit) }}"