Azure Update Manager patch wave planning template
Operator-ready planning template for Azure Update Manager patch waves covering scope, maintenance windows, reboot tolerance, exclusions, soak periods, rollback contacts, and stop-go criteria before scheduled patching.
Good For
- Monthly patch cycle planning for Azure VMs and Arc-enabled servers
- CAB or change-ticket preparation
- Patch wave sequencing across application tiers
- Documenting exclusions, reboot limits, and validation ownership
- Creating CSV-backed wave plans for reporting or import into tracking sheets
How to Use It
- Define the patch month, platform owner, application owner, and environment scope before assigning maintenance waves.
- Map systems into pilot, lower-risk, business-hours-sensitive, and production waves according to uptime and reboot tolerance.
- Record maintenance configuration, reboot policy, expected validation owner, and concurrency guardrails for each wave.
- Document stop/go criteria and exception handling so one bad wave does not silently roll into the next one.
- Use the finished plan as the source for maintenance schedule configuration, CAB evidence, and post-wave validation notes.
Execution Modes
- local
Inputs and Outputs
Inputs
- Change metadata - fields: Change ID, Patch cycle/month, Planned start date, Change manager, Primary operator
- Environment scope - fields: Subscription(s), Resource group(s), Region(s), Azure VM and/or Arc-enabled server scope, Environment tag values (Prod/Test/Dev)
- Wave plan CSV columns - fields: Wave, Hostname, ResourceId, SubscriptionId, ResourceGroup, Platform, OS, Environment, Service/Application, BusinessCriticality, PatchGroupTag, MaintenanceConfig, WindowStart, TimeZone, MaxDurationMinutes, RebootPolicy, ConcurrencyLimit, DependencyNotes, ValidationOwner, AppOwner, SoakHours, StopGoCriteria, ExclusionReason, ApprovalStatus, OperatorNotes
- Decision records - fields: Exclusions and approvals, Manual reboot exceptions, Service blackout periods, Escalation contacts, Rollback or containment notes
Outputs
- verbose-console
- operator-notes
Command Starter
Safe to run: read-only
az account show --output table
az resource list --tag PatchGroup --query "[].{name:name,resourceGroup:resourceGroup,type:type,location:location,tags:tags}" --output table
az connectedmachine list --query "[].{name:name,resourceGroup:resourceGroup,status:status,location:location,tags:tags}" --output table
az vm list --show-details --query "[].{name:name,resourceGroup:resourceGroup,powerState:powerState,location:location,tags:tags}" --output table
az maintenance configuration list --query "[].{name:name,resourceGroup:resourceGroup,location:location,maintenanceScope:maintenanceScope}" --output table
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' or type =~ 'microsoft.hybridcompute/machines' | project name, type, resourceGroup, subscriptionId, location, tags" --output csvValidation
- Every in-scope server is mapped to exactly one wave or documented as excluded with approver and reason.
- Each wave has a maintenance window, time zone, reboot policy, and named technical/app owner.
- Dependencies and sequencing for clustered or multi-tier applications are recorded and reviewed by service owners.
- Stop-go criteria, soak period, and escalation path are explicit enough to decide whether the next wave proceeds.
Reporting
- Per-wave server counts by environment, service, and reboot policy.
- Excluded server list with reason, approver, and planned review date.
- Wave progression summary showing pilot completion, soak expiry, and go/no-go decision.
- Post-change evidence index: compliance export, failed machine list, application validation notes, and incident references.
Safety Notes
- This template is a planning aid; validate actual Azure Update Manager schedules and maintenance configurations before execution.
- Do not mix tightly coupled application tiers into the same wave unless dependency and rollback handling are explicitly documented.
- Use local business time and UTC in notes where teams span regions to avoid maintenance window ambiguity.
- Treat exclusions as temporary decisions; capture expiry or next review date so systems do not silently drift from patch coverage.