- Add user variable

- Add kubernetes setup
- Adjust neovim compilation
- Add maven to java setup"
main
Nils Gerstner 1 year ago
parent da0716de8f
commit 3a49358b99

@ -1,32 +1,30 @@
- hosts: localhost
vars:
source_key: "./.ssh/id_rsa"
dest_key: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa"
personal: "{{ lookup('env', 'HOME') }}/personal"
- name: Dev setup
hosts: localhost
connection: local
pre_tasks:
- name: Update Apt
become: true
apt:
- apt:
force_apt_get: true
update_cache: true
state: present
update_cache: true
become: true
name: Update Apt
tags:
- install
- neovim
- core
- golang
- dotfiles
- name: Update Apt
become: true
apt:
- apt:
name: [ "sudo", "git" ]
become: true
name: Install sudo and git
tags:
- install
- neovim
- dotfiles
tasks:
# - include: tasks/ssh.yml
# - include: tasks/git-setup.yml
- include: tasks/git-setup.yml
- include: tasks/cli-tools.yml
- include: tasks/core-setup.yml
# - include: tasks/node-setup.yml
@ -47,3 +45,10 @@
- include: tasks/java-setup.yml
- include: tasks/node-setup.yml
- include: tasks/deno-setup.yml
- include: tasks/kubernetes.yml
- include: tasks/task-setup.yml
vars:
dest_key: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa"
personal: "{{ lookup('env', 'HOME') }}/personal"
source_key: "./.ssh/id_rsa"
my_user: nige

@ -1,7 +1,7 @@
- name: Install packages (tmux, netcat, fzf, xclip, tldr, wget, curl, jq, libxml2-utils, xxd, git)
- apt:
name: [ "tmux", "netcat", "fzf", "xclip", "tldr", "wget", "curl", "jq", "libxml2-utils", "xxd", "git", "taskwarrior", "ripgrep", "tree" ]
become: true
apt:
name: [ "tmux", "netcat", "fzf", "xclip", "tldr", "wget", "curl", "jq", "libxml2-utils", "xxd", "git" ]
name: Install packages (tmux, netcat, fzf, xclip, tldr, wget, curl, jq, libxml2-utils, xxd, git)
tags:
- install
- productivity

@ -1,33 +1,33 @@
- name: Install System Packages 1 (build-essential, cmake, pkg-config, pthread)
become: true
apt:
- apt:
name: ["build-essential", "cmake", "pkg-config", "libpthread-stubs0-dev"]
become: true
name: Install System Packages 1 (build-essential, cmake, pkg-config, pthread)
tags:
- install
- neovim
- core
- name: Install System Packages 2 (lua, unzip, libtool, libtool-bin, gettext)
become: true
apt:
- apt:
name: [ "lua5.1", "unzip", "libtool", "libtool-bin", "gettext"]
become: true
name: Install System Packages 2 (lua, unzip, libtool, libtool-bin, gettext)
tags:
- install
- neovim
- core
- name: Install System Packages 3 (ccache, python3-pip, dconf-editor, moreutils)
- apt:
name: [ "ccache", "python3-pip", "dconf-editor", "moreutils", "cargo" ]
become: true
apt:
name: [ "ccache", "python3-pip", "dconf-editor", "moreutils"]
name: Install System Packages 3 (ccache, python3-pip, dconf-editor, moreutils, cargo)
tags:
- install
- core
- name: Install Clang
become: true
apt:
- apt:
name: ["clang", "clang-11", "clang-12", "clang-15", "clangd", "clangd-11", "clangd-12", "clangd-15"]
become: true
name: Install Clang
tags:
- install
- neovim

@ -1,19 +1,28 @@
- name: Install libwebkit2gtk
become: true
apt:
- apt:
name: [ "libwebkit2gtk-4.0-dev" ]
become: true
name: Install libwebkit2gtk
tags:
- install
- deno
- productivity
- name: Install deno
- ansible.builtin.get_url:
dest: /opt/deno-install.sh
mode: '777'
url: https://deno.land/x/install/install.sh
name: Download deno install script
register: denoinstall
tags:
- install
- notes
- become: true
become_user: "{{my_user}}"
name: Install deno
shell: |
curl -fsSL https://deno.land/x/install/install.sh | sh
when: st.stat.islnk is not defined
/opt/deno-install.sh
tags:
- install
- deno
- productivity
become: true
become_user: nige
when: denoinstall.changed

