diff --git a/inventory b/inventory index 7225d93..ecd25f6 100644 --- a/inventory +++ b/inventory @@ -1,2 +1,2 @@ [local] -test ansible_connection=local +test ansible_connection=local ansible_become_pass=vagrant diff --git a/playbook.yml b/playbook.yml index 5f1cd16..0b1ca60 100644 --- a/playbook.yml +++ b/playbook.yml @@ -1,3 +1,5 @@ -- hosts: local +- name: Provision Local Ubuntu Machine + hosts: local + gather_facts: true roles: - setup diff --git a/roles/setup/tasks/apt.yml b/roles/setup/tasks/apt.yml index 1aaf6b7..b23085e 100644 --- a/roles/setup/tasks/apt.yml +++ b/roles/setup/tasks/apt.yml @@ -1,35 +1,15 @@ --- -- name: Install apt packages +- name: Install dependencies ansible.builtin.apt: - name: - - ansible - - bat - - curl - - eza - - fd-find - - fzf - - gcc - - keepassxc - - libclang-dev - - libssl-dev - - luarocks - - npm - - obs-studio - - p7zip - - pkg-config - - python3-pip - - python3-venv - - ranger - - tealdeer - - texlive-full - - v4l2loopback-dkms - - wireguard - - wireguard-tools - - xsel - - zsh + name: "{{ apt_dependencies }}" state: present update_cache: true become: true - -- name: Update tldr database - ansible.builtin.command: tldr --update +# - name: Install tools +# ansible.builtin.apt: +# name: "{{ apt_tools }}" +# state: present +# become: true +# +# - name: Update tldr database +# ansible.builtin.command: tldr --update diff --git a/roles/setup/tasks/atuin.yml b/roles/setup/tasks/atuin.yml new file mode 100644 index 0000000..e51a2ea --- /dev/null +++ b/roles/setup/tasks/atuin.yml @@ -0,0 +1,5 @@ +--- +- name: Install atuin + ansible.builtin.shell: yes | bash -c "curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh" + args: + creates: "{{ ansible_env.HOME }}/.config/atuin" # Adjust based on atuin installation diff --git a/roles/setup/tasks/docker.yml b/roles/setup/tasks/docker.yml index ef98e0b..4582136 100644 --- a/roles/setup/tasks/docker.yml +++ b/roles/setup/tasks/docker.yml @@ -1,47 +1,51 @@ --- -- name: Install prerequisites for Docker +- name: Update cache + ansible.builtin.apt: + update_cache: true + become: true + +- name: Install dependencies for apt to use repositories over HTTPS ansible.builtin.apt: name: - ca-certificates - curl + - gnupg + - lsb-release state: present + become: true + +- name: Add Docker apt key. + ansible.builtin.get_url: + url: "{{ docker.url }}/{{ ansible_distribution | lower }}/gpg" + dest: /etc/apt/trusted.gpg.d/docker.asc + mode: "0664" + force: true + become: true + +- name: Add Docker repository. + ansible.builtin.apt_repository: + repo: "deb [arch={{ aarch }}] {{ docker.url }}/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker.apt_release_channel }}" + state: present + become: true + +- name: Update cache + ansible.builtin.apt: update_cache: true become: true -- name: Create /etc/apt/keyrings directory - ansible.builtin.file: - path: /etc/apt/keyrings - state: directory - mode: "0755" - -- name: Download Docker GPG key - ansible.builtin.get_url: - url: https://download.docker.com/linux/ubuntu/gpg - dest: /etc/apt/keyrings/docker.asc - mode: "0644" - -- name: Add Docker repository - ansible.builtin.apt_repository: - repo: "deb [arch={{ ansible_architecture }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable" - filename: docker - state: present - -- name: Update apt cache after adding Docker repo - ansible.builtin.apt: - update_cache: true - -- name: Install Docker packages +- name: Install Docker Engine, containerd, and Docker Compose. ansible.builtin.apt: name: - docker-ce - docker-ce-cli - - containerd.io - - docker-buildx-plugin - docker-compose-plugin + - containerd.io state: present + become: true - name: Add current user to docker group ansible.builtin.user: name: "{{ ansible_user_id }}" groups: docker append: true + become: true diff --git a/roles/setup/tasks/eurkey.yml b/roles/setup/tasks/eurkey.yml new file mode 100644 index 0000000..166b3a0 --- /dev/null +++ b/roles/setup/tasks/eurkey.yml @@ -0,0 +1,16 @@ +--- +- name: Download EurKey deb + ansible.builtin.get_url: + url: https://eurkey.steffen.bruentjen.eu/download/debian/eurkey.deb + dest: "/tmp/eurkey.deb" + +- name: Install EurKey + ansible.builtin.apt: + deb: "/tmp/eurkey.deb" + state: present + become: true + +- name: Remove EurKey deb + ansible.builtin.file: + path: "/tmp/eurkey.deb" + state: absent diff --git a/roles/setup/tasks/fira_code_fonts.yml b/roles/setup/tasks/fira_code_fonts.yml index 5d6f05f..87e9a84 100644 --- a/roles/setup/tasks/fira_code_fonts.yml +++ b/roles/setup/tasks/fira_code_fonts.yml @@ -14,7 +14,7 @@ ansible.builtin.unarchive: src: "/tmp/FiraMono.zip" dest: "{{ ansible_env.HOME }}/.fonts" - remote_src: yes + remote_src: true - name: Remove FiraMono.zip ansible.builtin.file: @@ -23,5 +23,3 @@ - name: Refresh font cache ansible.builtin.shell: fc-cache -fv - args: - warn: false diff --git a/roles/setup/tasks/ghostty.yml b/roles/setup/tasks/ghostty.yml index 0d767fd..f1f47a5 100644 --- a/roles/setup/tasks/ghostty.yml +++ b/roles/setup/tasks/ghostty.yml @@ -1,13 +1,15 @@ --- - name: Get OS release info ansible.builtin.shell: source /etc/os-release && echo $VERSION_ID + args: + executable: /bin/bash register: version_id changed_when: false - name: Get Ghostty DEB URL ansible.builtin.shell: | curl -s https://api.github.com/repos/mkasberg/ghostty-ubuntu/releases/latest | - grep -oP "https://github.com/mkasberg/ghostty-ubuntu/releases/download/[^\s/]+/ghostty_[^\s/_]+_amd64_{{ version_id.stdout }}.deb" + grep -oP "https://github.com/mkasberg/ghostty-ubuntu/releases/download/[^\s/]+/ghostty_[^\s/_]+_{{ aarch }}_{{ version_id.stdout }}.deb" register: ghostty_deb_url changed_when: false @@ -21,6 +23,7 @@ ansible.builtin.apt: deb: "/tmp/{{ ghostty_deb_url.stdout | basename }}" state: present + become: true - name: Remove Ghostty deb file ansible.builtin.file: diff --git a/roles/setup/tasks/git_delta.yml b/roles/setup/tasks/git_delta.yml new file mode 100644 index 0000000..80ab0e9 --- /dev/null +++ b/roles/setup/tasks/git_delta.yml @@ -0,0 +1,16 @@ +--- +- name: Download git-delta deb + ansible.builtin.get_url: + url: "https://github.com/dandavison/delta/releases/download/0.18.2/git-delta-musl_0.18.2_{{ aarch }}.deb" + dest: "/tmp/git-delta-musl_0.18.2_{{ aarch }}.deb" + +- name: Install git-delta + ansible.builtin.apt: + deb: "/tmp/git-delta-musl_0.18.2_{{ aarch }}.deb" + state: present + become: true + +- name: Remove git-delta deb + ansible.builtin.file: + path: "/tmp/git-delta-musl_0.18.2_{{ aarch }}.deb" + state: absent diff --git a/roles/setup/tasks/git_delta_atuin.yml b/roles/setup/tasks/git_delta_atuin.yml deleted file mode 100644 index 3afe101..0000000 --- a/roles/setup/tasks/git_delta_atuin.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- name: Download git-delta deb - ansible.builtin.get_url: - url: https://github.com/dandavison/delta/releases/download/0.18.2/git-delta-musl_0.18.2_amd64.deb - dest: "/tmp/git-delta-musl_0.18.2_amd64.deb" - -- name: Install git-delta - ansible.builtin.apt: - deb: "/tmp/git-delta-musl_0.18.2_amd64.deb" - state: present - -- name: Remove git-delta deb - ansible.builtin.file: - path: "/tmp/git-delta-musl_0.18.2_amd64.deb" - state: absent - -- name: Install atuin - become: false - ansible.builtin.shell: curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh - args: - creates: "{{ ansible_env.HOME }}/.config/atuin" # Adjust based on atuin installation - diff --git a/roles/setup/tasks/hashicorp_vagrant.yml b/roles/setup/tasks/hashicorp_vagrant.yml index 1c7614e..be70214 100644 --- a/roles/setup/tasks/hashicorp_vagrant.yml +++ b/roles/setup/tasks/hashicorp_vagrant.yml @@ -1,6 +1,4 @@ --- -# roles/setup/tasks/hashicorp_vagrant.yml - - name: Download Hashicorp GPG key ansible.builtin.get_url: url: https://apt.releases.hashicorp.com/gpg @@ -14,6 +12,7 @@ args: creates: /usr/share/keyrings/hashicorp-archive-keyring.gpg when: hashicorp_gpg_download.changed + become: true - name: Remove temporary Hashicorp GPG key file ansible.builtin.file: @@ -31,13 +30,16 @@ codename: "{{ ansible_facts['lsb']['codename'] }}" ansible_architecture: "{{ ansible_facts['architecture'] }}" when: hashicorp_gpg_download.changed + become: true - name: Update apt cache after adding Hashicorp repository ansible.builtin.apt: - update_cache: yes + update_cache: true cache_valid_time: 3600 # Cache validity in seconds + become: true - name: Install Vagrant ansible.builtin.apt: name: vagrant state: present + become: true diff --git a/roles/setup/tasks/lazygit_ripgrep.yml b/roles/setup/tasks/lazygit.yml similarity index 67% rename from roles/setup/tasks/lazygit_ripgrep.yml rename to roles/setup/tasks/lazygit.yml index c54a9ce..7f2d681 100644 --- a/roles/setup/tasks/lazygit_ripgrep.yml +++ b/roles/setup/tasks/lazygit.yml @@ -16,13 +16,14 @@ src: "/tmp/lazygit.tar.gz" dest: "/tmp" creates: "/tmp/lazygit" - remote_src: yes + remote_src: true - name: Install lazygit ansible.builtin.copy: src: "/tmp/lazygit" dest: /usr/local/bin/lazygit mode: "0755" + become: true - name: Remove lazygit tar.gz and binary ansible.builtin.file: @@ -31,18 +32,3 @@ loop: - "/tmp/lazygit.tar.gz" - "/tmp/lazygit" - -- name: Download ripgrep deb - ansible.builtin.get_url: - url: https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_amd64.deb - dest: "/tmp/ripgrep_14.1.0-1_amd64.deb" - -- name: Install ripgrep - ansible.builtin.apt: - deb: "/tmp/ripgrep_14.1.0-1_amd64.deb" - state: present - -- name: Remove ripgrep deb - ansible.builtin.file: - path: "/tmp/ripgrep_14.1.0-1_amd64.deb" - state: absent diff --git a/roles/setup/tasks/ledger_cli.yml b/roles/setup/tasks/ledger_cli.yml new file mode 100644 index 0000000..e451147 --- /dev/null +++ b/roles/setup/tasks/ledger_cli.yml @@ -0,0 +1,40 @@ +--- +- name: Clone Ledger repository + ansible.builtin.git: + repo: "{{ ledger_repo }}" + dest: "{{ ledger_clone_dir }}" + version: master + update: true + register: git_clone + become: true + +- name: Run acprep update to configure and build Ledger + ansible.builtin.command: ./acprep update + args: + chdir: "{{ ledger_clone_dir }}" + when: git_clone.changed + become: true + +- name: Move the built ledger binary to /usr/bin + ansible.builtin.copy: + src: "{{ ledger_clone_dir }}/ledger" + dest: "{{ ledger_binary_path }}" + mode: "0755" + force: true + become: true + +- name: Ensure the ledger binary is executable + ansible.builtin.file: + path: "{{ ledger_binary_path }}" + mode: "0755" + state: file + become: true + +- name: Verify Ledger installation + ansible.builtin.command: ledger --version + register: ledger_version + changed_when: false + +- name: Display Ledger version + ansible.builtin.debug: + msg: "Ledger version installed: {{ ledger_version.stdout }}" diff --git a/roles/setup/tasks/main.yml b/roles/setup/tasks/main.yml index 875dfc2..5dec9d9 100644 --- a/roles/setup/tasks/main.yml +++ b/roles/setup/tasks/main.yml @@ -4,20 +4,25 @@ - name: Install snap packages ansible.builtin.import_tasks: snap.yml - name: Install nvim - ansible.builtin.import_tasks: nvim_rust.yml + ansible.builtin.import_tasks: nvim.yml - name: Install Rust + ansible.builtin.import_tasks: rust.yml - name: Ghostty ansible.builtin.import_tasks: ghostty.yml - name: Install pacstall + ansible.builtin.import_tasks: pacstall.yml - name: Install ledger - ansible.builtin.import_tasks: pacstall_ledger.yml + ansible.builtin.import_tasks: ledger_cli.yml - name: Install git-delta + ansible.builtin.import_tasks: git_delta.yml - name: Install atuin - ansible.builtin.import_tasks: git_delta_atuin.yml + ansible.builtin.import_tasks: atuin.yml - name: Install Starship + ansible.builtin.import_tasks: starship.yml - name: Install EurKey + ansible.builtin.import_tasks: eurkey.yml - name: Install Veracrypt - ansible.builtin.import_tasks: starship_eurkey_veracrypt.yml + ansible.builtin.import_tasks: veracrypt.yml - name: Install FiraCode ansible.builtin.import_tasks: fira_code_fonts.yml - name: Remove Ubuntu Pro Banner @@ -29,7 +34,8 @@ - name: Install paisa.fyi ansible.builtin.import_tasks: paisa.yml - name: Install lazygit + ansible.builtin.import_tasks: lazygit.yml - name: Install ripgrep - ansible.builtin.import_tasks: lazygit_ripgrep.yml + ansible.builtin.import_tasks: ripgrep.yml - name: Install Vagrant ansible.builtin.import_tasks: hashicorp_vagrant.yml diff --git a/roles/setup/tasks/nvim.yml b/roles/setup/tasks/nvim.yml new file mode 100644 index 0000000..8c94a23 --- /dev/null +++ b/roles/setup/tasks/nvim.yml @@ -0,0 +1,25 @@ +--- +- name: Check if Neovim config directory already exists + ansible.builtin.stat: + path: "{{ nvim_config_path }}" + register: nvim_config + +- name: Clone LazyVim starter to Neovim config directory + ansible.builtin.git: + repo: https://github.com/LazyVim/starter + dest: "{{ nvim_config_path }}" + clone: true + update: false + when: not nvim_config.stat.exists + +- name: Remove .git directory from Neovim config + ansible.builtin.file: + path: "{{ nvim_config_path }}/.git" + state: absent + when: not nvim_config.stat.exists + +- name: Install neovim npm package globally + community.general.npm: + name: neovim + global: true + become: true diff --git a/roles/setup/tasks/nvim_rust.yml b/roles/setup/tasks/nvim_rust.yml deleted file mode 100644 index 43dcee4..0000000 --- a/roles/setup/tasks/nvim_rust.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- name: Install neovim npm package globally - ansible.general.npm: - name: neovim - global: true - become: true - -- name: Install Rust (via rustup) - ansible.builtin.shell: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - args: - creates: "{{ ansible_env.HOME }}/.cargo/bin/rustc" - become: false diff --git a/roles/setup/tasks/pacstall.yml b/roles/setup/tasks/pacstall.yml new file mode 100644 index 0000000..8e8eb1f --- /dev/null +++ b/roles/setup/tasks/pacstall.yml @@ -0,0 +1,6 @@ +--- +- name: Install Pacstall + ansible.builtin.shell: yes | bash -c "$(curl -fsSL https://pacstall.dev/q/install)" + args: + creates: /usr/local/bin/pacstall # Adjust based on pacstall install path + become: true diff --git a/roles/setup/tasks/pacstall_ledger.yml b/roles/setup/tasks/pacstall_ledger.yml deleted file mode 100644 index 5ecabf9..0000000 --- a/roles/setup/tasks/pacstall_ledger.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- name: Install Pacstall - ansible.builtin.shell: bash -c "$(curl -fsSL https://pacstall.dev/q/install)" - args: - creates: /usr/local/bin/pacstall # Adjust based on pacstall install path - -- name: Add Ledger PPA - ansible.builtin.apt_repository: - repo: ppa:mbudde/ledger - state: present - -- name: Update apt cache after adding Ledger PPA - ansible.builtin.apt: - update_cache: yes - -- name: Install ledger - ansible.builtin.apt: - name: ledger - state: present diff --git a/roles/setup/tasks/paisa.yml b/roles/setup/tasks/paisa.yml index c84d7cd..513d9a5 100644 --- a/roles/setup/tasks/paisa.yml +++ b/roles/setup/tasks/paisa.yml @@ -3,46 +3,64 @@ ansible.builtin.copy: src: /etc/apt/sources.list dest: /etc/apt/sources.list.bak - remote_src: yes + remote_src: true + become: true - name: Add universe repository temporarily ansible.builtin.lineinfile: path: /etc/apt/sources.list line: "deb http://archive.ubuntu.com/ubuntu jammy main universe" insertafter: EOF + become: true - name: Update apt cache ansible.builtin.apt: - update_cache: yes + update_cache: true + become: true - name: Upgrade all packages ansible.builtin.apt: upgrade: dist + become: true - name: Install dependencies for Paisa ansible.builtin.apt: name: - libwebkit2gtk-4.0-dev - - webkit2gtk state: present + become: true + +# - name: Download webkitgtk tar.gz +# ansible.builtin.get_url: +# url: "https://webkitgtk.org/releases/webkitgtk-2.46.5.tar.xz" +# dest: "/tmp/webkitgtk-2.46.5.tar.xz" +# +# - name: Extract webkitgtk binary +# ansible.builtin.unarchive: +# src: "/tmp/webkitgtk-2.46.5.tar.xz" +# dest: "/tmp" +# creates: "/tmp/webkitgtk-2.46.5/" +# remote_src: true - name: Restore original sources.list ansible.builtin.copy: src: /etc/apt/sources.list.bak dest: /etc/apt/sources.list - remote_src: yes + remote_src: true + become: true - name: Download Paisa app deb ansible.builtin.get_url: - url: https://github.com/ananthakumaran/paisa/releases/download/v0.7.1/paisa-app-linux-amd64.deb - dest: "/tmp/paisa-app-linux-amd64.deb" + url: "https://github.com/ananthakumaran/paisa/releases/download/v0.7.1/paisa-app-linux-{{ aarch }}.deb" + dest: "/tmp/paisa-app-linux-{{ aarch }}.deb" - name: Install Paisa ansible.builtin.apt: - deb: "/tmp/paisa-app-linux-amd64.deb" + deb: "/tmp/paisa-app-linux-{{ aarch }}.deb" state: present + become: true - name: Remove Paisa deb ansible.builtin.file: - path: "/tmp/paisa-app-linux-amd64.deb" + path: "/tmp/paisa-app-linux-{{ aarch }}.deb" state: absent diff --git a/roles/setup/tasks/protonvpn.yml b/roles/setup/tasks/protonvpn.yml index f89d411..41e9dad 100644 --- a/roles/setup/tasks/protonvpn.yml +++ b/roles/setup/tasks/protonvpn.yml @@ -13,10 +13,12 @@ ansible.builtin.apt: deb: "/tmp/protonvpn-stable-release_1.0.6_all.deb" state: present + become: true - name: Update apt cache after ProtonVPN repo added ansible.builtin.apt: - update_cache: yes + update_cache: true + become: true - name: Install ProtonVPN GNOME desktop ansible.builtin.apt: @@ -26,6 +28,7 @@ - gir1.2-ayatanaappindicator3-0.1 - gnome-shell-extension-appindicator state: present + become: true - name: Remove ProtonVPN release deb ansible.builtin.file: diff --git a/roles/setup/tasks/remove_ubuntu_banner.yml b/roles/setup/tasks/remove_ubuntu_banner.yml index 1f594ea..3bfa32d 100644 --- a/roles/setup/tasks/remove_ubuntu_banner.yml +++ b/roles/setup/tasks/remove_ubuntu_banner.yml @@ -3,12 +3,15 @@ ansible.builtin.command: mv /etc/apt/apt.conf.d/20apt-esm-hook.conf /etc/apt/apt.conf.d/20apt-esm-hook.conf.bak args: removes: /etc/apt/apt.conf.d/20apt-esm-hook.conf + become: true - name: Create empty Ubuntu Pro banner configuration ansible.builtin.file: path: /etc/apt/apt.conf.d/20apt-esm-hook.conf state: touch + become: true - name: Update apt cache ansible.builtin.apt: - update_cache: yes + update_cache: true + become: true diff --git a/roles/setup/tasks/ripgrep.yml b/roles/setup/tasks/ripgrep.yml new file mode 100644 index 0000000..0df907f --- /dev/null +++ b/roles/setup/tasks/ripgrep.yml @@ -0,0 +1,15 @@ +- name: Download ripgrep deb + ansible.builtin.get_url: + url: https://github.com/BurntSushi/ripgrep/releases/download/14.1.0/ripgrep_14.1.0-1_{{ aarch }}.deb + dest: "/tmp/ripgrep_14.1.0-1_{{ aarch }}.deb" + +- name: Install ripgrep + ansible.builtin.apt: + deb: "/tmp/ripgrep_14.1.0-1_{{ aarch }}.deb" + state: present + become: true + +- name: Remove ripgrep deb + ansible.builtin.file: + path: "/tmp/ripgrep_14.1.0-1_{{ aarch }}.deb" + state: absent diff --git a/roles/setup/tasks/rust.yml b/roles/setup/tasks/rust.yml new file mode 100644 index 0000000..02feca4 --- /dev/null +++ b/roles/setup/tasks/rust.yml @@ -0,0 +1,5 @@ +--- +- name: Install Rust (via rustup) + ansible.builtin.shell: yes | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs + args: + creates: "{{ ansible_env.HOME }}/.cargo/bin/rustc" diff --git a/roles/setup/tasks/snap.yml b/roles/setup/tasks/snap.yml index 93a4835..c8be03f 100644 --- a/roles/setup/tasks/snap.yml +++ b/roles/setup/tasks/snap.yml @@ -1,26 +1,8 @@ --- -- name: Install snap packages - bottom - ansible.general.snap: - name: bottom - state: present - become: true - -- name: Install snap packages - signal-desktop - ansible.general.snap: - name: signal-desktop - state: present - become: true - -- name: Install snap packages - nvim - ansible.general.snap: - name: nvim - classic: true - state: present - become: true - -- name: Install snap packages - zellij - ansible.general.snap: - name: zellij - classic: true +- name: Install snap packages + community.general.snap: + name: "{{ item.name }}" + classic: "{{ item.classic }}" state: present become: true + loop: "{{ snap_tools }}" diff --git a/roles/setup/tasks/starship.yml b/roles/setup/tasks/starship.yml new file mode 100644 index 0000000..74465fe --- /dev/null +++ b/roles/setup/tasks/starship.yml @@ -0,0 +1,5 @@ +--- +- name: Install starship + ansible.builtin.shell: yes | bash -c "curl -sS https://starship.rs/install.sh" + args: + creates: "{{ ansible_env.HOME }}/.config/starship.toml" # Adjust based on where starship installs diff --git a/roles/setup/tasks/starship_eurkey_veracrypt.yml b/roles/setup/tasks/starship_eurkey_veracrypt.yml deleted file mode 100644 index 2e53e13..0000000 --- a/roles/setup/tasks/starship_eurkey_veracrypt.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -- name: Install starship - become: false - ansible.builtin.shell: curl -sS https://starship.rs/install.sh | sh -s -- -y - args: - creates: "{{ ansible_env.HOME }}/.config/starship.toml" # Adjust based on where starship installs - -- name: Download EurKey deb - ansible.builtin.get_url: - url: https://eurkey.steffen.bruentjen.eu/download/debian/eurkey.deb - dest: "/tmp/eurkey.deb" - -- name: Install EurKey - ansible.builtin.apt: - deb: "/tmp/eurkey.deb" - state: present - -- name: Remove EurKey deb - ansible.builtin.file: - path: "/tmp/eurkey.deb" - state: absent - -- name: Download Veracrypt deb - ansible.builtin.get_url: - url: https://launchpad.net/veracrypt/trunk/1.26.14/+download/veracrypt-1.26.14-Debian-12-amd64.deb - dest: "/tmp/veracrypt.deb" - -- name: Install Veracrypt - ansible.builtin.apt: - deb: "/tmp/veracrypt.deb" - state: present - -- name: Remove Veracrypt deb - ansible.builtin.file: - path: "/tmp/veracrypt.deb" - state: absent diff --git a/roles/setup/tasks/veracrypt.yml b/roles/setup/tasks/veracrypt.yml new file mode 100644 index 0000000..15d33e0 --- /dev/null +++ b/roles/setup/tasks/veracrypt.yml @@ -0,0 +1,16 @@ +--- +- name: Download Veracrypt deb + ansible.builtin.get_url: + url: "https://launchpad.net/veracrypt/trunk/1.26.14/+download/veracrypt-1.26.14-Debian-12-{{ aarch }}.deb" + dest: "/tmp/veracrypt.deb" + +- name: Install Veracrypt + ansible.builtin.apt: + deb: "/tmp/veracrypt.deb" + state: present + become: true + +- name: Remove Veracrypt deb + ansible.builtin.file: + path: "/tmp/veracrypt.deb" + state: absent diff --git a/roles/setup/vars/main.yml b/roles/setup/vars/main.yml new file mode 100644 index 0000000..8ac81d1 --- /dev/null +++ b/roles/setup/vars/main.yml @@ -0,0 +1,73 @@ +apt_dependencies: + - ansible + - bat + - build-essential + - cmake + - curl + - doxygen + - eza + - fd-find + - fzf + - gcc + - gettext + - git + - libarchive-tools + - libboost-date-time-dev + - libboost-dev + - libboost-filesystem-dev + - libboost-iostreams-dev + - libboost-python-dev + - libboost-regex-dev + - libboost-system-dev + - libboost-test-dev + - libclang-dev + - libedit-dev + - libgmp3-dev + - libmpfr-dev + - libssl-dev + - luarocks + - npm + - python3-dev + - python3-ipykernel + - python3-pip + - python3-venv + - texinfo + - tzdata + - v4l2loopback-dkms + - xsel + +apt_tools: + - keepassxc + - obs-studio + - p7zip + - pkg-config + - ranger + - tealdeer + - texlive-full + - virtualbox + - wireguard-tools + - zsh + +snap_tools: + - name: "bottom" + classic: false + - name: "signal-desktop" + classic: false + - name: "nvim" + classic: true + - name: "zellij" + classic: true + - name: "jupyterlab-desktop" + classic: true + +nvim_config_path: "~/.config/nvim" + +ledger_repo: "https://github.com/ledger/ledger.git" +ledger_clone_dir: "/opt/ledger" +ledger_binary_path: "/usr/bin/ledger" + +docker: + url: "https://download.docker.com/linux" + apt_release_channel: "stable" + +aarch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"