7c11dcfab2f7c5ad519f697f4c17f5f49dbac140
Role Name
Manage package installation for a number of packages
that sometimes need special handling. Some are built from
source, some are appimages, some are special sources like
cargo, npm, go, etc.
When defining a workstation role, I had a lot of packages that needed special instructions to properly install and use. I decided to simplify the management of those packages by creating a role with special handling.
Included packages:
- Desktop applications: alacritty, firefox, ghostty, kitty, neovide
- Shell applications: btop, carapace, nushell, fzf, jq, neovim, pipx, ripgrep, stow, tmux, zoxide
- Infrastructure applications: ansible, consul, nomad, packer, terraform
- Development tools: cmake, git, go, nodejs, hugo, rust, tidy
- Misc: editorconfig, hashicorp package repository, nerdfonts, pandoc, pytho3-pip, terra repository for fedora, zfs
- Cargo packages: dotenv-linter, eza, htmx-lsp, starship
- Go packages: air, buf, checkmake, glow, lazygit, revive, templ, gopls
- NPM packages: ansible-language-server, commitlint-cli, commitlint-config-conventional, markdownlint-cli, quobix-vacuum, tailwindcss-languageserver
- Pipx packages: cmakelang, sqlfluff
Requirements
Role Variables
- packages:
- List of packages to install
- assume_missing_is_syspkg:
- Bool. Default
true - Handle non-supported packages as package manager packages
- Bool. Default
- full_upgrade:
- Bool. Default
false - Do a full package upgrade first if
true
- Bool. Default
- install_state:
- String. Default
present - Set to
latestto update packages - Set to
absentto remove packages- currently only supports remove package manager installed packages
- Valid choices:
present,latest,absent
- String. Default
- pkgconfig:
- specific configuration for individual packages
Dependencies
Example Playbook
License
MIT
Author Information
- Matthew Stobbs
Description
Ansible role to install various packages used on workstations and servers
https://git.sprouting.cloud/sprouting.cloud/ansible_role_package
Languages
Python
77.2%
Shell
12.2%
Jinja
10.6%