fixing packages for new style

This commit is contained in:
Matthew Stobbs
2025-02-19 22:23:47 -07:00
parent 89f013bac9
commit 48e67be99b
17 changed files with 152 additions and 172 deletions

View File

@@ -0,0 +1,29 @@
# vim: set filetype=yaml.ansible :
---
- name: Linux installation
when: ansible_system == 'Linux'
block:
- name: Create nerdfonts directories
become: "{{ ext_become }}"
loop: "{{ nerdfonts.fonts }}"
loop_control:
loop_var: font
register: nerdfont_result
ansible.builtin.file:
path: "{{ nerdfonts.install_path }}/{{ font }}"
state: directory
mode: '0755'
- name: Download and extract nerdfonts
when:
- nerdfont_result is changed or
nerdfonts.force_install
become: "{{ ext_become }}"
loop: "{{ nerdfonts.fonts }}"
loop_control:
loop_var: font
ansible.builtin.unarchive:
creates: "{{ nerdfonts.install_path }}/{{ font }}/README.md"
src: "{{ nerdfonts.base_url }}/{{ font }}.tar.xz"
dest: "{{ nerdfonts.install_path }}/{{ font }}"
remote_src: true

View File

@@ -1,7 +1,12 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
install_prefix: "{{ default_install_prefix }}" - name: Set bitwarden install method
install_method: flatpak ansible.builtin.set_fact:
dobecome: true bw:
owner: root method: "{{ pkgconfig.bitwarden.method[ansible_distribution] | default('appimage') }}"
group: root
- name: Set bitwarden config
ansible.builtin.set_fact:
bw:
pkg: "{{ pkgconfig.bitwarden[bw.method] }}"
method: "{{ bw.method }}"

View File

@@ -1,10 +1,15 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
install: - name: Set facts for nerdfonts
ansible.builtin.set_fact:
nerdfonts:
fonts:
- CascadiaCode - CascadiaCode
- FiraCode - FiraCode
- Hasklig - Hasklig
- Lilex - Lilex
- Monoid - Monoid
- NerdFontsSymbolsOnly - NerdFontsSymbolsOnly
system_install: false install_path: "{{ path_prefix }}/{{ pkgconfig.nerdfonts.path }}"
base_url: "{{ pkgconfig.nerdfonts.base_url }}"
force_install: "{{ pkgconfig.force_install_nerdfonts | default(false) }}"

24
tasks/config/zfs.yml Normal file
View File

@@ -0,0 +1,24 @@
---
- name: Set zfs facts for RedHat based distros
when:
- ansible_os_family == 'RedHat'
block:
- name: Set distro name
ansible.builtin.set_fact:
rhname: "{%if ansible_distribution == 'Fedora' %}fedora{% else %}epel{% endif %}"
- name: Get rpm_dist for RedHat
changed_when: false
register: rpm_dist
ansible.builtin.command: # is there a better way to get this?
cmd: rpm --eval "%{dist}"
- name: Set ZFS config
ansible.builtin.set_fact:
zfs:
repo_pkg: "{{ pkgconfig.zfs.repo_base }}/{{ rhname }}/zfs-release-{{ pkgconfig.zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm"
deps: "{{ pkgconfig.zfs.build_deps[ansible_os_family] }}"
pkgs: "{{ pkgconfig.zfs.pkgs[ansible_os_family] }}"
release: "{{ ansible_distribution_release }}"
gpg_key: "{{ pkgconfig.zfs.gpg_key }}"
gpg_fp: "{{ pkgconfig.zfs.gpg_key_fingerprint }}"

View File

