Files
role_users/tasks/installation.yml

52 lines
1.6 KiB
YAML

---
# tasks file for users
- name: Build users list
ansible.builtin.set_fact:
users: "{{ users + specific }}"
when: specific | length > 0
loop: "{{ lookup('ansible.builtin.varnames', '^users.+', wantlist=True) }}"
vars:
specific: "{{ lookup('ansible.builtin.vars', item, default='') }}"
- name: Create groups with the users name
ansible.builtin.group:
name: "{{ item.name }}"
state: "{{ item.state | default('present') }}"
when: user.group | default([]) | length == 0
become: true
loop: "{{ users }}"
loop_control:
label: "{{ item.name }}"
- name: Create other groups
ansible.builtin.group:
name: "{{ item.1 }}"
when: item.state | default('present') == 'present'
become: true
loop: "{{ users | subelements('groups', skip_missing=True) }}"
loop_control:
label: "{{ item.1 }}"
- name: Create users
ansible.builtin.user:
name: "{{ item.name }}"
comment: "{{ item.comment | default(omit) }}"
password: "{{ item.password | default(omit) }}"
password_lock: "{{ item.password_lock | default(omit) }}"
home: "{{ item.home | default(omit) }}"
shell: "{{ item.shell | default(omit) }}"
group: "{{ item.group | default(item.name) }}"
groups: "{{ item.groups | default(omit) }}"
state: "{{ item.state | default('present') }}"
become: true
loop: "{{ users }}"
loop_control:
label: "{{ item.name }}"
- name: Exclude users to delete
ansible.builtin.set_fact:
users: "{{ users | ansible.builtin.difference(users_to_delete) }}"
vars:
users_to_delete: "{{ users | selectattr('state', 'defined') | selectattr('state', 'equalto', 'absent') }}"