Skip to content

Playbook Reference

All playbooks live at the repo root under ansible/.

Playbook Purpose
start-cluster.yml Wake ESXi (WOL), power on control-plane + system node VMs, wait for the cluster to come up, uncordon nodes
stop-cluster.yml Drain nodes, gracefully shut down VMs, then gracefully shut down the ESXi host itself
supervisor-cluster-shutdown.yml Shutdown sequence specific to the Tanzu Supervisor stack — discovers the dynamic supervisor-API VIP (decryptK8Pwd.py) rather than assuming a fixed address, since WCP can reassign it across cycles
backup-playbook.yml Nightly config backup: NAS, UniFi controller, TrueNAS-DR config, pfSense config — see pipelines/backup.yml
ssl-renew-playbook.yml Certificate renewal automation, paired with pfSense's ACME setup — see ACME Certificates
recording_cleanup.yml Prunes old camera/NVR recordings
clean-docker-images.yml Docker image/layer cleanup on hosts running containers
start-stop-esxi.yml Lower-level ESXi host power operations, used outside the full cluster start/stop flow
vcsa-esxi-simple-ssh.yml Ad-hoc connectivity check against vCenter/ESXi over SSH

Why start-cluster.yml/stop-cluster.yml and not a raw reboot

These playbooks exist specifically to make the DHCP-lease-preserving path (drain → guest shutdown → ESXi host shutdown → WOL → power-on) the path of least resistance. Kea's lease table for a MAC that goes through this cycle quickly is very likely to still be valid when the host comes back, which is why routine use of these playbooks had never surfaced the IP-pinning fragility documented in Kubernetes Troubleshooting — until a manual reboot, done outside this flow and overlapping with unrelated lease churn elsewhere on the network, finally did.