@ -1,93 +1,92 @@
# tasks/dotfiles.yaml
- name: Install stow
become: true
apt:
- apt:
name: [ "stow" ]
tags:
- git
- install
- dotfiles
- productivity
- name: Check if already stowed
stat:
path: /home/nige/.stowed
register: st
tags:
- git
- install
- dotfiles
- productivity
become: true
become_user: nige
- name: Remove existing .bashrc and dotfolder from home
file:
path: "{{ item }}"
state: absent
# when: st.stat.islnk is not defined
name: Install stow
tags:
- git
- install
- dotfiles
- productivity
#become: true
#become_user: nige
loop:
- /home/nige/.bashrc
#- /tmp/main.zip
#- /home/nige/dotfiles
- name: Clone the dotfiles repository
git:
repo: https://git.gerstner.se/nils/ansible_dotfiles.git
dest: /home/nige/dotfiles
force: true
when: st.stat.islnk is not defined
- become: true
become_user: "{{my_user}}"
name: Check if already stowed
register: st
stat:
path: "/home/{{my_user}}/.stowed"
tags:
- git
- install
- dotfiles
- productivity
become: true
become_user: nige
# - name: Move dotfiles to dest folder
# ansible.builtin.copy:
# src: /tmp/ansible/dotfiles
# dest: ~/
# remote_src: yes
# owner: root
# group: root
# # mode: u+rw,g-wx,o-rwx
# # validate: /usr/sbin/visudo -csf %s
# - file:
# path: "{{ item }}"
# state: absent
# loop:
# - "/home/{{my_user}}/.bashrc"
# #- /tmp/main.zip
# #- "/home/{{my_user}}/dotfiles"
#
# # when: st.stat.islnk is not defined
# name: Remove existing .bashrc and dotfolder from home #become: true
# #become_user: "{{my_user}}"
# tags:
# - git
# - install
# - dotfiles
# - productivity
# - become: true
# become_user: "{{my_user}}"
# git:
# dest: "/home/{{my_user}}/dotfiles"
# force: true
# name: Clone the dotfiles repository
# repo: https://git.gerstner.se/nils/ansible_dotfiles.git
# tags:
# - git
# - install
# - dotfiles
# - productivity
# when: st.stat.islnk is not defined
#
# # - name: Move dotfiles to dest folder
# # ansible.builtin.copy:
# # src: /tmp/ansible/dotfiles
# # dest: ~/
# # remote_src: yes
# # owner: root
# # group: root
# # # mode: u+rw,g-wx,o-rwx
# # # validate: /usr/sbin/visudo -csf %s
# # tags:
# # - git
# # - install
# # - dotfiles
# # - productivity
#
# - become: true
# become_user: "{{my_user}}"
# name: Stow the dotfiles
# shell: |
# stow --verbose 2 --dir "/home/{{my_user}}/dotfiles" --target "/home/{{my_user}}/" .
# tags:
# - git
# - install
# - dotfiles
# - productivity
# when: st.stat.islnk is not defined
#
# - ansible.builtin.lineinfile:
# line: ENVIRONMENT=PROD
# path: ~/.bashrc
# regexp: '^ENVIRONMENT=.*$'
# become: true
# become_user: "{{my_user}}"
# name: Set the right prompt
# tags:
# - git
# - install
# - dotfiles
# - productivity
- name: Stow the dotfiles
shell: |
stow --verbose 2 --dir "/home/nige/dotfiles" --target "/home/nige/" .
when: st.stat.islnk is not defined
tags:
- git
- install
- dotfiles
- productivity
become: true
become_user: nige
- name: Set the right prompt
ansible.builtin.lineinfile:
path: ~/.bashrc
regexp: '^ENVIRONMENT=.*$'
line: ENVIRONMENT=PROD
tags:
- git
- install
- dotfiles
- productivity
become: true
become_user: nige

