Archived
47 lines
1.9 KiB
Bash
Executable File
47 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Install and configure unattended-upgrades for security patches. Deliberately
|
|
# conservative for a hypervisor: security-only origins (Debian security +
|
|
# the active PVE repo), no automatic reboot ever - a flag file is left at
|
|
# /var/run/reboot-required for you to act on manually.
|
|
#
|
|
# Idempotent - safe to re-run. Run as root on the PVE host.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=lib/common.sh
|
|
source "${SCRIPT_DIR}/lib/common.sh"
|
|
require_root
|
|
|
|
if ! dpkg -s unattended-upgrades >/dev/null 2>&1; then
|
|
apt-get update
|
|
apt-get install -y unattended-upgrades
|
|
fi
|
|
|
|
CODENAME="$(pve_codename)"
|
|
|
|
write_if_changed "/etc/apt/apt.conf.d/51pve-unattended-upgrades.conf" "// Managed by proxmox-configuration/scripts/setup-unattended-upgrades.sh
|
|
Unattended-Upgrade::Origins-Pattern {
|
|
\"origin=Debian,codename=${CODENAME},label=Debian-Security\";
|
|
\"origin=Debian,codename=${CODENAME}-security,label=Debian-Security\";
|
|
\"origin=Proxmox\";
|
|
};
|
|
|
|
// Never auto-reboot a hypervisor. Check /var/run/reboot-required manually
|
|
// (or via scripts/audit.sh) and reboot during a planned maintenance window.
|
|
Unattended-Upgrade::Automatic-Reboot \"false\";
|
|
|
|
// Don't remove packages automatically; review before doing so by hand.
|
|
Unattended-Upgrade::Remove-Unused-Dependencies \"false\";
|
|
Unattended-Upgrade::Remove-Unused-Kernel-Packages \"false\";"
|
|
|
|
write_if_changed "/etc/apt/apt.conf.d/20auto-upgrades" '// Managed by proxmox-configuration/scripts/setup-unattended-upgrades.sh
|
|
APT::Periodic::Update-Package-Lists "1";
|
|
APT::Periodic::Unattended-Upgrade "1";
|
|
APT::Periodic::Download-Upgradeable-Packages "1";
|
|
APT::Periodic::AutocleanInterval "7";'
|
|
|
|
systemctl enable --now unattended-upgrades.service >/dev/null
|
|
echo "unattended-upgrades enabled (security-only origins, no auto-reboot)."
|
|
echo "Dry run:"
|
|
unattended-upgrade --dry-run --debug 2>&1 | tail -20
|