Files
env-ansible/tasks/general/software/packages.yml
T

213 lines
6.6 KiB
YAML

---
# 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:
- "sudo -u {{ user }} rate-mirrors artix | grep -v berkeley | tee /etc/pacman.d/mirrorlist"
- "sudo -u {{ user }} rate-mirrors arch | grep -v berkeley | 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