split into roles

This commit is contained in:
Pim Kunis 2022-12-02 20:10:38 +01:00
parent 4d072894ec
commit 74b67b7e27
17 changed files with 186 additions and 110 deletions

View file

@ -1,4 +1,4 @@
run: %:
ansible-playbook playbooks/setup.yml -i inventory/hosts.yml -K ansible-playbook playbooks/$@.yml -i inventory/hosts.yml -K
.PHONY: run .PHONY: run

View file

@ -12,4 +12,4 @@
- Telegram (maybe only possible to download) - Telegram (maybe only possible to download)
- Oh my zsh? - Oh my zsh?
- Cool neovim setup - Cool neovim setup
- wireshark - syncthing

4
playbooks/asdf.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install asdf
hosts: self
roles:
- asdf

4
playbooks/neovim.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install neovim
hosts: self
roles:
- neovim

4
playbooks/signal.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install Signal
hosts: self
roles:
- signal

4
playbooks/virtualbox.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install VirtualBox
hosts: self
roles:
- virtualbox

4
playbooks/vscodium.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install VSCodium
hosts: self
roles:
- vscodium

4
playbooks/zsh.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install zsh
hosts: self
roles:
- zsh

43
roles/asdf/tasks/main.yml Normal file
View file

@ -0,0 +1,43 @@
- name: Install asdf
git:
repo: https://github.com/asdf-vm/asdf.git
dest: ~/.asdf
- name: Install Erlang prerequisite APT packages
become: true
apt:
state: present
update_cache: true
cache_valid_time: 86400 # One day
pkg:
- build-essential
- autoconf
- m4
- libncurses5-dev
- libwxgtk3.0-gtk3-dev
- libwxgtk-webview3.0-gtk3-dev
- libgl1-mesa-dev
- libglu1-mesa-dev
- libpng-dev
- libssh-dev
- unixodbc-dev
- xsltproc
- fop
- libxml2-utils
- libncurses-dev
- openjdk-11-jdk
- name: Install asdf Erlang plugin
shell: asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
args:
creates: ~/.asdf/plugins/erlang
- name: Install Elixir prerequisite APT packages
become: true
apt:
state: present
update_cache: true
cache_valid_time: 86400 # One day
pkg:
- unzip
- name: Install asdf Elixir plugin
shell: asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
args:
creates: ~/.asdf/plugins/elixir

View file

@ -0,0 +1,38 @@
- name: Install prerequisite APT packages
# https://github.com/neovim/neovim/wiki/Building-Neovim#build-prerequisites
become: true
apt:
state: latest
update_cache: yes
cache_valid_time: 86400 # One day
pkg:
- ninja-build
- gettext
- libtool
- libtool-bin
- autoconf
- automake
- cmake
- g++
- pkg-config
- unzip
- curl
- doxygen
- name: Pull neovim repository
become: true
git:
repo: https://github.com/neovim/neovim.git
dest: ~/neovim
- name: Build neovim
become: true
make:
chdir: ~/neovim
params:
CMAKE_BUILD_TYPE: RelWithDebInfo
changed_when: false # I lie a bit, but neovim makefile doesn't cooperate
- name: Install neovim
become: true
make:
chdir: ~/neovim
target: install
changed_when: false # Idem

View file

@ -0,0 +1,18 @@
- name: Get Signal APT key
become: true
get_url:
url: https://updates.signal.org/desktop/apt/keys.asc
dest: /etc/apt/trusted.gpg.d/signal.asc
- name: Install Signal APT repository
become: true
apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/signal.asc] https://updates.signal.org/desktop/apt xenial main"
state: present
- name: Install Signal
become: true
apt:
state: latest
update_cache: yes
cache_valid_time: 86400 # One day
pkg:
- signal-desktop

View file

