1300 CODIFY

Deploying Azure Local 23H2: Lessons Learned and Tips for a Smooth Setup

by | 16 Apr, 2025 | Blog

This post is for anyone jumping into Azure Local 23H2 and finding the official documentation a bit thin in places. I recently deployed it for a customer and wanted to share some tips, workarounds, and lessons learned to help others navigate the process more smoothly.

Deployment Pattern Selection

Microsoft supports several deployment patterns, but in practice, I recommend sticking with a 2-, 3-, or 4-node cluster using switched storage.

I attempted a 3-node switchless cluster and ran into challenges—template validation failed, the Azure portal didn’t support the setup, and even Microsoft support had limited experience with that configuration. It’s doable, but not without pain.

Single-node clusters are another option. They’re quick to deploy and fully supported, but you’ll miss out on much of the functionality that makes Azure Local powerful. Consider it only if you’re planning to scale out later.

Before You Configure Anything

Most configuration is handled during the Azure Local deployment. Making changes beforehand—like applying updates or changing the time zone—can cause the deployment to fail.

Here’s a streamlined checklist to get everything ready before you deploy:

  • Rack, stack, cable, and power on the servers.
  • Configure iLO/iDRAC (or equivalent).
  • Set a common local admin password on all servers.
    • The template requires the same username and password across all servers. This should be changed post-deployment and managed with LAPS long term.
  • Use SCONFIG to rename the nodes.
  • Use SCONFIG to enable Remote Desktop (the keystrokes to follow are 7, e, 1).
  • Set a static IP, default gateway, DNS, and subnet mask on the Management NIC via SCONFIG (we recommend a dedicated management NIC not shared by other intents).
  • Set the time zone to UTC (this is a workaround for a known deployment issue).
  • (If reimaging hardware) Install AzLocal-certified network drivers from your vendor.
  • Rename NICs consistently across all nodes (e.g. Compute 1, Management 1, SMB 1).
  • Network intents
    • Management NIC – as discussed earlier should be dedicated with a static
      IP address, DNS and Gateway.
    • Compute NICs –  should be a Trunk port with no IP configuration. Use the following PowerShell to remove existing configuration:

Remove-NetIPAddress -InterfaceIndex $Interface.InterfaceIndex -Confirm:$false

    • Storage NICs – should be an access port with a DHCP IP configuration (StorageAutoIP will be enabled in the next step).
  • Enable TLS 1.2 and install Azure PowerShell:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

Register-PSRepository -Default

Install-Module Az

  • Reboot the node.
  • Run Invoke-AzStackHciArcInitialization on all nodes and confirm extension installation.

Network Configuration Tips

Some of the documentation suggests all networking will be handled by your deployment templates—but that’s not entirely accurate. Here are four tips to set yourself up for success:

  1. Set static IPs on your management NICs before deployment. VMs won’t join AD or register in DNS until after the deployment, so static IPs help ensure continuity.
  2. Compute NICs should be configured as trunk adapters with no IP address, and connected to trunk switch ports. Use the following PowerShell command:

Remove-NetIPAddress -InterfaceIndex $Interface.InterfaceIndex -Confirm:$false

  1. Storage NICs can be set to DHCP, with VLANs configured ahead of time. Set enableStorageAutoIp to true in your config.
  2. It’s important to understand if you NICs support RDMA. In our experience with Non-RDMA supported NICs you will need to disabled it in the deployment template. Use:
    1. overrideAdapterProperty = true
    2. networkDirect = Disabled, and
    3. leave networkDirectTechnology blank

What If Deployment Fails?

Don’t worry—if your deployment fails to validate, you usually don’t need to start from scratch. Read the error message, make the necessary fixes to your OS or template, and retry from the Deployments tab. Azure Local will resume from the last point and reuse existing resources.

Final Thoughts

Azure Local 23H2 is powerful and promising, especially for organisations needing hybrid cloud solutions. That said, it’s still a relatively new offering and there are a few sharp edges. If you’re prepared for some hands-on setup and you follow the right steps, it can absolutely deliver value.

If you’re considering Azure Local, or currently working on a deployment, I hope this guide helps smooth the path a little. It’s a journey—but a manageable one with the right prep.

Need a hand? Codify has deep experience with Azure and hybrid deployments. Reach out—we’d be happy to help you get it right.

Ready to connect with Codify to discuss your next cloud project?

I know what I want:

I don’t know what I need:

Ready to connect with Codify to discuss your next cloud project?

I know what I want:

I don't know what I need: