From 596989592033faaffd2f34e6e475e24cf972c656 Mon Sep 17 00:00:00 2001 From: DeveloperDurp Date: Sun, 26 May 2024 07:50:50 -0500 Subject: [PATCH] update ansible files --- .stow-local-ignore | 3 ++ Makefile | 2 + ansible.cfg | 3 ++ .../roles/customize/tasks/defaults.yml | 6 --- .../ansible/roles/customize/tasks/main.yml | 8 ---- .../ansible/roles/customize/vars/defaults.yml | 11 ----- ansible/{.config/ansible => }/local.yml | 3 +- ansible/{.config/ansible => }/requirements.sh | 0 .../roles/customize/files/wallpaper.png | Bin ansible/roles/customize/tasks/defaults.yml | 29 +++++++++++++ ansible/roles/customize/tasks/main.yml | 11 +++++ .../roles/customize/vars/Pop!_OS-22.04.yml | 11 +++++ ansible/roles/packages/tasks/defaults.yml | 8 ++++ ansible/roles/packages/tasks/main.yml | 11 +++++ ansible/roles/packages/vars/Pop!_OS-22.04.yml | 29 +++++++++++++ ansible/scripts/install_apt.yml | 28 +++++++++++++ ansible/scripts/install_brew.yml | 39 ++++++++++++++++++ ansible/scripts/install_flatpak.yml | 22 ++++++++++ ansible/scripts/install_fonts.yml | 23 +++++++++++ inventory | 2 + 20 files changed, 223 insertions(+), 26 deletions(-) create mode 100644 Makefile create mode 100644 ansible.cfg delete mode 100644 ansible/.config/ansible/roles/customize/tasks/defaults.yml delete mode 100644 ansible/.config/ansible/roles/customize/tasks/main.yml delete mode 100644 ansible/.config/ansible/roles/customize/vars/defaults.yml rename ansible/{.config/ansible => }/local.yml (73%) rename ansible/{.config/ansible => }/requirements.sh (100%) rename ansible/{.config/ansible => }/roles/customize/files/wallpaper.png (100%) create mode 100644 ansible/roles/customize/tasks/defaults.yml create mode 100644 ansible/roles/customize/tasks/main.yml create mode 100644 ansible/roles/customize/vars/Pop!_OS-22.04.yml create mode 100644 ansible/roles/packages/tasks/defaults.yml create mode 100644 ansible/roles/packages/tasks/main.yml create mode 100644 ansible/roles/packages/vars/Pop!_OS-22.04.yml create mode 100644 ansible/scripts/install_apt.yml create mode 100644 ansible/scripts/install_brew.yml create mode 100644 ansible/scripts/install_flatpak.yml create mode 100644 ansible/scripts/install_fonts.yml create mode 100644 inventory diff --git a/.stow-local-ignore b/.stow-local-ignore index 90d4055..6a01757 100644 --- a/.stow-local-ignore +++ b/.stow-local-ignore @@ -1 +1,4 @@ ansible +Makefile +ansible.cfg +inventory diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5882864 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +run: + ansible-playbook ./ansible/local.yml -K diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..bd4bd9a --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,3 @@ +[defaults] +localhost_warning=false +inventory = inventory diff --git a/ansible/.config/ansible/roles/customize/tasks/defaults.yml b/ansible/.config/ansible/roles/customize/tasks/defaults.yml deleted file mode 100644 index 1d8fbfc..0000000 --- a/ansible/.config/ansible/roles/customize/tasks/defaults.yml +++ /dev/null @@ -1,6 +0,0 @@ -- name: set gnome config - become_user: user - dconf: - key: "{{ item.key }}" - value: "{{ item.value }}" - with_items: "{{ dconf }}" diff --git a/ansible/.config/ansible/roles/customize/tasks/main.yml b/ansible/.config/ansible/roles/customize/tasks/main.yml deleted file mode 100644 index 826bc2d..0000000 --- a/ansible/.config/ansible/roles/customize/tasks/main.yml +++ /dev/null @@ -1,8 +0,0 @@ -- name: Load a variable file based on the OS type - include_vars: "{{ item }}" - with_first_found: - - "vars/defaults.yml" - -- name: - include_tasks: "defaults.yml" - diff --git a/ansible/.config/ansible/roles/customize/vars/defaults.yml b/ansible/.config/ansible/roles/customize/vars/defaults.yml deleted file mode 100644 index 9c43737..0000000 --- a/ansible/.config/ansible/roles/customize/vars/defaults.yml +++ /dev/null @@ -1,11 +0,0 @@ -dconf: - # - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings', value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"} - # - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding', value: "'t'"} - # - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command', value: "'terminator'"} - # - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name', value: "'Terminator'"} - - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings', value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']"} - - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding', value: "'w'"} - - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command', value: "'flatpak run io.gitlab.librewolf-community'"} - - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name', value: "'Librewolf'"} - - {key: '/org/gnome/desktop/background/picture-uri', value: "'file://${HOME}/.config/ansible/roles/customize/files/wallpaper.png'"} - - {key: '/org/gnome/desktop/background/picture-uri-dark', value: "'file://${HOME}/.config/ansible/roles/customize/files/wallpaper.png'"} diff --git a/ansible/.config/ansible/local.yml b/ansible/local.yml similarity index 73% rename from ansible/.config/ansible/local.yml rename to ansible/local.yml index 804127c..a13b573 100644 --- a/ansible/.config/ansible/local.yml +++ b/ansible/local.yml @@ -1,7 +1,8 @@ ---- - hosts: localhost connection: local + become: true # vars_prompt: roles: + - packages - customize diff --git a/ansible/.config/ansible/requirements.sh b/ansible/requirements.sh similarity index 100% rename from ansible/.config/ansible/requirements.sh rename to ansible/requirements.sh diff --git a/ansible/.config/ansible/roles/customize/files/wallpaper.png b/ansible/roles/customize/files/wallpaper.png similarity index 100% rename from ansible/.config/ansible/roles/customize/files/wallpaper.png rename to ansible/roles/customize/files/wallpaper.png diff --git a/ansible/roles/customize/tasks/defaults.yml b/ansible/roles/customize/tasks/defaults.yml new file mode 100644 index 0000000..316d5c8 --- /dev/null +++ b/ansible/roles/customize/tasks/defaults.yml @@ -0,0 +1,29 @@ +- name: install fonts + include_tasks: "./scripts/install_fonts.yml" + +- name: set gnome config + become_user: user + dconf: + key: "{{ item.key }}" + value: "{{ item.value }}" + with_items: "{{ dconf }}" + when: dconf is defined + +- user: + name: "user" + shell: /usr/bin/zsh + +- name: Create bin folder + become_user: user + ansible.builtin.file: + path: ~/.local/bin + owner: "user" + group: "user" + mode: '0770' + state: directory + +- name: run stow + become_user: user + shell: "stow --adopt ." + args: + chdir: ~/.dotfiles diff --git a/ansible/roles/customize/tasks/main.yml b/ansible/roles/customize/tasks/main.yml new file mode 100644 index 0000000..4a0c004 --- /dev/null +++ b/ansible/roles/customize/tasks/main.yml @@ -0,0 +1,11 @@ +- name: Load a variable file + include_vars: "{{ item }}" + with_first_found: + - "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml" + - "vars/{{ ansible_distribution }}.yml" + - "vars/{{ ansible_os_family }}.yml" + - "vars/defaults.yml" + +- name: + include_tasks: "defaults.yml" + diff --git a/ansible/roles/customize/vars/Pop!_OS-22.04.yml b/ansible/roles/customize/vars/Pop!_OS-22.04.yml new file mode 100644 index 0000000..86494c5 --- /dev/null +++ b/ansible/roles/customize/vars/Pop!_OS-22.04.yml @@ -0,0 +1,11 @@ +dconf: + - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings', value: "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']"} + - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/binding', value: "'t'"} + - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/command', value: "'terminator'"} + - {key: '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/name', value: "'Terminator'"} + - {key: '/org/gnome/desktop/background/picture-uri', value: "'file://${HOME}/.config/ansible/roles/customize/files/wallpaper.png'"} + - {key: '/org/gnome/desktop/background/picture-uri-dark', value: "'file://${HOME}/.config/ansible/roles/customize/files/wallpaper.png'"} + +fonts: + - {name: 'GoMonoNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Go-Mono.zip"} + - {name: 'FiraCodeNerd', url: "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/FiraCode.zip"} diff --git a/ansible/roles/packages/tasks/defaults.yml b/ansible/roles/packages/tasks/defaults.yml new file mode 100644 index 0000000..420adc2 --- /dev/null +++ b/ansible/roles/packages/tasks/defaults.yml @@ -0,0 +1,8 @@ +- name: install apt + include_tasks: "./scripts/install_apt.yml" + +- name: install flatpak + include_tasks: "./scripts/install_flatpak.yml" + +- name: install brew + include_tasks: "./scripts/install_brew.yml" diff --git a/ansible/roles/packages/tasks/main.yml b/ansible/roles/packages/tasks/main.yml new file mode 100644 index 0000000..4a0c004 --- /dev/null +++ b/ansible/roles/packages/tasks/main.yml @@ -0,0 +1,11 @@ +- name: Load a variable file + include_vars: "{{ item }}" + with_first_found: + - "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml" + - "vars/{{ ansible_distribution }}.yml" + - "vars/{{ ansible_os_family }}.yml" + - "vars/defaults.yml" + +- name: + include_tasks: "defaults.yml" + diff --git a/ansible/roles/packages/vars/Pop!_OS-22.04.yml b/ansible/roles/packages/vars/Pop!_OS-22.04.yml new file mode 100644 index 0000000..7eced8d --- /dev/null +++ b/ansible/roles/packages/vars/Pop!_OS-22.04.yml @@ -0,0 +1,29 @@ +install_homebrew_if_missing: true + +required_packages_brew: + - lazygit + - fzf + - glab + - go + - neovim + - oh-my-posh + - tpm + - terraform + - kubernetes-cli + - zsh-autosuggestions + +apt_keys: + - https://packages.microsoft.com/keys/microsoft.asc +apt_repo: + - deb [arch=amd64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main + +required_packages_apt: + - powershell + - curl + +flatpak_remote: + - {name: 'flathub', url: "https://dl.flathub.org/repo/flathub.flatpakrepo"} + +required_packages_flatpak: + - VSCodium + diff --git a/ansible/scripts/install_apt.yml b/ansible/scripts/install_apt.yml new file mode 100644 index 0000000..aafc790 --- /dev/null +++ b/ansible/scripts/install_apt.yml @@ -0,0 +1,28 @@ +- name: add apt repository key + apt_key: + url: "{{ item }}" + with_items: "{{ apt_keys }}" + become: yes + when: apt_keys is defined + +- name: add apt repository + apt_repository: + repo: "{{ item }}" + with_items: "{{ apt_repo }}" + become: yes + when: apt_repo is defined + +- name: Upgrade Packages + package: + update_cache: yes + upgrade: safe + become: yes + when: required_packages_apt is defined + +- name: Install Packages + apt: + state: latest + update_cache: yes + pkg: "{{ required_packages_apt }}" + become: yes + when: required_packages_apt is defined diff --git a/ansible/scripts/install_brew.yml b/ansible/scripts/install_brew.yml new file mode 100644 index 0000000..3935086 --- /dev/null +++ b/ansible/scripts/install_brew.yml @@ -0,0 +1,39 @@ +- name: Ensuring Homebrew Is Installed + stat: + path: /home/linuxbrew/.linuxbrew/bin/ + register: homebrew_check + +- name: Fail If Homebrew Is Not Installed and install_homebrew_if_missing Is False + fail: + msg: Homebrew is missing, install from http://brew.sh + when: + - not homebrew_check.stat.exists + - not install_homebrew_if_missing + +- name: Installing Homebrew + become_user: user + shell: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + when: + - not homebrew_check.stat.exists + - install_homebrew_if_missing + +- name: Install Brew Taps + become_user: user + community.general.homebrew_tap: + name: "{{ item }}" + with_items: "{{ required_taps }}" + when: required_taps is defined + +- name: Install Brew Casks + become_user: user + community.general.homebrew_cask: + name: "{{ item }}" + with_items: "{{ required_packages_casks }}" + when: required_packages_casks is defined + +- name: Install Brew Packages + become_user: user + community.general.homebrew: + name: "{{ item }}" + with_items: "{{ required_packages_brew }}" + when: required_packages_brew is defined diff --git a/ansible/scripts/install_flatpak.yml b/ansible/scripts/install_flatpak.yml new file mode 100644 index 0000000..838d26d --- /dev/null +++ b/ansible/scripts/install_flatpak.yml @@ -0,0 +1,22 @@ +- name: configure flatpak + become_user: user + community.general.flatpak_remote: + name: "{{ item.name }}" + state: present + flatpakrepo_url: "{{ item.url }}" + with_items: "{{ flatpak_remote }}" + when: flatpak_remote is defined + +- name: update flatpaks + become_user: user + shell: + cmd: flatpak update --noninteractive + when: required_packages_flatpak is defined + +- name: install flatpak + become_user: user + community.general.flatpak: + name: "{{ item }}" + with_items: "{{ required_packages_flatpak }}" + when: required_packages_flatpak is defined + ignore_errors: yes diff --git a/ansible/scripts/install_fonts.yml b/ansible/scripts/install_fonts.yml new file mode 100644 index 0000000..baa29f5 --- /dev/null +++ b/ansible/scripts/install_fonts.yml @@ -0,0 +1,23 @@ +- name: ensure fonts directory + become_user: user + file: + path: "~/.fonts" + state: directory + when: fonts is defined + +- name: Ensuring Fonts Exists + become_user: user + shell: "ls ~/.fonts/*{{ item.name }}*" + register: fonts_exist + ignore_errors: yes + with_items: "{{ fonts }}" + when: fonts is defined + +- name: Download Fonts + when: fonts_exist is failed + become_user: user + ansible.builtin.unarchive: + src: "{{ item.url }}" + dest: "~/.fonts/" + remote_src: yes + with_items: "{{ fonts }}" diff --git a/inventory b/inventory new file mode 100644 index 0000000..1ec616d --- /dev/null +++ b/inventory @@ -0,0 +1,2 @@ +[defaults] +localhost ansible_connection=local