1.0.7
Packages can now have a global (i.e. system-wide) config defined and applied. If package is missing the config file is deleted. This is helpful for example for Git where we want to define helpful aliases for every logged in user and for tmux where every user should have access to the tmux-resurrect session manager etc.
Role Name
role-common-packages
Description
Installs a smattering of packages into target machines.
Requirements
Currently deals exclusively with Linux machines.
Role Variables
Per defaults/main.yml this role is equipped to deal with Arch Linux and Debian.
packages_linux_common_all_families
: Place package names in this list that are identical across all Linux flavors.packages_linux_common_all_families: - 'git' - 'parted' - 'wget'
packages_linux_common_*
: Add package names to an operating system-specific list if it's unique to that operating system. The asterisk (*
) is a placeholder foransible_facts['os_family'] | lower
. Ifansible_facts['os_family']
equalsDebian
then this becomesdebian
and the list turns intopackages_linux_common_debian
; same forpackages_linux_common_archlinux
etc. Note that for Arch Linux these are official packages only, not packages from the Arch User Repository.packages_linux_common_archlinux: - 'difftastic' - 'eza' - 'openbsd-netcat' packages_linux_common_debian: - 'bind9-dnsutils' - 'unattended-upgrades' - 'xxd'
packages_linux_paru_archlinux
: Add package names to this list that are exclusive to Arch Linux and must be installed from the Arch User Repository (AUR).`packages_linux_paru_archlinux`: - 'downgrade' - 'flent' - 'paccache-hook'
Dependencies
This role depends on the kewlfft.aur Ansible collection to install packages from Arch User Repository on Arch Linux target machines.
Example Playbook
In your playbook.yml
call it like so:
- name: 'Awesome playbook'
hosts: all
roles:
- 'role-common-packages'
License
MIT