From a1d26d45e5957195e829da6aad7461ff56ef3063 Mon Sep 17 00:00:00 2001 From: rhamilton Date: Fri, 29 Aug 2025 12:47:44 +0000 Subject: [PATCH] Update playbooks/package_setup.yml --- playbooks/install-essential-tools.yml | 35 ---------------- playbooks/package_setup.yml | 59 +++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 35 deletions(-) delete mode 100644 playbooks/install-essential-tools.yml create mode 100644 playbooks/package_setup.yml diff --git a/playbooks/install-essential-tools.yml b/playbooks/install-essential-tools.yml deleted file mode 100644 index e5d68a7..0000000 --- a/playbooks/install-essential-tools.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -- name: Ensure essential tools are installed on all hosts - hosts: all - become: true - - vars: - # Base tools required everywhere - base_packages: - - curl # used for API calls, downloads - - git # version control / pulling repos - - ca-certificates # ensures HTTPS works - - iproute2 # modern networking tools (ip a, ip r) - - # Extra tools for troubleshooting / convenience - extra_packages: - - jq # parse JSON (docker inspect, APIs) - - htop # friendlier process viewer - - unzip # handle .zip archives - - dnsutils # dig, nslookup - - fzf # fuzzy finder - - tree # visualize directories - - bat # cat with syntax highlighting - - net-tools # old ifconfig, netstat (legacy but familiar) - - tasks: - - name: Install base tools - apt: - name: "{{ base_packages }}" - state: present - update_cache: yes - - - name: Install extra tools - apt: - name: "{{ extra_packages }}" - state: present 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 +