Add ccnet-proxmox-nodes-runbook: package consistency + rolling OS update for the 7 Proxmox nodes #72
No reviewers
Labels
No labels
blocked
borg-backup
ceph
forgejo
in-progress
infra
netdata
nextcloud
p:high
p:low
p:medium
searxng
service-onboard
swarm-nodes
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
copper/ccnet-prod-devops!72
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-proxmox-nodes-runbook"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
New Ansible coverage for the 7 Proxmox nodes (
node01-node07) — previously none existed at all, package drift and OS patching were entirely manual.proxmox-baseline.yml— idempotent package consistency (curated 12-package list, built from anapt-mark showmanualdiff, not a blind full-package sync) plus a conditionally-deployed CPU throttle fix for the Dell OptiPlex 5050 nodes (node02-node05), gated on live hardware detection (ansible_facts['product_name']) with a matching self-check baked into the deployed script itself.proxmox-update.yml— rolling OS patch/reboot, one node at a time: HAnode-maintenancedrain (VMs live-migrate, CTs shutdown→migrate→start automatically), Cephnoout/norebalancebracketing the whole run, quorum-headroom and Ceph-health preflight asserts, an offline-node confirmation gate, and PG-convergence/corosync-rejoin waits — allblock:/rescue:-wrapped so a failure cleans up (disables that node's maintenance mode, unsets the Ceph flags) before re-raising, instead of leaving the cluster silently stuck.Validation
Both playbooks were fully live-tested across all 7 nodes — not just dry-run/
--check(which can't meaningfully validate this playbook anyway, since the pollingcommand/shelltasks are skipped rather than simulated under--check). This surfaced and fixed several real bugs along the way, documented in full inccnet-proxmox-nodes-runbook/README.md:apt upgrade: safesilently keepsproxmox-kernel-*packages back forever (each PVE kernel point release is a new package name) — neededupgrade: dist/var/run/reboot-requiredon these hosts — reboot-need detected via apveversion -vcomparison instead, verified against a real divergent caseAfter=multi-user.target+WantedBy=multi-user.targeton the same unit) left the CPU throttle-fix service silently dormant after a real reboot on two different nodes — root-caused and fixed, then re-verified across a full HA-drain/reboot/reactivate cycleAn unrelated but consequential finding during this work: node02's Ceph packages upgrading to 20.2.4 surfaced CVE-2025-30156 (
AUTH_INSECURE_*health checks) cluster-wide. That's deliberately out of scope for this PR — tracked separately in issue #71, with the two ERR-level checks muted (~4wk TTL) so this playbook's Ceph-health precheck isn't blocked in the meantime.Test plan
proxmox-baseline.yml— dry-run + real run validated on every node (node01-07)proxmox-update.yml— real run (drain → upgrade → reboot → reconverge → reactivate) validated on every node (node01-07)273 active+clean, quorum solid) after the complete roll🤖 Generated with Claude Code