@ -1,50 +1,70 @@
- name: Git personal setup email
git_config:
name: user.email
scope: global
value: "nils.gerstner@replyto.se"
# - name: Git personal setup email
# git_config:
# name: user.email
# scope: global
# value: "nils.gerstner@replyto.se"
# tags:
# - install
# - productivity
# - git-personal
# - name: Git personal setup name
# git_config:
# name: user.name
# scope: global
# value: "ThePrimeagen"
# tags:
# - install
# - productivity
# - git-personal
# - name: Git Rustin
# git_config:
# name: user.email
# scope: global
# value: "rustin.deeznuts@gmail.com"
# tags:
# - install
# - productivity
# - git-rustin
# - name: Git personal setup name
# git_config:
# name: user.name
# scope: global
# value: "RustLover69"
# tags:
# - install
# - productivity
# - git-rustin
# - name: Netflix
# git_config:
# name: user.email
# scope: global
# value: "mpaulson@netflix.com"
# tags:
# - git-netflix
# - name: Git personal setup name
# git_config:
# name: user.name
# scope: global
# value: "mpaulson"
# tags:
# - git-netflix
- ansible.builtin.git:
dest: "{{ lookup('env', 'HOME') }}/lazygit"
force: true
repo: 'https://github.com/jesseduffield/lazygit.git'
update: true
# version: 'stable'
name: Clone lazygit
register: lazygitclone
tags:
- install
- productivity
- git-personal
- name: Git personal setup name
git_config:
name: user.name
scope: global
value: "ThePrimeagen"
- install
- git
- golang
- name: Install lazygit
shell: "cd {{ lookup('env', 'HOME') }}/lazygit && go build && mv ./lazygit /usr/local/bin/"
tags:
- install
- productivity
- git-personal
- name: Git Rustin
git_config:
name: user.email
scope: global
value: "rustin.deeznuts@gmail.com"
tags:
- install
- productivity
- git-rustin
- name: Git personal setup name
git_config:
name: user.name
scope: global
value: "RustLover69"
tags:
- install
- productivity
- git-rustin
- name: Netflix
git_config:
name: user.email
scope: global
value: "mpaulson@netflix.com"
tags:
- git-netflix
- name: Git personal setup name
git_config:
name: user.name
scope: global
value: "mpaulson"
tags:
- git-netflix
- install
- git
- golang
when: lazygitclone.changed

@ -1,7 +1,7 @@
- name: Install golang
become: true
apt:
- apt:
name: [ "golang" ]
become: true
name: Install golang
tags:
- install
- golang

@ -1,15 +1,15 @@
- name: Install OpenJDK 17
- apt:
name: [ "openjdk-17-jdk", "openjdk-17-jre", "maven" ]
become: true
apt:
name: [ "openjdk-17-jdk", "openjdk-17-jre" ]
name: Install OpenJDK 17 and maven
tags:
- install
- productivity
- java
- name: Get Java java alternative
shell: "update-alternatives --list java |grep -m1 '^/.*/java-17-openjdk.*/java$'"
register: javaversion
shell: "update-alternatives --list java |grep -m1 '^/.*/java-17-openjdk.*/java$'"
tags:
- install
- productivity
@ -23,30 +23,26 @@
- java
when: javaversion is defined
- name: Get JAVA_HOME for current version
shell: 'dirname $(dirname $(readlink -f $(which javac)))'
- become: true
become_user: "{{my_user}}"
name: Get JAVA_HOME for current version
register: javahome
shell: 'dirname $(dirname $(readlink -f $(which javac)))'
tags:
- install
- productivity
- java
become: true
become_user: nige
- name: Set JAVA_HOME
ansible.builtin.lineinfile:
- ansible.builtin.lineinfile:
line: export JAVA_HOME={{ javahome.stdout }}
path: ~/.bashrc
regexp: '^\s*export *JAVA_HOME=.*$'
line: export JAVA_HOME={{ javahome.stdout }}
become: true
become_user: "{{my_user}}"
name: Set JAVA_HOME
tags:
- install
- productivity
- java
when: javahome is defined
become: true
become_user: nige
# JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

@ -0,0 +1,51 @@
# HELM
- ansible.builtin.apt_key:
id: 81BF832E2F19CD2AA0471959294AC4827C1A168A
keyring: /etc/apt/keyrings/helm.gpg
url: https://baltocdn.com/helm/signing.asc
name: Add signing key for Helm repository
tags:
- kubernetes
- ansible.builtin.apt_key:
id: A362B822F6DEDC652817EA46B53DC80D13EDEF05
keyring: /etc/apt/keyrings/kubernetes-archive-keyring.gpg
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
name: Add signing key for Kubernetes repository
tags:
- kubernetes
- ansible.builtin.apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main"
state: present
name: Add Helm repository
register: helmrepo
tags:
- kubernetes
- ansible.builtin.apt_repository:
repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main"
state: present
name: Add Kubernetes repository
register: kubernetesrepo
tags:
- kubernetes
- apt:
force_apt_get: true
state: present
update_cache: true
become: true
name: Update apt repositories
tags:
- kubernetes
when: helmrepo.changed or kubernetesrepo.changed
- apt:
name:
[
"apt-transport-https",
"ca-certificates",
"kubectl",
"helm"
]
become: true
name: Install kubectl and helm
tags:
- kubernetes
# when: kubectlupdate.changed

