75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
---
|
|
- name: install dependencies
|
|
package:
|
|
name: '{{ item }}'
|
|
state: present
|
|
with_items:
|
|
- git
|
|
- zsh
|
|
|
|
- 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: yes
|
|
become_user: '{{ item.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: '~{{ item.username }}'
|
|
creates: '~{{ item.username }}/.oh-my-zsh'
|
|
with_items: '{{ users }}'
|
|
|
|
- name: retrieve powerlevel9k theme from repo
|
|
become: yes
|
|
become_user: '{{ item.username }}'
|
|
git:
|
|
repo: 'https://github.com/bhilburn/powerlevel9k.git'
|
|
dest: '~{{ item.username }}/.oh-my-zsh/custom/themes/powerlevel9k'
|
|
with_items: '{{ users }}'
|
|
|
|
- name: retrieve powerline fonts
|
|
become: yes
|
|
become: '{{ item.username }}'
|
|
git:
|
|
repo: 'https://github.com/ryanoasis/nerd-fonts.git'
|
|
dest: '~{{ item.username }}/.fonts'
|
|
with_items: '{{ users }}'
|
|
register: powerlinefonts
|
|
|
|
- name: install powerline fonts
|
|
become: yes
|
|
become: '{{ item.username }}'
|
|
command: '~{{ item.username }}/.fonts/install.sh'
|
|
with_items: '{{ users }}'
|
|
when: powerlinefonts.changed
|
|
|
|
- name: set permissions of oh-my-zsh for users
|
|
become: yes
|
|
file:
|
|
path: '~{{ item.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: yes
|
|
with_items: '{{ users }}'
|
|
|
|
- name: set default shell for users
|
|
become: yes
|
|
user:
|
|
name: '{{ item.username }}'
|
|
shell: /bin/zsh
|
|
with_items: '{{ users }}'
|
|
|
|
- name: write .zshrc for users
|
|
become: yes
|
|
become_user: '{{ item.username }}'
|
|
template:
|
|
src: zshrc.j2
|
|
dest: '~{{ item.username }}/.zshrc'
|
|
backup: yes
|
|
mode: 'u=rw,go=r'
|
|
with_items: '{{ users }}'
|