infra:operations:proxmox-maintenance
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| infra:operations:proxmox-maintenance [2026/05/23 15:05] – created atluxity_idp.hackeriet.no | infra:operations:proxmox-maintenance [2026/06/01 17:32] (current) – Note LibreNMS alerting follow-up for klynge001 atluxity_idp.hackeriet.no | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Proxmox maintenance ====== | ====== Proxmox maintenance ====== | ||
| - | This is a runbook | + | This page documents maintenance |
| ===== Current scope ===== | ===== Current scope ===== | ||
| - | Planned hosts: | + | Hosts currently covered by this procedure: |
| * [[infra: | * [[infra: | ||
| * [[infra: | * [[infra: | ||
| - | Current goals: | ||
| - | * Bring host006 and host007 up to date. | + | ===== Last maintenance: |
| - | * Review failed services and storage health. | + | |
| - | * Keep the cluster healthy while working one host at a time. | + | |
| - | * Avoid guest-level changes unless needed for recovery. | + | |
| - | ===== Announcement draft ===== | + | Scope: host006 and host007 in the '' |
| - | Planned Proxmox maintenance for Hackeriet | + | Actions performed: |
| - | I plan to do maintenance | + | * Removed obsolete local backup archives |
| + | * Updated | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Upgraded host006 and host007 to Proxmox VE 8.4.19. | ||
| + | * Rebooted | ||
| + | * Temporarily adjusted expected votes during single-node reboot windows so the remaining node stayed quorate. | ||
| + | * Verified storage, package state, cluster quorum, guest state, and basic guest reachability after reboots. | ||
| - | Scope: | + | Final state after maintenance: |
| - | * OS and Proxmox | + | * host006: |
| - | * storage and backup health checks | + | * host007: Proxmox VE 8.4.19, kernel 6.8.12-28-pve. |
| - | * failed service review | + | * Cluster: 2 nodes, expected votes 2, quorate. |
| - | * possible host reboots if required | + | * No pending package upgrades were listed on either node. |
| + | * host006 root filesystem usage was about 72% after cleanup and updates. | ||
| + | * host007 root filesystem usage was about 19% after updates. | ||
| - | Expected impact: | + | Follow-up actions completed after the maintenance: |
| - | * Some VMs and services may be briefly unavailable. | + | * Retired Munin on host006 |
| - | * I will avoid guest-level changes unless needed for recovery. | + | * Cleared stale '' |
| - | * I will work on one host at a time and check cluster health between steps. | + | * Disabled autostart for moved/ |
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Verified that '' | ||
| - | Please speak up if you know of anything sensitive running on these hosts or if there are times I should avoid. | + | ===== What we learned ===== |
| - | ===== DNS and service | + | * The cluster is currently operating as a two-node cluster. During a single-node reboot, the remaining node can temporarily lose quorum unless expected votes is adjusted when either other node is rebooted. |
| + | * Expected votes returned to 2 after both nodes were back and joined. | ||
| + | * '' | ||
| + | * Moved/ | ||
| + | * host007 emitted GRUB/LVM warnings about a missing physical volume name '' | ||
| + | * host006 emitted a GRUB warning that the removable EFI fallback path is not updated automatically. The explicit Proxmox EFI boot entry worked and the host rebooted successfully. | ||
| - | Live DNS checks on 2026-05-23 showed that hackeriet.no has two authoritative nameservers: | + | ===== Maintenance procedure ===== |
| - | * ns0.hackeriet.no - Hackeriet hosted, resolves to blade at 185.35.202.202 | + | Work one host at a time. Do not reboot both host006 |
| - | * ns.hyp.net - external nameserver, resolves to 194.63.248.53 and 2a01: | + | |
| - | Both authoritative nameservers served the same SOA serial when checked. DNS resolution should survive a short outage of ns0 because ns.hyp.net is external and synced. Do not treat this as service redundancy. | + | Before making changes on either host: |
| - | Important service dependencies observed: | + | < |
| + | hostname -f | ||
| + | pveversion -v | ||
| + | uname -r | ||
| + | pvecm status | ||
| + | systemctl --failed --no-pager | ||
| + | pvesm status | ||
| + | df -h -x tmpfs -x devtmpfs | ||
| + | qm list | ||
| + | cat / | ||
| + | apt update | ||
| + | apt list --upgradable | ||
| + | test -f / | ||
| + | </ | ||
| - | * hackeriet.no and www.hackeriet.no point to blade. | + | For host006, also check local storage pressure: |
| - | * wiki.hackeriet.no points to blade. | + | |
| - | * hackeriet.no MX points to blade. | + | |
| - | * ns0.hackeriet.no points to blade. | + | |
| - | * ip.hackeriet.no and nms.hackeriet.no point through ingress. | + | |
| - | * blade is currently documented as a VM on host007. | + | |
| - | * ingress is VM 510 on host006. | + | |
| - | * idp1 was observed on host007. | + | |
| - | Maintenance implications: | + | < |
| + | du -sh / | ||
| + | </ | ||
| - | * Rebooting host007 can affect blade, public web, wiki, mail target, ns0, and likely IDP. | + | Update flow for each host: |
| - | * Rebooting host006 can affect ingress-routed services such as NetBox and LibreNMS. | + | |
| - | * Avoid DNS zone edits during the maintenance window. | + | |
| - | * Keep this runbook available locally before starting, because wiki and NetBox may be affected. | + | |
| - | ===== Pre-maintenance checks ===== | + | |
| + | - Confirm storage health with '' | ||
| + | - Review running guests with '' | ||
| + | - Review failed units with '' | ||
| + | - Simulate package changes if the update set is large or risky. | ||
| + | - Apply updates only after reviewing the package set. | ||
| + | - Reboot only if required or clearly useful, such as after a kernel update. | ||
| + | - After reboot, wait for the node to return and confirm cluster health before touching the next host. | ||
| - | Run on both host006 and host007 before making changes: | + | Suggested commands after review: |
| - | * hostname -f | + | < |
| - | * pveversion | + | apt-get -s full-upgrade |
| - | * pvecm status | + | apt full-upgrade |
| - | * systemctl | + | </code> |
| - | * pvesm status | + | |
| - | * df -h | + | |
| - | * qm list | + | |
| - | * cat / | + | |
| - | | + | |
| - | * apt list --upgradable | + | |
| - | * test -f /var/ | + | |
| - | On host006, also check local storage pressure: | + | ===== Quorum during reboot ===== |
| - | * du -sh / | + | When one node is rebooted, the remaining node may temporarily lose quorum. If that happens during planned maintenance, |
| - | Before rebooting anything, check DNS redundancy: | + | < |
| + | pvecm expected 1 | ||
| + | pvecm status | ||
| + | </ | ||
| - | * dig @ns0.hackeriet.no SOA hackeriet.no | + | After the rebooted node rejoins, confirm the cluster has returned to two nodes and expected votes 2: |
| - | * dig @ns.hyp.net SOA hackeriet.no | + | |
| - | The SOA serial should match. | + | < |
| + | pvecm status | ||
| + | </ | ||
| - | ===== Maintenance procedure ===== | + | Do not use this as an incident workaround without understanding which node has the correct cluster state. |
| - | Work one host at a time. Do not reboot both host006 and host007 at once. | + | ===== Post-host checks ===== |
| - | Suggested order: | + | After each host update or reboot: |
| - | | + | < |
| - | - Start with host007 if host006-hosted ingress services must stay stable first. | + | hostname |
| + | pveversion | ||
| + | uname -r | ||
| + | pvecm status | ||
| + | systemctl | ||
| + | pvesm status | ||
| + | df -h -x tmpfs -x devtmpfs | ||
| + | qm list | ||
| + | apt list --upgradable | ||
| + | </ | ||
| - | For each host: | + | Check guests affected by the touched |
| - | - Confirm cluster state with pvecm status. | + | < |
| - | - Confirm storage state with pvesm status | + | qm status |
| - | - Review failed units with systemctl | + | qm agent < |
| - | - Run apt update. | + | qm guest cmd < |
| - | - Review apt list --upgradable. | + | qm config < |
| - | - Apply updates only after reviewing the package set. | + | ping -c 2 <ip> |
| - | | + | nc -vz -w3 <ip> 22 |
| - | - After reboot, wait for the node to return and confirm cluster health before touching the next host. | + | </ |
| - | Suggested update commands, after review: | + | Interpretation: |
| - | * apt full-upgrade | + | * '' |
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Lack of ping or SSH does not always mean the guest is broken. Investigate only failures that contradict expectations for that guest. | ||
| - | Do not change guest VM configuration as part of host maintenance unless needed for recovery. | + | ===== Monitoring / LibreNMS ===== |
| - | ===== Post-host checks ===== | + | As of 2026-06-01, host006 and host007 are monitored in LibreNMS as Proxmox hypervisors. This replaces the old Munin host monitoring for these nodes. |
| - | After each host update | + | LibreNMS records: |
| + | |||
| + | * host006.hackeriet.no: | ||
| + | * host007.hackeriet.no: | ||
| + | * Both devices have OS detected as '' | ||
| + | * Both devices have the LibreNMS '' | ||
| + | |||
| + | Host-side setup: | ||
| + | |||
| + | * '' | ||
| + | * SNMP listens only on the management IP of each host: | ||
| + | * host006: '' | ||
| + | * host007: '' | ||
| + | * SNMP uses SNMPv3 authPriv with the security name '' | ||
| + | * Credentials are stored in Hackerpass at '' | ||
| + | * The Proxmox LibreNMS agent-local script is installed as ''/ | ||
| + | * SNMP exposes Proxmox VM traffic through: | ||
| + | |||
| + | < | ||
| + | extend proxmox / | ||
| + | </ | ||
| + | |||
| + | * ''/ | ||
| + | |||
| + | Firewall setup: | ||
| + | |||
| + | * The Proxmox cluster firewall allows SNMP only from app-01 / LibreNMS source address '' | ||
| + | * The firewall rule is in ''/ | ||
| - | * hostname -f | + | < |
| - | * pveversion | + | IN ACCEPT |
| - | * pvecm status | + | </ |
| - | * systemctl | + | |
| - | * pvesm status | + | |
| - | * df -h | + | |
| - | * qm list | + | |
| - | Check DNS and key service names: | + | LibreNMS setup: |
| - | * dig @ns0.hackeriet.no SOA hackeriet.no | + | * '' |
| - | * dig @ns.hyp.net SOA hackeriet.no | + | * The '' |
| - | * dig hackeriet.no A | + | * No LibreNMS alert rules existed when this monitoring was added. Host metrics and Proxmox application polling are live, but alert policy still needs to be defined. |
| - | * dig wiki.hackeriet.no A | + | |
| - | * dig idp.hackeriet.no A | + | |
| - | * dig ip.hackeriet.no A | + | |
| - | * dig nms.hackeriet.no A | + | |
| - | Check actual services, not only DNS, when the relevant host has been touched. | + | Useful verification commands: |
| - | ===== Host006 notes ===== | + | < |
| + | # On each Proxmox host | ||
| + | systemctl is-active snmpd | ||
| + | ss -lunp | grep ': | ||
| + | sudo -u Debian-snmp sudo / | ||
| - | host006 | + | # From the LibreNMS container on app-01 |
| + | snmpwalk -v3 -l authPriv -u librenms_klynge001 -a SHA -A '< | ||
| + | snmpget -v3 -l authPriv -u librenms_klynge001 -a SHA -A '< | ||
| + | lnms device:poll -m applications host006.hackeriet.no | ||
| + | </ | ||
| - | Known cleanup/ | + | ===== Follow-up items ===== |
| - | During maintenance, | + | * Define LibreNMS alert rules and notification routing for klynge001 host monitoring. |
| + | * Investigate the host007 GRUB/LVM '' | ||
| + | * Investigate the host006 EFI fallback warning. | ||
| + | * Review whether the two-node quorum procedure | ||
| + | * Keep NetBox VM placement aligned | ||
| + | * If Munin package cleanup is desired later, remove it in a separate low-risk cleanup task. | ||
| - | ===== Safety | + | ===== Other notes ===== |
| - | * Do not touch guest VMs unless required for recovery. | + | * Host006 storage and backup context |
| - | * Do not change DNS during the maintenance window unless DNS itself | + | * Certificate automation for internal Proxmox hostnames |
| - | * Do not delete | + | |
| - | * Keep notes locally while working; wiki, NetBox, IDP, and public services may be affected depending on which host is down. | + | |
| - | * If quorum looks wrong, stop and understand it before rebooting a host. | + | |
/srv/hackeriet-wiki/dokuwiki/data/attic/infra/operations/proxmox-maintenance.1779548742.txt.gz · Last modified: by atluxity_idp.hackeriet.no