blob: 291e134cbf9069deac2376c434e6af724dd4efcf (
plain) (
tree)
|
|
---
- name: retrieve all users
ansible.builtin.getent:
database: passwd
register: unix_users__register_getent
- name: parse all users in uid range
ansible.builtin.set_fact:
unix_users__parsed_getent: "[
{% for name, attributes in
unix_users__register_getent.ansible_facts.getent_passwd.items() %}
{{ { 'name': name, 'uid': (attributes[2] | int) } }},
{% endfor %}
]"
- name: retrieve minimum available uid
ansible.builtin.set_fact:
unix_users__available_uid_min: "{{ unix_users__parsed_getent
| map(attribute='uid')
| select('in', unix_users__enabled_uid_slots)
| max
| default(unix_users__enabled_uid_min)
| int }}"
- name: create user with specific uid
ansible.builtin.user:
name: "{{ item.username }}"
uid: "{{ (unix_users__available_uid_min | int) + (index | int) }}"
loop: "{{ unix_users__users }}"
loop_control:
index_var: index
when: item.username not in (unix_users__parsed_getent | map(attribute='name'))
- name: update user informations
ansible.builtin.user:
name: "{{ item.username }}"
comment: "{{ item.comment | normalize_unicode_to_ansii }}"
loop: "{{ unix_users__users }}"
|