36 lines
1 KiB
YAML
36 lines
1 KiB
YAML
- set_fact:
|
|
defaultuser:
|
|
genssh: false
|
|
group: ~
|
|
groups: []
|
|
home: "{{ ('/var/lib/'+currentuser.key) if (currentuser.value.system|d(True)) else ('/home/'+currentuser.key) }}"
|
|
system: true
|
|
state: present
|
|
uid: "{{ omit }}"
|
|
password: "*"
|
|
shell: "/usr/sbin/nologin"
|
|
authorized_keys: {}
|
|
|
|
- set_fact:
|
|
user: "{{ defaultuser|combine(currentuser.value|d({}), {'name': currentuser.key} ) }}"
|
|
|
|
- name: "create user ({{ user.name }})"
|
|
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) }}"
|
|
password: "{{ user.password }}"
|
|
shell: "{{ user.shell }}"
|
|
|
|
- name: "setup ssh key(s) ({{ user.name }})"
|
|
loop: "{{ user.authorized_keys|dict2items }}"
|
|
authorized_key:
|
|
user: "{{ user.name }}"
|
|
key: "{{ item.value }}"
|
|
comment: "{{ item.key }}"
|