Merge remote-tracking branch 'origin/ansible'
This commit is contained in:
commit
facf7f2926
35 changed files with 330 additions and 2 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -1 +1 @@
|
|||
dotfiles/.ssh/config filter=git-crypt diff=git-crypt
|
||||
roles/ssh/files/config filter=git-crypt diff=git-crypt
|
||||
|
|
0
.gitmodules
vendored
0
.gitmodules
vendored
22
dotfiles.yml
Normal file
22
dotfiles.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
- name: Set up development machine
|
||||
hosts: localhost
|
||||
vars_prompt:
|
||||
- name: git_user
|
||||
private: no
|
||||
default: Fernando Schauenburg
|
||||
- name: git_email
|
||||
private: no
|
||||
default: fernando@schauenburg.me
|
||||
roles:
|
||||
- packages
|
||||
- bin
|
||||
- bash
|
||||
- dircolors
|
||||
- git
|
||||
- hushlogin
|
||||
- mintty
|
||||
- python
|
||||
- readline
|
||||
- ssh
|
||||
- tmux
|
||||
- vim
|
5
hosts
Normal file
5
hosts
Normal file
|
@ -0,0 +1,5 @@
|
|||
[local]
|
||||
localhost
|
||||
|
||||
[local:vars]
|
||||
ansible_connection=local
|
BIN
roles/bash/tasks/.main.yml.swp
Normal file
BIN
roles/bash/tasks/.main.yml.swp
Normal file
Binary file not shown.
33
roles/bash/tasks/main.yml
Normal file
33
roles/bash/tasks/main.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
- name: Remove pre-installed bash configurations which could cause conflicts
|
||||
file:
|
||||
state: absent
|
||||
path: "~/.{{ item }}"
|
||||
loop:
|
||||
- bash_logout
|
||||
- profile
|
||||
|
||||
- name: Create the bash cache and config directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
loop:
|
||||
- "~/.cache/bash"
|
||||
- "~/.config/bash"
|
||||
- "~/.config/bash/completion.d"
|
||||
|
||||
- name: Deploy bash profile
|
||||
file:
|
||||
src: "{{ role_path }}/files/profile"
|
||||
dest: ~/.config/bash/profile
|
||||
state: link
|
||||
force: yes
|
||||
|
||||
- name: Make sure bash will find our profile
|
||||
file:
|
||||
src: ~/.config/bash/profile
|
||||
dest: "~/.{{ item }}"
|
||||
state: link
|
||||
force: yes
|
||||
loop:
|
||||
- bashrc
|
||||
- bash_profile
|
14
roles/bin/tasks/main.yml
Normal file
14
roles/bin/tasks/main.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
- name: Create local bin directory
|
||||
file:
|
||||
path: ~/.local/bin
|
||||
state: directory
|
||||
|
||||
- name: Deploy local commands
|
||||
file:
|
||||
src: "{{ item }}"
|
||||
dest: "~/.local/bin/{{ item | basename }}"
|
||||
state: link
|
||||
force: yes
|
||||
with_fileglob:
|
||||
- ./*
|
||||
|
0
dotfiles/.config/dircolors/solarized-dark → roles/dircolors/files/solarized-dark
Executable file → Normal file
0
dotfiles/.config/dircolors/solarized-dark → roles/dircolors/files/solarized-dark
Executable file → Normal file
0
dotfiles/.config/dircolors/solarized-light → roles/dircolors/files/solarized-light
Executable file → Normal file
0
dotfiles/.config/dircolors/solarized-light → roles/dircolors/files/solarized-light
Executable file → Normal file
15
roles/dircolors/tasks/main.yml
Normal file
15
roles/dircolors/tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
- name: Create the dircolors config directory
|
||||
file:
|
||||
path: ~/.config/dircolors
|
||||
state: directory
|
||||
|
||||
- name: Deploy dircolors
|
||||
file:
|
||||
src: "{{ role_path }}/files/solarized-{{ item }}"
|
||||
dest: "~/.config/dircolors/solarized-{{ item }}"
|
||||
state: link
|
||||
force: yes
|
||||
loop:
|
||||
- dark
|
||||
- light
|
||||
|
|
@ -80,4 +80,5 @@
|
|||
required = true
|
||||
|
||||
[include]
|
||||
path = ~/.config/git/config.local
|
||||
path = ~/.config/git/config.host # host-specific (from template)
|
||||
path = ~/.config/git/config.local # optional manual configurations
|
45
roles/git/tasks/main.yml
Normal file
45
roles/git/tasks/main.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
- name: Install git (Debian)
|
||||
when: ansible_os_family == "Debian"
|
||||
become: yes
|
||||
apt: name={{ item }} state=latest update_cache=yes
|
||||
loop: [git, git-crypt]
|
||||
|
||||
- name: Install git (macOS)
|
||||
when: ansible_os_family == "Darwin"
|
||||
homebrew: name={{ item }} state=latest
|
||||
loop: [git, git-crypt]
|
||||
|
||||
- name: Create the git config directory
|
||||
file:
|
||||
path: ~/.config/git
|
||||
state: directory
|
||||
|
||||
- name: Deploy git config
|
||||
file:
|
||||
src: "{{ role_path }}/files/{{ item }}"
|
||||
dest: "~/.config/git/{{ item }}"
|
||||
state: link
|
||||
force: yes
|
||||
loop:
|
||||
- config
|
||||
- ignore
|
||||
|
||||
- name: Deploy git host-specific config
|
||||
template:
|
||||
src: config.host.j2
|
||||
dest: ~/.config/git/config.host
|
||||
|
||||
- name: Create bin directory for additional git commands
|
||||
file:
|
||||
path: ~/.local/bin
|
||||
state: directory
|
||||
|
||||
- name: Deploy additional git commands
|
||||
file:
|
||||
src: "{{ item }}"
|
||||
dest: "~/.local/bin/{{ item | basename }}"
|
||||
state: link
|
||||
force: yes
|
||||
with_fileglob:
|
||||
- ./bin/*
|
||||
|
9
roles/git/templates/config.host.j2
Normal file
9
roles/git/templates/config.host.j2
Normal file
|
@ -0,0 +1,9 @@
|
|||
[user]
|
||||
name = {{ git_user }}
|
||||
email = {{ git_email }}
|
||||
|
||||
{% if ansible_os_family == 'Darwin' %}
|
||||
[credential]
|
||||
helper = osxkeychain
|
||||
{% endif %}
|
||||
|
10
roles/hushlogin/tasks/main.yml
Normal file
10
roles/hushlogin/tasks/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
- name: Check if hushlogin exists
|
||||
register: hushlogin_stat
|
||||
stat:
|
||||
path: ~/.hushlogin
|
||||
|
||||
- name: Create hushlogin
|
||||
when: hushlogin_stat.stat.exists == false
|
||||
file:
|
||||
state: touch
|
||||
path: ~/.hushlogin
|
12
roles/mintty/tasks/main.yml
Normal file
12
roles/mintty/tasks/main.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
- name: Create the mintty config directory
|
||||
file:
|
||||
path: ~/.config/mintty
|
||||
state: directory
|
||||
|
||||
- name: Deploy mintty config
|
||||
file:
|
||||
src: "{{ role_path }}/files/config"
|
||||
dest: ~/.config/mintty/config
|
||||
state: link
|
||||
force: yes
|
||||
|
61
roles/packages/tasks/main.yml
Normal file
61
roles/packages/tasks/main.yml
Normal file
|
@ -0,0 +1,61 @@
|
|||
- name: Set up Debian machine
|
||||
when: ansible_os_family == "Debian"
|
||||
become: yes
|
||||
block:
|
||||
- name: Install apt packages
|
||||
apt: name={{ item }} state=latest update_cache=yes
|
||||
loop:
|
||||
- curl
|
||||
- exuberant-ctags
|
||||
- gpg
|
||||
- htop
|
||||
- psmisc
|
||||
- shellcheck
|
||||
- sqlite
|
||||
- stow
|
||||
- tree
|
||||
|
||||
|
||||
|
||||
|
||||
- name: Set up macOS machine
|
||||
when: ansible_os_family == "Darwin"
|
||||
block:
|
||||
- name: Install homebrew packages
|
||||
homebrew: name={{ item }} state=latest
|
||||
loop:
|
||||
- coreutils
|
||||
- ctags
|
||||
- curl
|
||||
- exiftool
|
||||
- findutils
|
||||
- gnu-sed
|
||||
- gpg
|
||||
- htop
|
||||
- imagemagic
|
||||
- jupyter
|
||||
- pstree
|
||||
- reattach-to-user-namespace
|
||||
- shellcheck
|
||||
- sqlite
|
||||
- stow
|
||||
- tree
|
||||
- youtube-dl
|
||||
|
||||
- name: Tap into homebrew/cask-fonts
|
||||
homebrew_tap: tap=homebrew/cask-fonts state=present
|
||||
|
||||
- name: Install Mac apps with homebrew cask
|
||||
homebrew_cask: name={{item}} state=present
|
||||
loop:
|
||||
- 1password
|
||||
- cyberduck
|
||||
- dropbox
|
||||
- firefox
|
||||
- font-source-code-pro
|
||||
- google-chrome
|
||||
- iterm2
|
||||
- transmission
|
||||
- vagrant
|
||||
- virtualbox
|
||||
|
25
roles/python/tasks/main.yml
Normal file
25
roles/python/tasks/main.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
- name: Install python3 (Debian)
|
||||
when: ansible_os_family == "Debian"
|
||||
become: yes
|
||||
apt: name={{ item }} state=latest update_cache=yes
|
||||
loop: [python3, python3-pip]
|
||||
|
||||
- name: Install python3 (macOS)
|
||||
when: ansible_os_family == "Darwin"
|
||||
homebrew: name=python3 state=latest
|
||||
|
||||
- name: Create the python config and cache directories
|
||||
file:
|
||||
path: "~/.{{ item }}/python"
|
||||
state: directory
|
||||
loop:
|
||||
- cache
|
||||
- config
|
||||
|
||||
- name: Deploy python startup file
|
||||
file:
|
||||
src: "{{ role_path }}/files/startup.py"
|
||||
dest: ~/.config/python/startup.py
|
||||
state: link
|
||||
force: yes
|
||||
|
12
roles/readline/tasks/main.yml
Normal file
12
roles/readline/tasks/main.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
- name: Create the readline config directory
|
||||
file:
|
||||
path: ~/.config/readline
|
||||
state: directory
|
||||
|
||||
- name: Deploy inputrc
|
||||
file:
|
||||
src: "{{ role_path }}/files/inputrc"
|
||||
dest: ~/.config/readline/inputrc
|
||||
state: link
|
||||
force: yes
|
||||
|
12
roles/ssh/tasks/main.yml
Normal file
12
roles/ssh/tasks/main.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
- name: Create the SSH directory
|
||||
file:
|
||||
path: ~/.ssh
|
||||
state: directory
|
||||
|
||||
- name: Deploy SSH config
|
||||
file:
|
||||
src: "{{ role_path }}/files/config"
|
||||
dest: ~/.ssh/config
|
||||
state: link
|
||||
force: yes
|
||||
|
21
roles/tmux/tasks/main.yml
Normal file
21
roles/tmux/tasks/main.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
- name: Install tmux (Debian)
|
||||
when: ansible_os_family == "Debian"
|
||||
become: yes
|
||||
apt: name=tmux state=latest update_cache=yes
|
||||
|
||||
- name: Install tmux (macOS)
|
||||
when: ansible_os_family == "Darwin"
|
||||
homebrew: name=tmux state=latest
|
||||
|
||||
- name: Create the tmux config directory
|
||||
file:
|
||||
path: ~/.config/tmux
|
||||
state: directory
|
||||
|
||||
- name: Deploy tmux config
|
||||
file:
|
||||
src: "{{ role_path }}/files/tmux.conf"
|
||||
dest: ~/.config/tmux/tmux.conf
|
||||
state: link
|
||||
force: yes
|
||||
|
31
roles/vim/tasks/main.yml
Normal file
31
roles/vim/tasks/main.yml
Normal file
|
@ -0,0 +1,31 @@
|
|||
- name: Install vim (Debian)
|
||||
when: ansible_os_family == "Debian"
|
||||
become: yes
|
||||
apt: name=vim state=latest update_cache=yes
|
||||
|
||||
- name: Install vim (macOS)
|
||||
when: ansible_os_family == "Darwin"
|
||||
homebrew: name=vim state=latest
|
||||
|
||||
- name: Create the vim cache and config directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
loop:
|
||||
- "~/.cache/vim"
|
||||
- "~/.config/vim"
|
||||
- "~/.config/vim/autoload"
|
||||
|
||||
- name: Deploy vim plug and vimrc
|
||||
file:
|
||||
src: "{{ role_path }}/files/{{ item }}"
|
||||
dest: "~/.config/vim/{{ item }}"
|
||||
state: link
|
||||
force: yes
|
||||
loop:
|
||||
- autoload/plug.vim
|
||||
- vimrc
|
||||
|
||||
- name: Install configured vim plugins
|
||||
shell: vim -u "~/.config/vim/vimrc" +PlugInstall +qall
|
||||
|
Loading…
Add table
Reference in a new issue