- 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 - name: Dev setup
vars: hosts: localhost
source_key: "./.ssh/id_rsa" connection: local
dest_key: "{{ lookup('env', 'HOME') }}/.ssh/id_rsa"
personal: "{{ lookup('env', 'HOME') }}/personal"
pre_tasks: pre_tasks:
- name: Update Apt - apt:
become: true
apt:
force_apt_get: true force_apt_get: true
update_cache: true
state: present state: present
update_cache: true
become: true
name: Update Apt
tags: tags:
- install - install
- neovim - neovim
- core - core
- golang - golang
- dotfiles - dotfiles
- name: Update Apt - apt:
become: true
apt:
name: [ "sudo", "git" ] name: [ "sudo", "git" ]
become: true
name: Install sudo and git
tags: tags:
- install - install
- neovim - neovim
- dotfiles - dotfiles
tasks: tasks:
# - include: tasks/ssh.yml # - include: tasks/ssh.yml
# - include: tasks/git-setup.yml - include: tasks/git-setup.yml
- include: tasks/cli-tools.yml - include: tasks/cli-tools.yml
- include: tasks/core-setup.yml - include: tasks/core-setup.yml
# - include: tasks/node-setup.yml # - include: tasks/node-setup.yml
@ -47,3 +45,10 @@
- include: tasks/java-setup.yml - include: tasks/java-setup.yml
- include: tasks/node-setup.yml - include: tasks/node-setup.yml
- include: tasks/deno-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 become: true
apt: name: Install packages (tmux, netcat, fzf, xclip, tldr, wget, curl, jq, libxml2-utils, xxd, git)
name: [ "tmux", "netcat", "fzf", "xclip", "tldr", "wget", "curl", "jq", "libxml2-utils", "xxd", "git" ]
tags: tags:
- install - install
- productivity - productivity

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

@ -1,19 +1,28 @@
- name: Install libwebkit2gtk - apt:
become: true
apt:
name: [ "libwebkit2gtk-4.0-dev" ] name: [ "libwebkit2gtk-4.0-dev" ]
become: true
name: Install libwebkit2gtk
tags: tags:
- install - install
- deno - deno
- productivity - 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: | shell: |
curl -fsSL https://deno.land/x/install/install.sh | sh /opt/deno-install.sh
when: st.stat.islnk is not defined
tags: tags:
- install - install
- deno - deno
- productivity - productivity
become: true when: denoinstall.changed
become_user: nige

@ -1,93 +1,92 @@
# tasks/dotfiles.yaml # tasks/dotfiles.yaml
- name: Install stow - apt:
become: true
apt:
name: [ "stow" ] 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: true
become_user: nige name: Install stow
- name: Remove existing .bashrc and dotfolder from home
file:
path: "{{ item }}"
state: absent
# when: st.stat.islnk is not defined
tags: tags:
- git - git
- install - install
- dotfiles - dotfiles
- productivity - productivity
#become: true
#become_user: nige
loop:
- /home/nige/.bashrc
#- /tmp/main.zip
#- /home/nige/dotfiles
- name: Clone the dotfiles repository - become: true
git: become_user: "{{my_user}}"
repo: https://git.gerstner.se/nils/ansible_dotfiles.git name: Check if already stowed
dest: /home/nige/dotfiles register: st
force: true stat:
when: st.stat.islnk is not defined path: "/home/{{my_user}}/.stowed"
tags: tags:
- git - git
- install - install
- dotfiles - dotfiles
- productivity - productivity
become: true
become_user: nige
# - name: Move dotfiles to dest folder # - file:
# ansible.builtin.copy: # path: "{{ item }}"
# src: /tmp/ansible/dotfiles # state: absent
# dest: ~/ # loop:
# remote_src: yes # - "/home/{{my_user}}/.bashrc"
# owner: root # #- /tmp/main.zip
# group: root # #- "/home/{{my_user}}/dotfiles"
# # mode: u+rw,g-wx,o-rwx #
# # validate: /usr/sbin/visudo -csf %s # # 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: # tags:
# - git # - git
# - install # - install
# - dotfiles # - dotfiles
# - productivity # - 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 # - name: Git personal setup email
git_config: # git_config:
name: user.email # name: user.email
scope: global # scope: global
value: "nils.gerstner@replyto.se" # 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: tags:
- install - install
- productivity - git
- git-personal - golang
- name: Git personal setup name - name: Install lazygit
git_config: shell: "cd {{ lookup('env', 'HOME') }}/lazygit && go build && mv ./lazygit /usr/local/bin/"
name: user.name
scope: global
value: "ThePrimeagen"
tags: tags:
- install - install
- productivity - git
- git-personal - golang
- name: Git Rustin when: lazygitclone.changed
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

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

