--- - name: Customize Zsh for users vars: zsh_users: - user block: - name: Ensure parent home directory exists (safety) ansible.builtin.file: path: "/home/{{ user }}" state: directory owner: "{{ user }}" group: "{{ user }}" mode: "0755" loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Remove any old oh-my-zsh ansible.builtin.file: path: "/home/{{ user }}/.oh-my-zsh" state: absent loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Clone Oh My Zsh as root ansible.builtin.git: repo: "https://github.com/ohmyzsh/ohmyzsh.git" dest: "/home/{{ user }}/.oh-my-zsh" version: master update: yes force: yes loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Add trusted safe.directory system-wide for Oh My Zsh ansible.builtin.command: cmd: git config --system --add safe.directory /home/{{ user }}/.oh-my-zsh loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Install syntax-highlighting plugin ansible.builtin.git: repo: "https://github.com/zsh-users/zsh-syntax-highlighting.git" dest: "/home/{{ user }}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" version: master update: yes force: yes loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Deploy customized .zshrc ansible.builtin.template: src: zshrc.j2 dest: "/home/{{ user }}/.zshrc" owner: "{{ user }}" group: "{{ user }}" mode: "0644" loop: "{{ zsh_users }}" loop_control: loop_var: user become: true - name: Fix ownership recursively for Oh My Zsh directory ansible.builtin.file: path: "/home/{{ user }}/.oh-my-zsh" owner: "{{ user }}" group: "{{ user }}" recurse: yes loop: "{{ zsh_users }}" loop_control: loop_var: user become: true