env-ansible/facts/general/package.yml
Chad 5dea8472b0
Hotfix for RC Files (#53)
* Remove ending ampersands, causes error loading script.

* Also remove ampersands for firmware updater, unnecessary.
2024-09-23 17:21:08 -07:00

270 lines
8.6 KiB
YAML

---
# Define program names for package builtin.
# This file is for ALL systems and should not include UI components.
- name: General | Facts | Packages | Shared Defaults
set_fact:
sshfs: sshfs
tar: tar
- name: General | Facts | Packages | Parrot OS Fixes
set_fact:
ansible_pkg_mgr: "apt"
ansible_python_interpreter: "/usr/bin/python3"
when: ansible_distribution == "Parrot OS"
- name: General | Facts | Package | apt
set_fact:
locate: locate
opensshd: openssh-server
microcode_amd: amd64-microcode
microcode_intel: intel-microcode
cron: cron
encfs: encfs
when: ansible_pkg_mgr == "apt"
- name: General | Facts | Package | pacman
set_fact:
locate: mlocate
opensshd: openssh
microcode_amd: linux-firmware
microcode_intel: intel-ucode
cron: cronie
encfs: encfs
when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Package | FreeBSD
set_fact:
sshfs: fusefs-sshfs
locate: htop # Placeholder to prevent errors, locate built into FreeBSD.
opensshd: htop # sshd comes installed on FreeBSD
ansible_python_interpreter: "/usr/local/bin/python3.8"
tar: htop # tar already provided in FreeBSD
microcode_amd: htop # TODO
microcode_intel: htop # TODO
encfs: fusefs-encfs
when: ansible_system == "FreeBSD"
- name: General | Facts | Package | dnf
set_fact:
sshfs: fuse-sshfs
locate: mlocate
opensshd: openssh
microcode_amd: microcode_ctl
microcode_intel: microcode_ctl
cron: cronie
encfs: fuse-encfs
when: ansible_pkg_mgr == "dnf"
- name: General | Facts | Package | zypper
set_fact:
locate: plocate
opensshd: openssh
microcode_amd: ucode-amd
microcode_intel: ucode-intel
cron: cronie
encfs: encfs
when: ansible_pkg_mgr == "zypper"
- name: General | Facts | Package | Update Command | Helpers
set_fact:
update_accept_var: '$accept'
nix_days: 14
ansible_distribution_file: "{{ prov_dir }}/ansible_distribution.txt"
ansible_pkg_mgr_file: "{{ prov_dir }}/ansible_pkg_mgr.txt"
- name: General | Facts | Package | Update Command | Helpers | pacman
set_fact:
update_accept_var: '--noconfirm'
when: ansible_pkg_mgr == "pacman"
- name: General | Facts | Package | Update Command | Store Variables
shell: "{{ item }}"
loop:
- "echo '{{ ansible_distribution }}' > {{ ansible_distribution_file }}"
- "echo '{{ ansible_pkg_mgr }}' > {{ ansible_pkg_mgr_file }}"
- name: General | Facts | Package | Update Command
set_fact:
update_package_manager: |
distribution="`cat {{ ansible_distribution_file }}`"
pkg_mgr="`cat {{ ansible_pkg_mgr_file }}`"
case $pkg_mgr in
apt)
if [[ $distribution != "ParrotOS" ]]; then
echo "*** Apt ***" &&
sudo apt update &&
sudo apt autoremove {{ update_accept_var }} &&
sudo apt clean {{ update_accept_var }} &&
sudo dpkg --configure -a &&
sudo apt --fix-broken --fix-missing install &&
sudo apt dist-upgrade --allow-downgrades --fix-broken \
--fix-missing {{ update_accept_var }} ||
return 1
else
echo "*** Parrot ***"
sudo apt update &&
sudo apt autoremove {{ update_accept_var }} &&
parrot_mirrors_suck=true &&
while [[ $parrot_mirrors_suck ]]; do
unset parrot_mirrors_suck
sudo parrot-upgrade
if [[ $? != 0 ]]; then
parrot_mirrors_suck=true
sudo apt update --fix-missing
fi
done ||
return 1
fi
;;
pacman)
echo "*** Pacman ***"
if [[ "$accept" == "Y" ]]; then
auto_accept="{{ update_accept_var }}"
fi
sudo pacman -Syyu $auto_accept ||
return 1
;;
pkg | pkgng)
echo "*** FreeBSD-Update ***"
clean=""
[[ "{{ update_accept_var }}" == "-y" ]] ||
echo "Are you sure you'd like to clean /var/db/freebsd-update? [y/N] "
[[ "{{ update_accept_var }}" == "-y" ]] ||
read -N 1 clean
echo -e "\n"
typeset -l clean
if [[ "{{ update_accept_var }}" == "-y" || "$clean" == "y" ]]; then
echo "Cleaning directory..."
sudo sh -c "rm -rfv /var/db/freebsd-update
mkdir -v /var/db/freebsd-update"
fi
sudo freebsd-update fetch install
echo "*** Pkg ***" &&
sudo pkg update &&
sudo pkg clean {{ update_accept_var }} &&
sudo pkg autoremove {{ update_accept_var }} &&
sudo pkg upgrade {{ update_accept_var }} ||
return 1
;;
dnf)
echo "*** DNF ***" &&
sudo dnf clean all {{ update_accept_var }} &&
sudo dnf autoremove {{ update_accept_var }} &&
sudo dnf upgrade {{ update_accept_var }} ||
return 1
;;
zypper)
echo "*** Zypper ***" &&
sudo zypper refresh &&
sudo zypper cleanlocks &&
sudo zypper purge-kernels &&
sudo zypper clean -a &&
sudo zypper patch {{ update_accept_var }} &&
sudo zypper update {{ update_accept_var }} &&
sudo zypper dist-upgrade {{ update_accept_var }} &&
# This is a neat feature, but is installing things like GIMP from the
# repos when it is already installed through Flatpak, so not needed.
#sudo zypper install-new-recommends ||
sleep 0 ||
return 1
;;
*)
if [[ $distribution == "NixOS" ]]; then
sudo echo "*** NixOS ***" &&
# Clean up!
# https://specific.solutions.limited/blog/recovering-diskspace-in-nixos
echo -en "\n * Delete any existing garbage and snapshots older than " &&
echo -e "{{ nix_days }} days.\n" &&
echo "User:" &&
nix-collect-garbage --delete-older-than '{{ nix_days }}d' &&
echo "Root:" &&
sudo nix-collect-garbage --delete-older-than '{{ nix_days }}d'
ls ~/.cache/*nix* /root/.cache/*nix* 2>/dev/null 1>&2 &&
echo -e "\n * Delete any cache.\n"
du -hs ~/.cache/*nix* 2>/dev/null &&
echo "User:" &&
rm -rfv ~/.cache/*nix*
sudo du -hs /root/.cache/*nix* 2>/dev/null &&
echo "Root:" &&
sudo rm -rfv /root/.cache/*nix*
echo -e "\n * Update channels with the latest expressions.\n" &&
echo "User:" &&
nix-channel --update &&
echo "Root:" &&
sudo nix-channel --update
echo -e "\n * Rebuild using the existing *.nix files.\n" &&
sudo nixos-rebuild switch ||
return 1
echo -e "\n * Hard link duplicates, saves 25-35% of store size.\n" &&
sudo nix-store --optimize
else
echo "WARNING: This package manager is not supported yet." >&2
echo " distribution='${distribution}', pkg_mgr='${pkg_mgr}'" >&2
fi
;;
esac
# End of update_package_manager
# Flatpaks
- name: General | Facts | Package | Update Command | Flatpak | Check
shell: which flatpak
register: flatpak_exec
ignore_errors: yes
- name: General | Facts | Package | Update Command | Flatpak | Exists
set_fact:
update_flatpak: |
echo "*** Flatpak ***"
[[ -n {{ update_accept_var }} ]] && sudo flatpak repair
sudo flatpak uninstall --unused {{ update_accept_var }} &&
sudo flatpak update {{ update_accept_var }} ||
return 1
when: flatpak_exec is defined
and flatpak_exec.failed is defined
and not flatpak_exec.failed
- name: General | Facts | Package | Update Command | Flatpak | Missing
set_fact:
update_flatpak: |
echo "*** Flatpak Not Installed ***"
when: update_flatpak is not defined
# Firmware
- name: General | Facts | Package | Update Command | Firmware | Check
shell: which fwupdmgr
register: fwupdmgr_exec
ignore_errors: yes
- name: General | Facts | Package | Update Command | Firmware | Exists
set_fact:
update_firmware: |
echo "*** Firmware ***"
sudo fwupdmgr refresh --force &&
sudo fwupdmgr get-updates {{ update_accept_var }} &&
sudo fwupdmgr update --no-reboot-check {{ update_accept_var }} ||
return 1
when: fwupdmgr_exec is defined
and fwupdmgr_exec.failed is defined
and not fwupdmgr_exec.failed
- name: General | Facts | Package | Update Command | Firmware | Missing
set_fact:
update_firmware: |
echo "*** Firmware Updater (fwupdmgr) Not Installed ***"
when: update_firmware is not defined