@ -1,15 +1,15 @@
- name: Install OpenJDK 17 - apt:
name: [ "openjdk-17-jdk", "openjdk-17-jre", "maven" ]
become: true become: true
apt: name: Install OpenJDK 17 and maven
name: [ "openjdk-17-jdk", "openjdk-17-jre" ]
tags: tags:
- install - install
- productivity - productivity
- java - java
- name: Get Java java alternative - name: Get Java java alternative
shell: "update-alternatives --list java |grep -m1 '^/.*/java-17-openjdk.*/java$'"
register: javaversion register: javaversion
shell: "update-alternatives --list java |grep -m1 '^/.*/java-17-openjdk.*/java$'"
tags: tags:
- install - install
- productivity - productivity
@ -23,30 +23,26 @@
- java - java
when: javaversion is defined when: javaversion is defined
- name: Get JAVA_HOME for current version - become: true
shell: 'dirname $(dirname $(readlink -f $(which javac)))' become_user: "{{my_user}}"
name: Get JAVA_HOME for current version
register: javahome register: javahome
shell: 'dirname $(dirname $(readlink -f $(which javac)))'
tags: tags:
- install - install
- productivity - productivity
- java - java
become: true
become_user: nige
- name: Set JAVA_HOME - ansible.builtin.lineinfile:
ansible.builtin.lineinfile: line: export JAVA_HOME={{ javahome.stdout }}
path: ~/.bashrc path: ~/.bashrc
regexp: '^\s*export *JAVA_HOME=.*$' regexp: '^\s*export *JAVA_HOME=.*$'
line: export JAVA_HOME={{ javahome.stdout }} become: true
become_user: "{{my_user}}"
name: Set JAVA_HOME
tags: tags:
- install - install
- productivity - productivity
- java - java
when: javahome is defined when: javahome is defined
become: true
become_user: nige
# JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" # 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/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 dest: /usr/local/bin/meilisearch
mode: '777' mode: '777'
url: https://github.com/meilisearch/meilisearch/releases/download/v1.0.2/meilisearch-linux-amd64
name: Download meilisearch
register: meilisearch
tags: tags:
- install - install
- notes - notes
- name: Meilisearch version - become: true
become_user: "{{my_user}}"
name: Meilisearch version
shell: /usr/local/bin/meilisearch --version shell: /usr/local/bin/meilisearch --version
tags: tags:
- install - install
- notes - notes
become: true when: meilisearch.changed
become_user: nige
- 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 &" shell: "/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 >/dev/null 2>&1 &"
tags: tags:
- notes - notes
become: true when: meilisearch.changed
become_user: nige

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

@ -1,64 +1,73 @@
# - name: Neovim folder exists - ansible.builtin.git:
# 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'
dest: "{{ lookup('env', 'HOME') }}/neovim" dest: "{{ lookup('env', 'HOME') }}/neovim"
update: true
force: 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: tags:
- install - install
- neovim - 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 - 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: tags:
- install - install
- neovim - neovim
- name: Install neovim when: gitclone.changed
become: true - become: true
name: Install neovim
shell: "cd {{ lookup('env', 'HOME') }}/neovim && make install" shell: "cd {{ lookup('env', 'HOME') }}/neovim && make install"
tags: tags:
- install - install
- neovim - neovim
- name: Neovim Plugin Development 1 when: gitclone.changed
- apt: name=luarocks
become: true 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: tags:
- install - install
- neovim - neovim
- name: Neovim Lazy update - name: Neovim Lazy update
shell: "nvim --headless '+Lazy sync' +q" shell: "nvim --headless '+Lazy sync' '+q'"
tags: tags:
- install - install
- neovim - neovim
when: gitclone.changed
- name: Neovim TSUpdate - name: Neovim TSUpdate
shell: "nvim --headless '+TSUpdateSync clean' +q" shell: "nvim --headless '+TSUpdateSync clean' '+q'"
tags: tags:
- install - install
- neovim - neovim
# - name: Neovim Plugin Development 2 luacheck when: gitclone.changed
# become: true
# shell: luarocks install luacheck
# tags:
# - install
# - neovim

@ -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: file:
path: "{{ item }}" path: "{{ item }}"
state: directory state: directory
@ -11,9 +12,8 @@
- ~/Documents/Code/RISE - ~/Documents/Code/RISE
- ~/Documents/Code/VOLVOCARS - ~/Documents/Code/VOLVOCARS
- ~/Documents/Code/VOLVOFINANS - ~/Documents/Code/VOLVOFINANS
name: Create Main Code folder
tags: tags:
- git - git
- productivity - productivity
- dotfiles - dotfiles
become: true
become_user: nige

Loading…
Cancel
Save