@ -1,33 +1,3 @@
- name: Get Signal APT key
become: true
get_url:
url: https://updates.signal.org/desktop/apt/keys.asc
dest: /etc/apt/trusted.gpg.d/signal.asc
- name: Install Signal APT repository
become: true
apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/signal.asc] https://updates.signal.org/desktop/apt xenial main"
state: present
- name: Get VSCodium APT key
become: true
get_url:
url: https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
dest: /etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc
- name: Install VSCodium APT repository
become: true
apt_repository:
repo: "deb [signed-by=/etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc ] https://download.vscodium.com/debs vscodium main"
state: present
- name: Get VirtualBox APT key
become: true
get_url:
url: https://www.virtualbox.org/download/oracle_vbox_2016.asc
dest: /etc/apt/trusted.gpg.d/oracle_vbox_2016.asc
- name: Install VirtualBox APT repository
become: true
apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/oracle_vbox_2016.asc] https://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib"
state: present
- name: Update repositories - name: Update repositories
become: true become: true
apt: apt:
@ -35,7 +5,7 @@
state: latest state: latest
update_cache: yes update_cache: yes
cache_valid_time: 86400 # One day cache_valid_time: 86400 # One day
- name: Install global packages - name: Install APT packages
become: true become: true
apt: apt:
state: latest state: latest
@ -43,7 +13,6 @@
- git - git
- make - make
- keepassxc - keepassxc
- zsh
- ripgrep - ripgrep
- curl - curl
- unzip - unzip
@ -51,89 +20,14 @@
- libreoffice-impress - libreoffice-impress
- libreoffice-writer - libreoffice-writer
- gimp - gimp
- signal-desktop
- nextcloud-desktop - nextcloud-desktop
- codium
- tree - tree
- virtualbox-6.1
- wireshark - wireshark
# Erlang stuff: https://github.com/asdf-vm/asdf-erlang#before-asdf-install
- build-essential
- autoconf
- m4
- libncurses5-dev
- libwxgtk3.0-gtk3-dev
- libwxgtk-webview3.0-gtk3-dev
- libgl1-mesa-dev
- libglu1-mesa-dev
- libpng-dev
- libssh-dev
- unixodbc-dev
- xsltproc
- fop
- libxml2-utils
- libncurses-dev
- openjdk-11-jdk
# Neovim stuff: https://github.com/neovim/neovim/wiki/Building-Neovim#build-prerequisites
- ninja-build
- gettext
- libtool
- libtool-bin
- automake
- cmake
- g++
- pkg-config
- doxygen
- name: Set default shell to zsh
become: true
user:
name: "{{ ansible_user_id }}"
shell: /usr/bin/zsh
- name: Install .gitconfig - name: Install .gitconfig
template: template:
src: "{{ role_path }}/templates/.gitconfig.j2" src: "{{ role_path }}/templates/.gitconfig.j2"
dest: ~/.gitconfig dest: ~/.gitconfig
- name: Install asdf
git:
repo: https://github.com/asdf-vm/asdf.git
dest: ~/.asdf
- name: Install .zshrc
template:
src: "{{ role_path }}/templates/.zshrc.j2"
dest: ~/.zshrc
- name: Install asdf Erlang plugin
shell: asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
args:
creates: ~/.asdf/plugins/erlang
- name: Install asdf Elixir plugin
shell: asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
args:
creates: ~/.asdf/plugins/elixir
- name: Install Regolith Xresources file - name: Install Regolith Xresources file
template: template:
src: "{{ role_path }}/templates/Xresources.j2" src: "{{ role_path }}/templates/Xresources.j2"
dest: ~/.config/regolith2/Xresources dest: ~/.config/regolith2/Xresources
- name: Check VSCodium extensions
setup:
fact_path: "{{ role_path }}/facts"
- name: Install VSCodium extensions
shell: "codium --install-extension {{ item }}"
loop: "{{ vscodium_extensions | difference(ansible_facts.ansible_local.vscodium_extensions) }}"
- name: Pull neovim repository
become: true
git:
repo: https://github.com/neovim/neovim.git
dest: ~/neovim
- name: Build neovim
become: true
make:
chdir: ~/neovim
params:
CMAKE_BUILD_TYPE: RelWithDebInfo
changed_when: false # I lie a bit, but neovim makefile doesn't cooperate
- name: Install neovim
become: true
make:
chdir: ~/neovim
target: install
changed_when: false # Idem

View file

@ -0,0 +1,18 @@
- name: Get VirtualBox APT key
become: true
get_url:
url: https://www.virtualbox.org/download/oracle_vbox_2016.asc
dest: /etc/apt/trusted.gpg.d/oracle_vbox_2016.asc
- name: Install VirtualBox APT repository
become: true
apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/oracle_vbox_2016.asc] https://download.virtualbox.org/virtualbox/debian {{ ansible_distribution_release }} contrib"
state: present
- name: Install VirtualBox
become: true
apt:
state: latest
update_cache: yes
cache_valid_time: 86400 # One day
pkg:
- virtualbox-6.1

View file

@ -0,0 +1,24 @@
- name: Get VSCodium APT key
become: true
get_url:
url: https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
dest: /etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc
- name: Install VSCodium APT repository
become: true
apt_repository:
repo: "deb [signed-by=/etc/apt/trusted.gpg.d/vscodium-archive-keyring.asc ] https://download.vscodium.com/debs vscodium main"
state: present
- name: Install VSCodium
become: true
apt:
state: latest
update_cache: yes
cache_valid_time: 86400 # One day
pkg:
codium
- name: Check VSCodium extensions
setup:
fact_path: "{{ role_path }}/facts"
- name: Install VSCodium extensions
shell: "codium --install-extension {{ item }}"
loop: "{{ vscodium_extensions | difference(ansible_facts.ansible_local.vscodium_extensions) }}"

17
roles/zsh/tasks/main.yml Normal file
View file

@ -0,0 +1,17 @@
- name: Install zsh
become: true
apt:
state: latest
update_cache: yes
cache_valid_time: 86400 # One day
pkg:
- zsh
- name: Set default shell to zsh
become: true
user:
name: "{{ ansible_user_id }}"
shell: /usr/bin/zsh
- name: Install .zshrc
template:
src: "{{ role_path }}/templates/.zshrc.j2"
dest: ~/.zshrc