--- # Cross-platform package management. - name: General | Software | Packages | Fix Parrot OS block: - name: General | Software | Packages | Fix Parrot OS | zypper # They have zypper higher in the path, but it's really apt renamed. # Probably for "security", but package module does not use the ansible_pkg_mgr variable # so resetting the value to apt doesn't work. Just going to move it. ansible.builtin.shell: "mv `which zypper` `which zypper`.zz.`date +%Y%m%d`" register: parrotos_zypper_removed changed_when: parrotos_zypper_removed.rc == 0 ignore_errors: true - name: General | Software | Packages | Fix Parrot OS | zypper | Exit Incoming ansible.builtin.debug: msg: "A silly zypper file was renamed successfully. Please try running Ansible again." when: parrotos_zypper_removed is defined and not parrotos_zypper_removed.failed - name: General | Software | Packages | Fix Parrot OS | zypper | Exiting ansible.builtin.shell: exit 1 register: shell_check changed_when: shell_check.rc == 0 when: parrotos_zypper_removed is defined and not parrotos_zypper_removed.failed # More Parrot OS junk. They have a command called update in /usr/bin. Doesn't # have sudo or anything in it. Hide it in preference for .bashrc update function. - name: General | Software | Packages | Fix Parrot OS | update ansible.builtin.shell: "mv `which update` `which update`.zz.`date +%Y%m%d`" register: shell_check changed_when: shell_check.rc == 0 ignore_errors: true when: ansible_distribution == "Parrot OS" - name: General | Software | Packages | pacman block: - name: General | Software | Packages | pacman | pacman.conf ansible.builtin.lineinfile: path: "/etc/pacman.conf" regexp: '{{ item.key }}' line: '{{ item.value }}' state: present create: true backup: true mode: "0644" loop: - { "key": '^[\#]?ParallelDownloads', "value": 'ParallelDownloads = 3'} # TBD / TODO: Do the mirrorlist files and distros based on facts in case ever using Arch, Manjaro, etc. # Same with the blocklist for sites like Berkeley which rate limit VPNs. - name: General | Software | Packages | pacman | Artix block: - name: General | Software | Packages | pacman | Artix | rate-mirrors | Install ansible.builtin.package: name: - rate-mirrors state: present - name: General | Software | Packages | pacman | Artix | rate-mirrors | Update Lists ansible.builtin.shell: | set -o pipefail "{{ item }}" register: shell_check changed_when: shell_check.rc == 0 loop: - "rate-mirrors artix | grep -v berkeley | sudo tee /etc/pacman.d/mirrorlist" - "rate-mirrors arch | grep -v berkeley | sudo tee /etc/pacman.d/mirrorlist-arch" when: ansible_service_mgr == "runit" when: ansible_pkg_mgr == "pacman" - name: General | Software | Packages | Cache Refresh (Apt and Pacman) ansible.builtin.package: update_cache: true name: htop when: ansible_pkg_mgr in ["apt", "pacman"] - name: General | Software | Packages | Cache Refresh (FreeBSD) ansible.builtin.shell: pkg update register: shell_check changed_when: shell_check.rc == 0 when: ansible_system == "FreeBSD" - name: General | Software | Packages | Install Software ansible.builtin.package: name: - bash - sudo - nmap - "{{ neofetch }}" - "{{ sshfs }}" - "{{ locate }}" - zsh - "{{ opensshd }}" - "{{ tar }}" - curl - at - gcc - vim - "{{ cron }}" - "{{ encfs }}" - rsync - "{{ iftop }}" - "{{ nethogs }}" - "{{ ntp_server }}" - "{{ dig }}" - "{{ tmux }}" - "{{ base_devel }}" - "{{ sendmail }}" - "{{ sendmail_mta }}" - "{{ ca_certificates }}" - "{{ alsa }}" - "{{ stress }}" - "{{ jq }}" - "{{ btop }}" - "{{ xkb }}" state: present - name: General | Software | Packages | Install Software (DEV) ansible.builtin.package: name: - "{{ microcode_amd }}" - "{{ microcode_intel }}" state: present when: branch == "dev" ignore_errors: true - name: General | Software | Packages | Add Generic Kernel + Tools (Ubuntu) ansible.builtin.package: name: - linux-image-generic - linux-headers-generic - linux-tools-generic - linux-tools-common state: present when: ansible_distribution == "Ubuntu" ignore_errors: true - name: General | Software | Packages | Add Generic Kernel + Headers (Debian) ansible.builtin.package: name: - linux-image-amd64 - linux-headers-amd64 state: present when: ansible_distribution == "Debian" ignore_errors: true - name: General | Software | Packages | Install killall (Looking at you, Debian) ansible.builtin.package: name: psmisc state: present when: ansible_distribution == "Debian" - name: General | Software | Packages | Install "Bloat" (Looking at you, Arch Base) ansible.builtin.package: name: - which - "{{ cron }}" - pacman-contrib state: present when: ansible_pkg_mgr == "pacman" - name: General | Software | Packages | Install Fix (Looking at you, openSUSE) ansible.builtin.package: name: # openSUSE Tumbleweed comes without gnome-control-center being able to open # properly. Hopefully just a one-time accident but I wanted bleeding edge so I # guess I got it! Luckily was easy to figure out based on CLI error on launch. - libvulkan1 # Provides c99 used to compile ST for DWM. - posix_cc state: present when: ansible_pkg_mgr in ("zypper") - name: General | Software | Packages | Remove Software ansible.builtin.package: name: - cowsay # Sorry ;) - chromium - chromium-browser state: absent # Ubuntu still uses snap for critical components like GNOME, must keep. - name: General | Software | Packages | Disable Snap Daemon ansible.builtin.service: name: snapd pattern: snapd state: stopped enabled: false when: ansible_distribution != "Ubuntu" ignore_errors: true - name: General | Software | Packages | Remove Snap (Besides Ubuntu) ansible.builtin.package: name: - snapd state: absent when: ansible_distribution != "Ubuntu" ignore_errors: true - name: General | Software | Packages | Other Debian Packages ansible.builtin.package: name: - usbutils state: present when: ansible_distribution in ("Debian") ignore_errors: true