--- - name: Create groups group: name: "{{ item }}" state: present loop: "{{ init_groups }}" - name: Ensure Users are Configured Correctly user: name: "{{ item.value.name }}" group: "{{ item.value.group }}" groups: "{{ item.value.groups }}" state: "{{ item.value.state }}" create_home: "{{ item.value.create_home }}" shell: "{{ item.value.shell }}" loop: "{{ init_users | dict2items }}" - name: Create or ensure presence of custom home directories file: path: /home/opal/{{ item }} state: directory mode: '0755' owner: opal group: opal loop: "{{ create_directories }}" - name: Remove default home directories if present file: path: /home/opal/{{ item }} state: absent loop: "{{ remove_directories }}" # SSH Initial Setup - name: Create/Ensure ~/.ssh directories file: path: "/home/{{ item.value.name }}/.ssh" state: directory mode: 0700 owner: "{{ item.value.name }}" group: "{{ item.value.group }}" loop: "{{ init_users | dict2items }}" - name: Install galaxy collections community.general.ansible_galaxy_install: type: collection name: "{{ item }}" loop: "{{ ansible_galaxy_collections }}" - name: Add NFS share mountpoint to fstab lineinfile: dest: /etc/fstab line: "cleric.opal.sh:/data/media /home/opal/share nfs sec=sys 0 0" - name: Add /etc/NetworkManager/NetworkManager.conf template template: src: NetworkManager.conf.j2 dest: /etc/NetworkManager/NetworkManager.conf owner: root group: root notify: 'Restart NetworkManager' - name: Install resolveconf package: name: resolvconf state: present - name: Ensure resolveconf is started/enabled systemd: name: resolvconf state: started enabled: True - name: Add /etc/resolvconf template template: src: resolv.conf.j2 dest: /etc/resolvconf/resolv.conf.d/base owner: root group: root notify: 'Restart resolvconf'