WIP
This commit is contained in:
parent
3b509c45d1
commit
d6bb7ae726
11 changed files with 179 additions and 51 deletions
16
Ansible/ansible.cfg
Normal file
16
Ansible/ansible.cfg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[defaults]
|
||||||
|
bin_ansible_callbacks = True
|
||||||
|
callbacks_enabled = ansible.posix.profile_tasks, ansible.posix.timer
|
||||||
|
remote_user = eryn
|
||||||
|
roles_path = roles
|
||||||
|
stdout_callback = community.general.yaml
|
||||||
|
|
||||||
|
[connection]
|
||||||
|
pipelining = true
|
||||||
|
|
||||||
|
[ssh_connection]
|
||||||
|
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
|
||||||
|
|
||||||
|
[vault]
|
||||||
|
username = ansible-infrastructure-vault
|
||||||
|
keyname = default
|
4
Ansible/roles/dotfiles/handlers/main.yml
Normal file
4
Ansible/roles/dotfiles/handlers/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
- name: Rediscover package manager
|
||||||
|
ansible.builtin.setup:
|
||||||
|
gather_subset: pkg_mgr
|
3
Ansible/roles/dotfiles/tasks/darwin/bootstrap.yml
Normal file
3
Ansible/roles/dotfiles/tasks/darwin/bootstrap.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
- name: (macOS) Configure homebrew
|
||||||
|
ansible.builtin.include_tasks: homebrew.yml
|
37
Ansible/roles/dotfiles/tasks/darwin/homebrew.yml
Normal file
37
Ansible/roles/dotfiles/tasks/darwin/homebrew.yml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
---
|
||||||
|
- name: (macOS | homebrew) Does the brew command exist?
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: /opt/homebrew/bin/brew
|
||||||
|
register: _dotfiles_homebrew_brew
|
||||||
|
|
||||||
|
- name: (macOS | homebrew) Install Homebrew
|
||||||
|
when: not _dotfiles_homebrew_brew.stat.exists
|
||||||
|
block:
|
||||||
|
- name: (macOS | homebrew) Create temporary file for install script
|
||||||
|
ansible.builtin.tempfile:
|
||||||
|
state: file
|
||||||
|
prefix: homebrew-install
|
||||||
|
register: _dotfiles_homebrew_install_script
|
||||||
|
|
||||||
|
- name: (macOS | homebrew) Set up homebrew
|
||||||
|
block:
|
||||||
|
- name: (macOS | homebrew) Fetch install script
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
|
||||||
|
dest: "{{ _dotfiles_homebrew_install_script.path }}"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: (macOS | homebrew) Run install script
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: bash {{ _dotfiles_homebrew_install_script.path }}
|
||||||
|
environment:
|
||||||
|
NONINTERACTIVE: 1
|
||||||
|
|
||||||
|
- name: (macOS | homebrew) Gather package manager facts
|
||||||
|
ansible.builtin.setup:
|
||||||
|
gather_subset: pkg_mgr
|
||||||
|
always:
|
||||||
|
- name: (macOS | homebrew) Remove temporary install script
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ _dotfiles_homebrew_install_script.path }}"
|
||||||
|
state: absent
|
28
Ansible/roles/dotfiles/tasks/dotfiles.yml
Normal file
28
Ansible/roles/dotfiles/tasks/dotfiles.yml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
---
|
||||||
|
- name: (dotfiles) ZSH
|
||||||
|
ansible.builtin.include_tasks: zsh.yml
|
||||||
|
tags: [ always, dotfiles_shell, dotfiles_zsh ]
|
||||||
|
|
||||||
|
- name: (dotfiles) Vim
|
||||||
|
ansible.builtin.include_tasks: vim.yml
|
||||||
|
tags: [ always, dotfiles_vim ]
|
||||||
|
|
||||||
|
- name: (dotfiles) Emacs
|
||||||
|
ansible.builtin.include_tasks: emacs.yml
|
||||||
|
tags: dotfiles_emacs
|
||||||
|
|
||||||
|
- name: (dotfiles) Git
|
||||||
|
ansible.builtin.include_tasks: git.yml
|
||||||
|
tags: [ always, dotfiles_git ]
|
||||||
|
|
||||||
|
- name: (dotfiles) Mutt
|
||||||
|
ansible.builtin.include_tasks: mutt.yml
|
||||||
|
tags: dotfiles_mutt
|
||||||
|
|
||||||
|
- name: (dotfiles) Shell utilities
|
||||||
|
ansible.builtin.include_tasks: shell_utilities.yml
|
||||||
|
tags: dotfiles_shell
|
||||||
|
|
||||||
|
- name: (dotfiles) Nethack
|
||||||
|
ansible.builtin.include_tasks: nethack.yml
|
||||||
|
tags: dotfiles_nethack
|
|
@ -1,26 +1,17 @@
|
||||||
---
|
---
|
||||||
- name: ZSH
|
- name: Bootstrap system
|
||||||
ansible.builtin.include_tasks: zsh.yml
|
ansible.builtin.include_tasks: "{{ ansible_facts.os_family | lower }}/bootstrap.yml"
|
||||||
tags: dotfiles_zsh
|
|
||||||
|
|
||||||
- name: Vim
|
#- name: Install packages
|
||||||
ansible.builtin.include_tasks: vim.yml
|
# ansible.builtin.include_tasks: packages.yml
|
||||||
tags: dotfiles_vim
|
|
||||||
|
|
||||||
- name: Emacs
|
- name: Link dotfiles
|
||||||
ansible.builtin.include_tasks: emacs.yml
|
ansible.builtin.include_tasks: dotfiles.yml
|
||||||
tags: dotfiles_emacs
|
tags:
|
||||||
|
- dotfiles_git
|
||||||
- name: Git
|
- dotfiles_mutt
|
||||||
ansible.builtin.include_tasks: git.yml
|
- dotfiles_neovim
|
||||||
tags: dotfiles_git
|
- dotfiles_nethack
|
||||||
|
- dotfiles_shell
|
||||||
- name: Mutt
|
- dotfiles_vim
|
||||||
ansible.builtin.include_tasks: mutt.yml
|
- dotfiles_zsh
|
||||||
tags: dotfiles_mutt
|
|
||||||
|
|
||||||
- name: Shell utilities
|
|
||||||
ansible.builtin.include_tasks: shell_utilities.yml
|
|
||||||
|
|
||||||
- name: Nethack
|
|
||||||
ansible.builtin.include_tasks: nethack.yml
|
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
---
|
---
|
||||||
|
- name: (nethack) Install nethack package
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: nethack
|
||||||
|
state: present
|
||||||
|
when:
|
||||||
|
- dotfiles_install_packages is defined
|
||||||
|
- "'nethack' in dotfiles_install_packages"
|
||||||
|
|
||||||
- name: (nethack) Link nethackrc
|
- name: (nethack) Link nethackrc
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: ~/.nethackrc
|
path: ~/.nethackrc
|
||||||
|
|
13
Ansible/roles/dotfiles/tasks/packages.yml
Normal file
13
Ansible/roles/dotfiles/tasks/packages.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
- name: Install packages
|
||||||
|
become: "{{ _dotfiles_requires_become[ansible_facts.pkg_mgr] | default(true) }}"
|
||||||
|
vars:
|
||||||
|
package_names: _dotfiles_package_names[ansible_facts.pkg_mgr]
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: >
|
||||||
|
{{
|
||||||
|
package_names[package] | default(package)
|
||||||
|
for package
|
||||||
|
in (_dotfiles_core_packages + dotfiles_install_packages)
|
||||||
|
}}
|
||||||
|
state: present
|
|
@ -7,11 +7,13 @@
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: (neovim) Create standard config directory
|
- name: (neovim) Create standard config directory
|
||||||
|
tags: dotfiles_neovim
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: ~/.config
|
path: ~/.config
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: (neovim) Link config
|
- name: (neovim) Link config
|
||||||
|
tags: dotfiles_neovim
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: ~/.config/nvim
|
path: ~/.config/nvim
|
||||||
src: "{{ role_path }}/files/neovim"
|
src: "{{ role_path }}/files/neovim"
|
||||||
|
@ -19,6 +21,7 @@
|
||||||
force: true
|
force: true
|
||||||
|
|
||||||
- name: (neovim) Create .local directories
|
- name: (neovim) Create .local directories
|
||||||
|
tags: dotfiles_neovim
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
|
|
@ -1,31 +1,45 @@
|
||||||
---
|
---
|
||||||
- name: (zsh) Link startup files
|
- name: (zsh) Find zsh binary
|
||||||
ansible.builtin.file:
|
ansible.builtin.command:
|
||||||
path: ~/.{{ item }}
|
cmd: sh -c 'which zsh'
|
||||||
src: "{{ role_path }}/files/zsh/{{ item }}"
|
register: _dotfiles_which_zsh
|
||||||
state: link
|
|
||||||
force: true
|
|
||||||
loop:
|
|
||||||
- zshenv
|
|
||||||
- zshrc
|
|
||||||
- zprofile
|
|
||||||
|
|
||||||
- name: (zsh) Create zsh directories
|
- name: (zsh) Configure zsh
|
||||||
ansible.builtin.file:
|
when: (_dotfiles_which_zsh | length) > 0
|
||||||
path: "{{ item }}"
|
block:
|
||||||
state: directory
|
- name: (zsh) Make zsh my shell
|
||||||
force: true
|
ansible.builtin.user:
|
||||||
loop:
|
name: "{{ ansible_user }}"
|
||||||
- ~/.zsh
|
shell: "{{ _dotfiles_which_zsh.stdout }}"
|
||||||
- ~/.zsh/cache
|
state: present
|
||||||
|
|
||||||
- name: (zsh) Link function library directories
|
- name: (zsh) Link startup files
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: ~/.zsh/{{ item }}
|
path: ~/.{{ item }}
|
||||||
src: "{{ role_path }}/files/zsh/{{ item }}"
|
src: "{{ role_path }}/files/zsh/{{ item }}"
|
||||||
state: link
|
state: link
|
||||||
force: true
|
force: true
|
||||||
loop:
|
loop:
|
||||||
- init-env-functions
|
- zshenv
|
||||||
- init-rc-functions
|
- zshrc
|
||||||
- functions
|
- zprofile
|
||||||
|
|
||||||
|
- name: (zsh) Create zsh directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
force: true
|
||||||
|
loop:
|
||||||
|
- ~/.zsh
|
||||||
|
- ~/.zsh/cache
|
||||||
|
|
||||||
|
- name: (zsh) Link function library directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: ~/.zsh/{{ item }}
|
||||||
|
src: "{{ role_path }}/files/zsh/{{ item }}"
|
||||||
|
state: link
|
||||||
|
force: true
|
||||||
|
loop:
|
||||||
|
- init-env-functions
|
||||||
|
- init-rc-functions
|
||||||
|
- functions
|
||||||
|
|
11
Ansible/roles/dotfiles/vars/main.yml
Normal file
11
Ansible/roles/dotfiles/vars/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
_dotfiles_core_packages:
|
||||||
|
- zsh
|
||||||
|
- git
|
||||||
|
- tmux
|
||||||
|
- neovim
|
||||||
|
|
||||||
|
_dotfiles_package_names:
|
||||||
|
homebrew:
|
||||||
|
|
||||||
|
_dotfiles_requires_become:
|
||||||
|
homebrew: false
|
Loading…
Add table
Add a link
Reference in a new issue