@@ -2,31 +2,31 @@
--- ---
- name: Set facts for installation - name: Set facts for installation
ansible.builtin.set_fact: ansible.builtin.set_fact:
ext_become: "{{ not use_local }}" # if use_local is true, don't use sudo for external packages ext_become: "{{ not use_local }}"
path_prefix: "{% if use_local %}{{ lookup(ansible.builtin.env, 'HOME') }}{% else %}{{ defaults.path.prefix }}{% endif %}" path_prefix: "{% if use_local %}{{ lookup('ansible.builtin.env', 'HOME') }}/.local{% else %}{{ defaults.path.prefix }}{% endif %}"
- name: Set Linux specific facts - name: Set Linux specific facts
when: when:
- ansible_system == 'Linux' - ansible_system == 'Linux'
ansible.builtin.set_fact: ansible.builtin.set_fact:
app_images: [] # app_images to install flatpak_remote: # flatpak remotes, includes flathub by default
flatpak_method: "{% if use_local %}user{% else %}system{% endif %}"
flatpak_remotes: # flatpak remotes, includes flathub by default
- name: flathub - name: flathub
url: https://dl.flathub.org/repo/flathub.flatpakrepo url: https://dl.flathub.org/repo/flathub.flatpakrepo
flatpaks: [] # flatpak packages to install flatpak_method: "{% if use_local %}user{% else %}system{% endif %}"
snap_pkgs: [] # snpacraft.io packages pkg_appimage: [] # app_images to install
pkg_flatpak: [] # flatpak packages to install
pkg_snap: [] # snpacraft.io packages
sys_pkg_become: true # Linux package managers require sudo access sys_pkg_become: true # Linux package managers require sudo access
- name: Set macOS specific facts - name: Set macOS specific facts
when: when:
- ansible_distribution == 'MacOSX' - ansible_distribution == 'MacOSX'
ansible.builtin.set_fact: ansible.builtin.set_fact:
brew_taps: [] # homebrew taps to add brewtap: [] # homebrew taps to add
cask_pkgs: [] # homebrew casks
pipx_exec: "/opt/homebrew/bin/pipx" pipx_exec: "/opt/homebrew/bin/pipx"
pkg_cask: [] # homebrew casks
pkg_tap: [] # homebrew tap packages
sys_pkg_become: false # homebrew doesn't require sudo access sys_pkg_become: false # homebrew doesn't require sudo access
tap_pkgs: [] # homebrew tap packages
- name: Set paths - name: Set paths
ansible.builtin.set_fact: ansible.builtin.set_fact:
@@ -40,10 +40,10 @@
- name: Set OS independant facts - name: Set OS independant facts
ansible.builtin.set_fact: ansible.builtin.set_fact:
archive_pkgs: [] # packages installed via prebuilt archive pkg_archive: [] # packages installed via prebuilt archive
cargo_pkgs: [] # rust packages from cargo pkg_cargo: [] # rust packages from cargo
go_pkgs: [] # go applications pkg_go: [] # go applications
npm_pkgs: [] # npm commands pkg_npm: [] # npm commands
pipx_pkgs: [] # pipx packages pkg_pipx: [] # pipx packages
src_pkgs: [] # packages built from source pkg_src: [] # packages built from source
sys_pkgs: [] # system package manager packages, homebrew on macOS, dnf for RedHat based, apt for Debian Based pkg_sys: [] # system package manager packages, homebrew on macOS, dnf for RedHat based, apt for Debian Based

View File

@@ -16,3 +16,4 @@
- name: Workaround to install homebrew taps - name: Workaround to install homebrew taps
ansible.builtin.command: ansible.builtin.command:
cmd: "brew install {{ (tap_pkgs | unique) | join(' ') }}" cmd: "brew install {{ (tap_pkgs | unique) | join(' ') }}"
changed_when: true

View File

@@ -83,11 +83,6 @@
file: go.yml file: go.yml
- name: Install local npm packages - name: Install local npm packages
become: "{% if ansible_system == 'Linux' %}true{% else %}false{% endif %}"
community.general.npm:
global: true
name: "{{ npmpkg }}"
state: latest
loop: "{{ npmpkgs | unique }}" loop: "{{ npmpkgs | unique }}"
loop_control: loop_control:
loop_var: pkg loop_var: pkg

View File

@@ -1,48 +1,19 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: Read bitwarden configuration
ansible.builtin.include_vars:
file: bitwarden.yml
name: _bitwarden
- name: Set bitwarden configuration
ansible.builtin.set_fact:
pkgconfig_bitwarden: "{{ _bitwarden | ansible.builtin.combine(pkgconfig.bitwarden) }}"
- name: Set bitwarden facts
ansible.builtin.set_fact:
bw:
appimg: "{{ pkgconfig_bitwarden.appimage }}"
become: "{{ pkgconfig_bitwarden.dobecome }}"
flatpak: "{{ pkgconfig_bitwarden.flatpak }}"
group: "{{ pkgconfig_bitwarden.group }}"
instdir: "{{ pkgconfig_bitwarden.install_dir }}"
instmtd: "{{ pkgconfig_bitwarden.install_method }}"
bindir: "{{ pkgconfig_bitwarden.install_prefix }}/bin"
owner: "{{ pkgconfig_bitwarden.owner }}"
- name: Append to flatpkgs - name: Append to flatpkgs
when: when:
- ansible_os_family != 'Darwin' - bw.method == 'flatpak'
- bw.instmtd == 'flatpak'
block:
- name: Ensure flatpak runtime activated
ansible.builtin.include_tasks:
file: pkgs/flatpak.yml
when: flatpak is undefined
- name: Append to flatpkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
flatpkgs: "{{ flatpkgs + [bw.flatpak] }}" pkg_flatpak: "{{ pkg_flatpak + [bw.pkg] }}"
- name: Append to srcpkgs - name: Append to srcpkgs
when: when:
- ansible_os_family != 'Darwin' - bw.method == 'appimage'
- bw.instmtd == 'appimage'
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ appimages + ['bitwarden'] }}" pkg_appimage: "{{ pkg_appimage + [bw.pkg] }}"
- name: Append to caskpkgs - name: Append to caskpkgs
when: ansible_os_family == 'Darwin' when:
- bw.method == 'brew'
ansible.builtin.set_fact: ansible.builtin.set_fact:
caskpkgs: "{{ caskpkgs + ['bitwarden'] }}" pkg_cask: "{{ pkg_cask + [bw.pkg.name] }}"

