New to Kestra?
Use blueprints to kickstart your first workflows.
Automate safe Nutanix AHV patching with Kestra: snapshot, update over SSH, health-check, and roll back automatically on failure with Slack alerts.
Patch Nutanix AHV virtual machines safely with an automated snapshot, update, verify, and rollback pipeline. This blueprint provisions a Nutanix AHV VM, takes a pre-patch snapshot, applies operating system updates over SSH, runs a health check, and notifies Slack on success. If anything goes wrong, it restores the snapshot automatically and alerts on-call, so a failed patch never leaves a VM in a broken state. It solves the classic problem of risky, manual OS patching by wrapping every step in declarative, auditable orchestration with built-in safety nets.
provision_vm (io.kestra.plugin.ee.nutanix.ahv.CreateVm) creates the AHV VM in the target cluster with wait: true and emits a VM asset for lineage.safe_patching_block (io.kestra.plugin.core.flow.Sequential) runs the patch sequence in order:pre_patch_snapshot (io.kestra.plugin.ee.nutanix.snapshot.CreateVmSnapshot) snapshots the VM and emits a snapshot asset linked to the VM.apply_updates (io.kestra.plugin.scripts.shell.Commands) connects over SSH and runs apt update && apt upgrade -y && reboot.wait_for_boot (io.kestra.plugin.core.flow.Pause) pauses for PT1M while the VM reboots.health_check (io.kestra.plugin.core.http.Request) issues a GET to the VM /health endpoint.notify_success (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) posts a success message to Slack.errors branch runs rollback (RestoreVmSnapshot) to restore the pre-patch snapshot, notify_oncall to alert Slack, and cleanup_snapshot (DeleteVmSnapshot) to remove the snapshot.Nutanix tooling can create VMs and snapshots, but it has no native way to sequence snapshot, patch, health-check, and conditional rollback as one governed pipeline. Kestra adds event and schedule triggers, retries, automatic error handling, and asset lineage across the VM and its snapshots, all expressed as declarative YAML you can version and review. The errors block guarantees rollback runs on failure, something a standalone hypervisor scheduler cannot coordinate across SSH, HTTP, and Slack.
NUTANIX_HOSTNUTANIX_TOKENNUTANIX_CLUSTER_EXT_IDSLACK_WEBHOOKNUTANIX_CLUSTER_EXT_ID to your target cluster external ID.vm_name input if needed.apt commands with your distribution package manager or a configuration tool.io.kestra.plugin.core.flow.ForEach.health_check.