2025-01-25 17:39:49 -07:00
2025-01-17 13:50:08 -07:00
2025-01-24 23:23:24 -07:00
2025-01-17 13:50:08 -07:00
2025-01-21 17:18:35 -07:00
2025-01-25 17:39:49 -07:00
2025-01-17 13:50:08 -07:00
2025-01-25 17:39:49 -07:00
2025-01-24 23:23:24 -07:00
2025-01-24 23:23:24 -07:00

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
  • full_upgrade:
    • Bool. Default false
    • Do a full package upgrade first if true
  • install_state:
    • String. Default present
    • Set to latest to update packages
    • Set to absent to remove packages
      • currently only supports remove package manager installed packages
    • Valid choices: present, latest, absent
  • 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
Readme 1.4 MiB
Languages
Python 77.2%
Shell 12.2%
Jinja 10.6%