View File

@@ -1,5 +1,5 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: append to syspkgs - name: Append to pkg_sys
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + pkgconfig.fd.pkg[ansible_os_family] }}" pkg_sys: "{{ pkg_sys + pkgconfig.fd.pkg[ansible_os_family] }}"

View File

@@ -1,5 +1,5 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: append to syspkgs - name: Append to pkg_sys
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + [ 'hyperfine' ] }}" pkg_sys: "{{ pkg_sys + ['hyperfine'] }}"

View File

@@ -1,20 +1,14 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- ansible.builtin.include_vars: - name: Append to srcpkgs
file: nerdfonts.yml
name: _nerdfonts
- ansible.builtin.set_fact:
pkgconfig_nerdfonts: "{{ _nerdfonts | ansible.builtin.combine(pkgconfig.nerdfonts) }}"
- name: append to srcpkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
srcpkgs: "{{ srcpkgs + [ 'nerdfonts' ] }}" pkg_archive: "{{ pkg_archive + ['nerdfonts'] }}"
when: ansible_system == 'Linux' when: ansible_system == 'Linux'
- name: append to caskpkgs - name: Append to caskpkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
caskpkgs: "{{ caskpkgs + [ pkgconfig_nerdfonts.fonts[font].brew ] }}" pkg_cask: "{{ pkg_cask + [nerdfonts.fonts[font].brew] }}"
loop: "{{ pkgconfig_nerdfonts.install }}" loop: "{{ nerdfonts.fonts }}"
loop_control: loop_control:
loop_var: font loop_var: font
when: ansible_system == 'Darwin' when: ansible_system == 'Darwin'

View File

@@ -1,5 +1,5 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: append to pkgs - name: Append to pkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + [ 'stow' ] }}" pkg_sys: "{{ pkg_sys + [ 'stow' ] }}"

View File

@@ -1,68 +1,55 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: Linux based installation - name: Linux based installation
when:
- ansible_os_family != 'Darwin'
block: block:
- name: RedHat based configuration - name: RedHat based configuration
when:
- ansible_os_family == 'RedHat'
block: block:
- ansible.builtin.set_fact: - name: Add openzfs gpg_key
rhname: "{%if ansible_distribution == 'Fedora' %}fedora{% else %}epel{% endif %}" become: "{{ sys_pkg_become }}"
- ansible.builtin.command:
cmd: rpm --eval "%{dist}"
register: rpm_dist
- name: add openzfs gpg_key
ansible.builtin.rpm_key: ansible.builtin.rpm_key:
key: "{{ pkgconfig.zfs.gpg_key }}" key: "{{ zfs.gpg_key }}"
fingerprint: "{{ pkgconfig.zfs.gpg_key_fingerprint }}" fingerprint: "{{ zfs.gpg_fp }}"
state: present state: present
become: true
- name: enable openzfs repository - name: Enable openzfs repository
become: "{{ sys_pkg_become }}"
ansible.builtin.dnf: ansible.builtin.dnf:
name: "{{ pkgconfig.zfs.repo_base }}{{ rhname }}/zfs-release-{{ pkgconfig.zfs[rhname].release }}{{ rpm_dist.stdout }}.noarch.rpm" name: "{{ zfs.repo_pkg }}"
state: "{{ install_state }}" state: present
become: true
- name: install zfs deps
ansible.builtin.set_fact:
syspkgs: "{{ pkgconfig.zfs.deps[ansible_os_family] }}"
when: ansible_os_family == 'RedHat'
- name: Debian configuration - name: Debian configuration
when: ansible_os_family == 'Debian' when: ansible_os_family == 'Debian'
block: block:
- name: enable openzfs repository - name: Enable openzfs repository
become: "{{ sys_pkg_become }}"
ansible.builtin.apt_repository: ansible.builtin.apt_repository:
repo: | repo: |
deb http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main contrib deb http://deb.debian.org/debian {{ zfs.release }}-backports main contrib
deb-src http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main contrib deb-src http://deb.debian.org/debian {{ zfs.release }}-backports main contrib
filename: "{{ ansible_distribution_release }}-backports" filename: "{{ zfs.release }}-backports"
state: present state: present
update_cache: false update_cache: false
become: true
- name: pin zfs package to backports - name: Pin zfs package to backports
become: "{{ sys_pkg_become }}"
ansible.builtin.file: ansible.builtin.file:
content: | content: |
Package: src:zfs-linux Package: src:zfs-linux
Pin: release n={{ ansible_distribution_release }}-backports Pin: release n={{ zfs.release }}-backports
Pin-Priority: 990 Pin-Priority: 990
dest: /etc/apt/preferences.d/90_zfs dest: /etc/apt/preferences.d/90_zfs
state: present state: present
become: true mode: '0644'
- name: install zfs deps - name: Append to pkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ pkgconfig.zfs.deps[ansible_os_family] }}" pkg_sys: "{{ pkg_sys + zfs.deps + zfs.pkgs }}"
become: true
- name: append to pkgs - name: Append to caskpkgs
ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + pkgconfig.zfs.pkgs[ansible_os_family] }}"
become: true
when: ansible_os_family != 'Darwin'
- name: append to caskpkgs
ansible.builtin.set_fact:
caskpkgs: "{{ caskpkgs + [ 'openzfs' ] }}"
when: ansible_os_family == 'Darwin' when: ansible_os_family == 'Darwin'
ansible.builtin.set_fact:
pkg_cask: "{{ pkg_cask + ['openzfs'] }}"

