From 95d24b2306be8659230dff1f9d0f7972dca87d17 Mon Sep 17 00:00:00 2001 From: Ryan Hamilton Date: Sat, 30 Aug 2025 04:36:58 +0000 Subject: [PATCH] Add playbooks/package_setup.yml --- playbooks/package_setup.yml | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 playbooks/package_setup.yml diff --git a/playbooks/package_setup.yml b/playbooks/package_setup.yml new file mode 100644 index 0000000..d8c3c02 --- /dev/null +++ b/playbooks/package_setup.yml @@ -0,0 +1,59 @@ +--- +- name: Baseline essentials for Docker hosts + hosts: all + become: true + + vars: + # --- Feature toggles (override in Semaphore extra vars) --- + enable_install_base: true # core tools everywhere + enable_install_extras: true # QoL/debug tools + enable_remove_packages: true # remove legacy/bloat + + # --- Packages --- + base_packages: + - curl # HTTP CLI + - git # pull repos + - jq # parse JSON (docker inspect, APIs) + - ca-certificates # TLS roots for HTTPS + - iproute2 # modern net tools (ip, ss, etc.) + - acl # file ACL support (setfacl/getfacl) + + extra_packages: + - fzf # fuzzy finder (your new favorite) + - dnsutils # dig/nslookup + - htop # nicer top + - unzip # handle .zip archives + - bat # prettier cat + - tree # directory view + - bash-completion # tab completion goodness + + absent_packages: + - net-tools # ifconfig/netstat (prefer iproute2) + - snapd # don't want snaps + - apport # crash reporter + + tasks: + - name: Install base packages + apt: + name: "{{ base_packages }}" + state: present + update_cache: yes + when: enable_install_base + + - name: Install extra packages + apt: + name: "{{ extra_packages }}" + state: present + when: + - enable_install_extras + - extra_packages | length > 0 + + - name: Remove unwanted packages + apt: + name: "{{ absent_packages }}" + state: absent + purge: yes + when: + - enable_remove_packages + - absent_packages | length > 0 +