Skip to main content
Version: 2411

Task 13: Phase 03 Verification

Runbook Phase 03 Platform

DOCUMENT CATEGORY: Runbook SCOPE: Read-only verification of all Phase 03 OS Configuration tasks (01–11) across ... PURPOSE: Read-only verification of all Phase 03 OS Configuration tasks (01–11) across all cluster nodes MASTER REFERENCE: Azure Local Pre-deployment Checklist

Status: Active

Overview​

Read-only verification script that confirms all Phase 03 OS Configuration tasks completed successfully across all cluster nodes. Run this after Task 12 completes — or after running individual tasks — before proceeding to Phase 04 ARC Registration.

Read-only

This script makes no changes to any node. It only reads and reports state.


What Is Verified​

TaskCheckPass Condition
01WinRMService running, HTTP listener active
02RDPRegistry value = 0, firewall rule enabled
03/04Static IP + DHCP disabledIP matches variables.yml, DHCP = Disabled
05DNS serversPrimary and secondary match variables.yml
06DNS resolutionSuccessful DNS lookup
07NTPStratum < 15, source is not Local CMOS Clock or Free-running
08ICMPICMPv4 Echo Request firewall rule enabled
09Unused adaptersNo disconnected adapters still enabled
10HostnameCOMPUTERNAME matches variables.yml hostname
11StorageNo non-primordial pools, no virtual disks, all non-boot disks online

Prerequisites​

RequirementDetails
Phase 03 Tasks 01–12 completeAll OS configuration tasks run
variables.yml populatedAll node IPs, hostnames, network values set
WinRM accessible from management serverRequired for remote checks

Variables from variables.yml​

PathTypeDescription
cluster_nodes[].management_ipstringExpected static IP per node
cluster_nodes[].hostnamestringExpected hostname per node
dns.primarystringExpected primary DNS
dns.secondarystringExpected secondary DNS
active_directory.ntp_serversarrayExpected NTP source

Run from the management server. Reads all expected values from variables.yml and verifies each node remotely.

# Task 13 - Phase 03 Verification (all nodes)
.\scripts\deploy\04-cluster-deployment\phase-03-os-configuration\task-13-phase03-verification\powershell\Invoke-Phase03Verification-Orchestrated.ps1 `
-ConfigPath .\config\variables.yml

Verify a single node:

.\scripts\deploy\04-cluster-deployment\phase-03-os-configuration\task-13-phase03-verification\powershell\Invoke-Phase03Verification-Orchestrated.ps1 `
-ConfigPath .\config\variables.yml `
-TargetNode azl-lab-01-n02

Expected Output​

A passing run produces a result like:

[2026-03-07 14:30:00] [----] ================================================================
[2026-03-07 14:30:00] [----] Phase 03 OS Configuration — Verification (Tasks 01–11)
[2026-03-07 14:30:00] [----] ================================================================
...
[2026-03-07 14:30:05] [----] NODE: azl-lab-01-n01 (192.168.211.11)
[2026-03-07 14:30:05] [----] ================================================================
[PASS] Task01_WinRM PASS (Service=Running, Listener=Active)
[PASS] Task02_RDP PASS (Reg=0, FWRules=3)
[PASS] Task0304_StaticIP PASS (IP=192.168.211.11 DHCP=Disabled)
[PASS] Task05_DNS PASS (10.250.1.36, 10.250.1.37)
[PASS] Task06_DNSResolve PASS
[PASS] Task07_NTP PASS (Stratum=4 Source=10.250.1.36)
[PASS] Task08_ICMP PASS (2 rule(s) enabled)
[PASS] Task09_Adapters PASS (No disconnected adapters still enabled)
[PASS] Task10_Hostname PASS (azl-lab-01-N01)
[PASS] Task11_Storage PASS (4 non-boot disk(s) clean and online)
...
[2026-03-07 14:31:50] [PASS] All 4 node(s) passed Phase 03 verification.

Interpreting Results​

ResultMeaningAction
PASSCheck succeededNone
WARNNon-critical issue (e.g. storage pools present, adapter not fully cleaned up)Review before proceeding
FAILCheck failed — configuration is incorrectRe-run the relevant task

Common Failures​

CheckFailure MessageResolution
Task0304_StaticIPFAIL: DHCP=EnabledRe-run Task 03/04 (static IP)
Task07_NTPFAIL: Source=Local CMOS ClockRe-run Task 07 (NTP). Check NTP server reachability
Task10_HostnameFAIL: Got='WIN-XXXX'Re-run Task 10 (hostname rename) and reboot node
Task11_StorageWARN: Pools=1 VDisks=2Run Task 11 (Clear Storage) before proceeding to Phase 04
Connection failsConnection failed: ...Verify WinRM is enabled on the node (Task 01)

Script Reference​

ParameterRequiredDescription
-ConfigPathRecommendedPath to variables.yml. Auto-detects if omitted
-CredentialNoPSCredential. Resolved from Key Vault if omitted
-TargetNodeNoFilter to specific node(s) by hostname or IP

Script location:

scripts/deploy/04-cluster-deployment/phase-03-os-configuration/
task-13-phase03-verification/powershell/
Invoke-Phase03Verification-Orchestrated.ps1

Troubleshooting​

IssueCauseResolution
Verification script reports group membership mismatchGPO not yet applied or replication delayRun gpupdate /force on the affected node, wait 60 seconds, then re-run verification
PSRemoting test fails for one or more nodesWinRM service not running or firewall blocking port 5985On the failing node: Enable-PSRemoting -Force; verify firewall rule: Get-NetFirewallRule -Name WINRM-HTTP-In-TCP
Script cannot resolve node hostnameDNS record missing or staleVerify DNS with Resolve-DnsName <hostname>; re-run DNS record creation from Phase 01 Task 03


Alternatives​

The procedures in this task use the scripted methods shown in the tabs above. Additional deployment methods including Azure CLI and Bash scripts are available in the azurelocal-toolkit repository under scripts/deploy/.

MethodDescription
Azure CLIPowerShell-based Azure CLI scripts for Azure resource operations
BashLinux/macOS compatible shell scripts for pipeline environments

← Task 12: Combined Script · ↑ Phase 03 · Phase 04: ARC Registration →


Version Control​

VersionDateAuthorChanges
1.0.02025-03-25Azure Local CloudInitial release