153 lines
4.6 KiB
Markdown
153 lines
4.6 KiB
Markdown
This file is used in conjunction with run_once_install_ansible.sh. This file should be placed in the home/.local/dot_bootstrap directory.
|
|
|
|
``` yaml
|
|
- name: Install applications on Ubuntu
|
|
hosts: all
|
|
become: yes
|
|
tasks:
|
|
- name: Update and upgrade apt packages
|
|
apt:
|
|
update_cache: yes
|
|
upgrade: dist
|
|
|
|
# Install APT Applications
|
|
- name: Install Apt packages
|
|
apt:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- curl
|
|
- wget
|
|
- git
|
|
- bat
|
|
- vim
|
|
- zsh
|
|
- build-essential
|
|
- autoconf
|
|
- make
|
|
- libssl-dev
|
|
- ca-certificates
|
|
- htop
|
|
- firefox
|
|
- blender
|
|
- vlc
|
|
- filezilla
|
|
- inotify-tools
|
|
- eza
|
|
- zoxide
|
|
- fzf
|
|
- docker-compose
|
|
|
|
# Installing Flatpak and Applications
|
|
|
|
- name: Install Flatpak applications
|
|
community.general.flatpak:
|
|
name: "{{ item }}" # Use the item from the loop as the Flatpak application name
|
|
state: present
|
|
remote: flathub # Specify the Flathub remote for installation
|
|
# - name: Install Flatpak packages
|
|
# command: "flatpak install {{ item }}" -y
|
|
loop:
|
|
- com.obsproject.Studio
|
|
- org.tenacityaudio.Tenacity
|
|
- md.obsidian.Obsidian
|
|
- org.gimp.GIMP
|
|
- com.github.zadam.trilium
|
|
- com.spotify.Client
|
|
- io.github.shiftey.Desktop
|
|
- com.brave.Browser
|
|
- com.visualstudio.code
|
|
- org.qbittorrent.qBittorrent
|
|
- org.wezfurlong.wezterm
|
|
|
|
register: result # Register the result of the command
|
|
failed_when: result.rc != 0 # Fail if return code is not 0
|
|
retries: 3 # Add retries in case of transient network issues
|
|
delay: 5 # Wait a few seconds between retries
|
|
until: result.rc == 0
|
|
tags: flatpak # Tagging for potential skipping
|
|
|
|
# Install Terraform
|
|
- name: Add HashiCorp GPG key
|
|
ansible.builtin.shell: |
|
|
wget -O- https://apt.releases.hashicorp.com/gpg | \
|
|
gpg --dearmor | \
|
|
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null
|
|
args:
|
|
creates: /usr/share/keyrings/hashicorp-archive-keyring.gpg
|
|
when: ansible_os_family == "Debian" # Only run on Debian-based systems
|
|
|
|
- name: Add HashiCorp APT repository
|
|
ansible.builtin.apt_repository:
|
|
repo: "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com {{ ansible_distribution_release }} main"
|
|
state: present
|
|
filename: hashicorp
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: Update apt cache again after adding repository
|
|
ansible.builtin.apt:
|
|
update_cache: yes
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: Install Terraform
|
|
ansible.builtin.apt:
|
|
name: terraform
|
|
state: present
|
|
when: ansible_os_family == "Debian"
|
|
|
|
# --- Zsh Completion ---
|
|
- name: Install zsh (if not already installed)
|
|
ansible.builtin.apt:
|
|
name: zsh
|
|
state: present
|
|
|
|
# Install flyctl
|
|
- name: Ensure zsh is installed
|
|
ansible.builtin.apt:
|
|
name: zsh
|
|
state: present
|
|
|
|
- name: Download flyctl installation script
|
|
ansible.builtin.get_url:
|
|
url: https://fly.io/install.sh
|
|
dest: /tmp/install.sh
|
|
mode: '0755' # Make the script executable
|
|
|
|
- name: Run flyctl installation script
|
|
ansible.builtin.shell: /tmp/install.sh
|
|
args:
|
|
creates: /usr/local/bin/flyctl # Prevents rerunning if flyctl is already installed
|
|
|
|
|
|
# Install PowerLine10k and Oh-My-Zsh
|
|
|
|
- name: Install Oh My Zsh
|
|
shell: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
args:
|
|
creates: "/home/miker/.oh-my-zsh"
|
|
|
|
- name: Add zsh-autosuggestions plugin
|
|
git:
|
|
repo: 'https://github.com/zsh-users/zsh-autosuggestions.git'
|
|
dest: "/home/miker/.oh-my-zsh/custom/plugins/zsh-autosuggestions"
|
|
depth: 1
|
|
|
|
- name: Add zsh-syntax-highlighting plugin
|
|
git:
|
|
repo: 'https://github.com/zsh-users/zsh-syntax-highlighting.git'
|
|
dest: "/home/miker/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting"
|
|
depth: 1
|
|
|
|
- name: Enable zsh-autosuggestions and zsh-syntax-highlighting plugins
|
|
lineinfile:
|
|
path: "/home/miker/.zshrc"
|
|
regexp: '^plugins=\((.*)\)$'
|
|
line: 'plugins=(git zsh-autosuggestions zsh-syntax-highlighting)' # You can customize the plugins list
|
|
backup: yes
|
|
|
|
# To run - run the following command. ansible-playbook -i inventory install_apps.yml
|
|
|
|
|
|
|
|
|
|
``` |