Files

85 lines
2.6 KiB
YAML

---
- name: install dependencies
become: true
become_user: 'root'
# become: "{{ ansible_distribution != 'MacOSX' }}"
package:
name:
- git
- zsh
state: present
with_items: "{{ users }}"
when: "((user.oh_my_zsh | default({})).install | default(oh_my_zsh_install)) | bool"
loop_control:
loop_var: user
label: '{{ user.username }}'
- name: clone oh-my-zsh for users
tags:
# Suppress warning: [ANSIBLE0006] git used in place of git module
# Git module doesn't allow us to set `core.autocrlf=input`.
- skip_ansible_lint
become: true
become_user: '{{ user.username }}'
# core.autocrlf=input prevents https://github.com/robbyrussell/oh-my-zsh/issues/4402
command: 'git clone -c core.autocrlf=input --depth=1 https://github.com/robbyrussell/oh-my-zsh.git .oh-my-zsh'
args:
chdir: '~{{ user.username }}'
creates: '~{{ user.username }}/.oh-my-zsh'
with_items: "{{ users }}"
when: "((user.oh_my_zsh | default({})).install | default(oh_my_zsh_install)) | bool"
loop_control:
loop_var: user
label: '{{ user.username }}'
- name: set permissions of oh-my-zsh for users
become: true
file:
path: '~{{ user.username }}/.oh-my-zsh'
# Prevent the cloned repository from having insecure permissions. Failing to do
# so causes compinit() calls to fail with "command not found: compdef" errors
# for users with insecure umasks (e.g., "002", allowing group writability).
mode: 'go-w'
recurse: true
with_items: "{{ users }}"
when: "((user.oh_my_zsh | default({})).install | default(oh_my_zsh_install)) | bool"
loop_control:
loop_var: user
label: '{{ user.username }}'
- name: set default shell for users
become: true
user:
name: '{{ user.username }}'
shell: /bin/zsh
with_items: "{{ users }}"
when: "((user.oh_my_zsh | default({})).install | default(oh_my_zsh_install)) | bool"
loop_control:
loop_var: user
label: '{{ user.username }}'
- name: write .zshrc for users
become: true
become_user: '{{ user.username }}'
template:
src: zshrc.j2
dest: '~{{ user.username }}/.zshrc'
backup: true
mode: 'u=rw,go=r'
with_items: '{{ users }}'
when: "((user.oh_my_zsh | default({})).install | default(oh_my_zsh_install)) | bool"
loop_control:
loop_var: user
label: '{{ user.username }}'
- name: add custom template theme
template:
src: robbyrussell_zsh_theme.j2
dest: '~{{ user.username }}/.oh-my-zsh/custom/themes/robbyrussell.zsh-theme'
mode: 'u=rw,go=r'
with_items: '{{ users }}'
loop_control:
loop_var: user
label: '{{ user.username }}'