Files
deploy_home/ansible/roles/ups/defaults/main.yml
T
Bastian de Byl 5776dbe1bf UPS monitoring, Nextcloud cron, container image bumps
ups role: NUT server on home.debyl.io for the CyberPower PR1500RT2U that backs
both it and truenas.localdomain, with staged shutdown (TrueNAS sheds at t+2min,
host at 10% charge) and best-effort IPMI power-on when mains returns. The 10%
threshold leans on ignorelb + override.battery.charge.low rather than a custom
poller, because CyberPower asserts its own low-battery flag far too early.
Credentials come from vault vars; nothing sensitive is templated in the clear.

Nextcloud background jobs: both instances have backgroundjobs_mode "cron", which
expects an external caller every ~5 minutes, and nothing was calling. The
personal instance had not run a background job since 2026-05-14 and skudak since
2024-11-20. Consequently trash and file versions never expired, stale chunked
uploads accumulated, calendar reminders never fired, and nextcloud.log was never
rotated -- which quietly made the existing log_rotate_size cap inert. Added a
systemd timer per instance, skipping cleanly when the container is down or in
maintenance so deploy windows don't show up as failed units.

Trash retention on the personal instance: the default "auto" only expires when
disk space demands it, so 66 GB of >30-day deletions sat on a host with 1.3 TB
free -- effectively unbounded. "auto, 30" makes the 30-day expiry unconditional
while still purging early under pressure.

Image bumps:
  nextcloud       33.0.0  -> 34.0.2   (both cloud and skudak-cloud)
  greg-time-bot   3.9.25  -> 3.10.0
  fulfillr        20260723.2044 -> 20260728.2155  (prod and dev)

The fulfillr bump records what is already deployed: both containers were rolled
to that image on 2026-07-29 for SCRUM-156 (digital product releases + customer
update campaign). Committing it keeps the repo from claiming an older tag than
the host is actually running, which would otherwise roll fulfillr backwards on
the next clean-checkout deploy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 13:00:51 -04:00

37 lines
1.1 KiB
YAML

---
# CyberPower PR1500LCDRT2U cabled by USB to this host (0764:0601).
# This host is the NUT server; truenas.localdomain is a NUT slave.
ups_name: cyberpower
# lsusb reports the product string as PR1500LCDRT2U, but the device itself
# reports device.model CP1500PFCRM2U. The latter is what it actually is.
ups_desc: CyberPower CP1500PFCRM2U
ups_vendorid: "0764"
ups_productid: "0601"
ups_listen_addr: 192.168.1.10
ups_listen_port: 3493
# truenas.localdomain - the only host allowed to reach upsd
ups_slave_ip: 192.168.1.11
# Battery charge at which THIS host shuts itself down. TrueNAS sheds much
# earlier via its own "shutdown timer" setting (see roles/ups/README.md).
ups_low_charge_pct: 10
# Seconds of stable mains after ONLINE before TrueNAS is powered back on.
ups_restore_stable_secs: 300
# R415 iDRAC6. Shares LOM1 with bce0.
idrac_host: 192.168.1.12
idrac_user: root
ups_deps:
[
ipmitool,
nut,
nut-client,
]
# Secrets live in ansible/vars/vault.yml (no vault_ prefix, per repo
# convention): nut_upsmon_password, nut_truenas_password, idrac_password