--- - name: Install tmux package: name: "{{ item }}" state: present loop: - "tmux" - "git" - name: Get all users from /etc/passwd ansible.builtin.getent: database: passwd register: all_users - name: Create a list of home directories for bash, zsh and fish users set_fact: user_home_dirs: >- {{ all_users.ansible_facts.getent_passwd.values() | selectattr(5, 'in', ['/bin/bash', '/bin/zsh', '/usr/bin/bash', '/usr/bin/fish']) | rejectattr(0, 'eq', 'root') | selectattr(4, 'defined') | rejectattr(4, 'eq', '') | rejectattr(4, 'eq', '/') | map(attribute=4) | list }} - name: Display the list of collected home directories ansible.builtin.debug: var: user_home_dirs - name: Tmux config block block: - name: Tmux config Play include_tasks: tmux_config.yml loop: "{{ user_home_dirs }}" # ======================================================================== # EXAMPLE: Here is how you can reuse the 'user_home_dirs' list # This example task iterates through the list of home directories # and creates a file named 'test.txt' in each directory. # ======================================================================== # - name: Example - Create a file in each home directory # ansible.builtin.file: # path: "{{ item }}/test.txt" # state: touch # mode: '0644' # loop: "{{ user_home_dirs }}"