- name: Create Ansible's temporary remote directory ansible.builtin.file: path: "~/.ansible/tmp" state: directory mode: "700" - name: Create system user groups ansible.builtin.group: name: "{{ item.key }}" gid: "{{ item.value.gid }}" state: present loop: "{{ users | dict2items }}" loop_control: label: "{{ item.key }}" when: users is defined - name: Create system users ansible.builtin.user: name: "{{ item.key }}" state: present uid: "{{ item.value.uid }}" group: "{{ item.value.gid }}" groups: "{{ item.value.groups | default([]) }}" shell: "{{ item.value.shell | default('/bin/bash') }}" create_home: "{{ item.value.home | default(false) }}" home: "{{ item.value.homedir | default('/home/' + item.key) }}" system: "{{ item.value.system | default(false) }}" loop: "{{ users | dict2items }}" loop_control: label: "{{ item.key }}" when: users is defined - name: Include Debian-specific tasks ansible.builtin.include_tasks: debian.yml when: ansible_os_family == "Debian" - name: Include Rocky Linux-specific tasks ansible.builtin.include_tasks: rocky.yml when: ansible_os_family == "RedHat"