@ -1,24 +1,27 @@
- name: Download meilisearch
ansible.builtin.get_url:
- ansible.builtin.get_url:
# url: https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch-linux-{{ansible_architecture}}
url: https://github.com/meilisearch/meilisearch/releases/download/v1.0.2/meilisearch-linux-amd64
dest: /usr/local/bin/meilisearch
mode: '777'
url: https://github.com/meilisearch/meilisearch/releases/download/v1.0.2/meilisearch-linux-amd64
name: Download meilisearch
register: meilisearch
tags:
- install
- notes
- name: Meilisearch version
- become: true
become_user: "{{my_user}}"
name: Meilisearch version
shell: /usr/local/bin/meilisearch --version
tags:
- install
- notes
become: true
become_user: nige
when: meilisearch.changed
- name: Start meilisearch
- become: true
become_user: "{{my_user}}"
name: Start meilisearch
shell: "/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 >/dev/null 2>&1 &"
tags:
- notes
become: true
become_user: nige
when: meilisearch.changed

@ -1,7 +1,7 @@
- name: Install nodejs
become: true
apt:
- apt:
name: [ "nodejs", "npm" ]
become: true
name: Install nodejs
tags:
- install
- productivity

@ -1,64 +1,73 @@
# - name: Neovim folder exists
# stat:
# path: ~/neovim
# register: nvim_folder
# tags:
# - install
# - neovim
# - name: Remove neovim
# shell: rm -rf ~/neovim
# tags:
# - install
# - neovim
- name: Clone Neovim
ansible.builtin.git:
repo: 'https://github.com/neovim/neovim.git'
- ansible.builtin.git:
dest: "{{ lookup('env', 'HOME') }}/neovim"
update: true
force: true
repo: 'https://github.com/neovim/neovim.git'
update: true
version: 'stable'
name: Clone Neovim
register: gitclone
tags:
- install
- neovim
- ansible.builtin.file:
path: /usr/local/share/nvim/runtime
state: absent
name: Remove old runtime
tags:
- install
- neovim
when: gitclone.changed
- ansible.builtin.file:
path: "{{ lookup('env', 'HOME') }}/neovim/build"
state: absent
name: Remove old build path
tags:
- install
- neovim
# when: nvim_folder.stat.exists
#
# - name: Clone Neovim
# ansible.builtin.git:
# repo: 'https://github.com/neovim/neovim.git'
# dest: "{{ lookup('env', 'HOME') }}/neovim"
# tags:
# - install
# - neovim
# when: nvim_folder.stat.exists
- name: Build neovim
shell: "cd {{ lookup('env', 'HOME') }}/neovim && make -j 20"
shell: "cd {{ lookup('env', 'HOME') }}/neovim && make -j CMAKE_BUILD_TYPE=Release"
tags:
- install
- neovim
- name: Install neovim
become: true
when: gitclone.changed
- become: true
name: Install neovim
shell: "cd {{ lookup('env', 'HOME') }}/neovim && make install"
tags:
- install
- neovim
- name: Neovim Plugin Development 1
when: gitclone.changed
- apt: name=luarocks
become: true
apt: name=luarocks
name: Neovim Plugin Development 1
tags:
- install
- neovim
- ansible.builtin.pip:
executable: pip3
name: pynvim
become: true
become_user: "{{my_user}}"
name: Install python neovim module
tags:
- install
- neovim
- become: true
become_user: "{{my_user}}"
name: Install tree-sitter
shell: "cargo install tree-sitter-cli"
tags:
- install
- neovim
- name: Neovim Lazy update
shell: "nvim --headless '+Lazy sync' +q"
shell: "nvim --headless '+Lazy sync' '+q'"
tags:
- install
- neovim
when: gitclone.changed
- name: Neovim TSUpdate
shell: "nvim --headless '+TSUpdateSync clean' +q"
shell: "nvim --headless '+TSUpdateSync clean' '+q'"
tags:
- install
- neovim
# - name: Neovim Plugin Development 2 luacheck
# become: true
# shell: luarocks install luacheck
# tags:
# - install
# - neovim
when: gitclone.changed

@ -0,0 +1,9 @@
- ansible.builtin.pip:
name: vit
become: true
become_user: nige
name: install VIT (Taskwarrior TUI)
tags:
- install
- tasks
- productivity

@ -1,4 +1,5 @@
- name: Create Main Code folder
- become: true
become_user: "{{my_user}}"
file:
path: "{{ item }}"
state: directory
@ -11,9 +12,8 @@
- ~/Documents/Code/RISE
- ~/Documents/Code/VOLVOCARS
- ~/Documents/Code/VOLVOFINANS
name: Create Main Code folder
tags:
- git
- productivity
- dotfiles
become: true
become_user: nige

Loading…
Cancel
Save