View File

@@ -1,10 +1,5 @@
# vim: set filetype=yaml.ansible : # vim: set filetype=yaml.ansible :
--- ---
- name: append to pkgs - name: Append to pkgs
ansible.builtin.set_fact: ansible.builtin.set_fact:
syspkgs: "{{ syspkgs + [ 'zsh' ] }}" pkg_sys: "{{ pkg_sys + ['zsh'] }}"
when: ansible_os_family != 'Darwin'
- debug:
msg: "macOS already has zsh, skipping"
when: ansible_os_family == 'Darwin'

View File

@@ -1,37 +0,0 @@
# vim: set filetype=yaml.ansible :
# Install nerdfonts for each platform
---
- name: linux installation
when: ansible_system == 'Linux'
block:
- name: set install path for non-system installs
ansible.builtin.set_fact:
nerdfonts_install_path: "{{ lookup('ansible.builtin.env', 'HOME') }}/.local/share/fonts"
when: not pkgconfig_nerdfonts.system_install
- name: set install path for system wide installs
ansible.builtin.set_fact:
nerdfonts_install_path: "/usr/local/share/fonts"
when: pkgconfig_nerdfonts.system_install
- name: create nerdfonts directories
ansible.builtin.file:
path: "{{ nerdfonts_install_path }}/{{ font }}"
state: directory
become: "{{ pkgconfig_nerdfonts.system_install }}"
loop: "{{ pkgconfig_nerdfonts.install }}"
loop_control:
loop_var: font
register: nerdfont_result
- name: Download and extract nerdfonts
ansible.builtin.unarchive:
creates: "{{ nerdfonts_install_path }}/{{ font }}/README.md"
src: "{{ pkgconfig_nerdfonts.base_url }}/{{ font }}.tar.xz"
dest: "{{ nerdfonts_install_path }}/{{ font }}"
remote_src: true
when: nerdfont_result is changed
become: "{{ pkgconfig_nerdfonts.system_install }}"
loop: "{{ pkgconfig_nerdfonts.install }}"
loop_control:
loop_var: font

View File

@@ -5,3 +5,13 @@ bitwarden:
appimage: appimage:
name: bitwarden.appimage name: bitwarden.appimage
url: https://vault.bitwarden.com/download/?app=desktop&platform=linux&variant=appimage url: https://vault.bitwarden.com/download/?app=desktop&platform=linux&variant=appimage
snap:
name: bitwarden
brew:
name: bitwarden
method:
RedHat: appimage
Debian: appimage
Fedora: flatpak
Ubuntu: snap
MacOSX: brew

View File

@@ -137,3 +137,4 @@ nerdfonts:
ZedMono: ZedMono:
brew: font-zed-mono-nerd-font brew: font-zed-mono-nerd-font
base_url: https://github.com/ryanoasis/nerd-fonts/releases/latest/download base_url: https://github.com/ryanoasis/nerd-fonts/releases/latest/download
path: share/fonts