Deploying azure stack hci 23h2 from azure portal
Azure Stack HCIMicrosoft

How to Install Azure Stack HCI 23H2 – In your Lab

In this article we will delve into the installation and configuration of Microsoft’s innovative virtualization platform, Azure Stack HCI, specifically version 23H2.

For demonstration purposes, I will be deploying 23H2 into my lab, on virtualized hardware.

This release is the newest iteration of Microsoft’s hyper-converged infrastructure solution, designed to streamline operations, increase efficiency, and reduce costs. Azure Stack HCI is a infrastructure platform that integrates with the Azure ecosystem, providing a robust and flexible platform that allows businesses to run virtual machines and containers on-premises.

An interesting new features 23H2 allows for on premises Azure Stack HCI clusters to be deployed and managed directly from Azure. We’ll explore more of this later in this post, but first we’ll start with the basic deployment steps to get us started.

To ensure you’re not mis-led, the official Microsoft documentation installing HCI are quite good, they are very thorough but they do take a very long time to go through. This guide is if you need a fast track to getting a basic lab up and running. At times these instructions may not be compatible with your environment, in which case, review the official documentation for those scenarios

Prerequisites

Choose a supported deployment topology

  • In this demonstration, I will be using a two node deployment (with switch)

Procure your supported hardware

A note on using Virtual Machines

  • For this demonstration I will be using virtual machines as my HCI nodes. This is obviously an unsupported deployment, but useful to explore the solution in a non-production environment, taking advantage of the generous 60 day free trial.
  • Ensure your VMs are of a specification under the supported hardware guidance.
  • Storage Thin provisioned disks are fine. I used 1x 200GB disk for my OS and 2x 500GB disks per VM for the S2D storage. Ideally place your S2D disks on a dedicated disk controller, but it’s not a major issue is you’re just demoing the solution.
  • NICs If using vSphere/VCF/ESXi as your hypervisor for the virtual machines, use VMXNET3 virtual NICs.
  • VMware Tools VMware Tools needs to be installed if using VMXNET3 network adapters. I added one NIC for Management/Compute and a second dedicated for Storage.
  • vSwitch: I made sure the NICs for storage were connected to a portgroup with a VLAN ID setting of “All (4095)”

Active Directory Preparation

Before we begin installing the HCI OS on our servers, we need to prepare Active Directory.

Since these instructions are subject to change for newer builds of 23H2, this is the official Microsoft guidance for AD preparation: Prepare Active Directory for new Azure Stack HCI, version 23H2 deployment – Azure Stack HCI | Microsoft Learn

  • Follow the Prepare Active Directory section of the guidance via the link above

Example commands for my lab environment

  • Adjust the following sample commands where required:
Install-Module -Name AsHciADArtifactsPreCreationTool
New-HciAdObjectsPreCreation -AzureStackLCMUserCredential (Get-Credential) -AsHciOUName "OU=HCI,OU=Lab,DC=Lab,DC=local"
  • When prompted for a credential, specify a new user you would like the tool to create for administrating your Azure Stack HCI cluster. In my lab I specified HCI and provided a compatible password: “at least 12 characters long and contains a lowercase character, an uppercase character, a numeral, and a special character.”
  • Ensure the new OU is created in Active Directory

Download Azure Stack HCI from Azure

Assuming you have met all the prerequisites and procured your supported hardware, next we need to download the latest Azure Stack HCI image from the Microsoft Azure Portal.

  • Login to the Azure Portal and search for Azure Stack HCI
  • Select the Download Azure Stack HCI option
  • Select the latest version, your preferred language and accept the license terms:

Select Download Azure Stack HCI.

By default Azure Stack HCI comes with a generous 60 day trial.

Install the Azure Stack HCI Operating System

After mounting the ISO to each of your servers, follow the simple on-screen wizard:

  • Select Language, Time and Keyboard settings
Hci select language
  • Install Now
Azure stack hci install
  • Accept the Terms and Conditions
Azure stack hci terms and conditions
  • Select “Custom: Install the newer version of Azure Stack HCI only (advanced)”
Azure stack hci custom install
Azure stack hci os drive
  • Wait for the installation to complete
  • Once the OS is installed and the server has automatically rebooted, you’ll be presented with a logon screen, similar to a Windows Server core system:
Hci first boot
  • Press CTRL ALT DEL and enter a new, secure complex password for the system as per the Azure Stack HCI requirements: “at least 12 characters long and contains a lowercase character, an uppercase character, a numeral, and a special character.”
  • The administrator password should be configured the same for all HCI servers.
  • Install your server vendors latest drivers and firmware for the HCI OS and reboot the server.
  • If running virtual machines on vSphere/VCP/ESXi, install VMware Tools:
    • Mount VMware tools installer via ESXi/vCenter Server
    • Run D:\setup.exe
    • The Installer may launch behind the PowerShell window
    • Reboot once prompted.
  • Configure the physical networking as per your prior topology choice.
    • Set IP address, Subnet Mask, Gateway and DNS
    • Or providing your servers have been allocated a DHCP address with a working DNS server and a gateway address, usually there is no need to configure a static IP address at this stage. However I would advise setting one, or at least creating DHCP reservations so that the IP does not change in the middle of deployment.
  • You should also refrain from joining your servers to your domain or performing windows updates at this time.
  • You must remove all installation media (Eject CD/DVDs) from the HCI servers before continuing.
  • If you fail to eject all HCI installation media, you’ll encounter the error: AzStackHci_Hardware_Test_MountedMedia_Exists

Setup your time configuration:

  • Login to each server and launch sconfig.
  • Open PowerShell (Option 15)
w32tm /config /manualpeerlist:"ntp.lab.local" /syncfromflags:manual /update
  • Confirm connect time settings with:
w32tm /query /status
date
  • Enable RDP via sconfig (Option 7)
  • Change the computer name of the servers and reboot (Option 2)
  • Next install the Hyper-V role on all servers:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  • Ensure all installation media is removed from the servers.
  • Reboot the servers when prompted.

Azure Configuration

  • On your management system, install the Az Powershell module
  • Register the following resource providers. You must follow these official instructions to do this via the Azure portal, PowerShell or Azure CLI.
    • Microsoft.HybridCompute
    • Microsoft.GuestConfiguration
    • Microsoft.HybridConnectivity
    • Microsoft.AzureStackHCI
  • Create a resource group

Register the HCI servers with Azure Arc

In my lab, I used the following PowerShell to register my HCI servers with Azure Arc:

  • Install Modules

Install-Module Az.Accounts -RequiredVersion 3.0.4
Install-Module Az.Resources -RequiredVersion 6.12.0
Install-Module Az.ConnectedMachine -RequiredVersion 0.8.0
Install-Module AzsHCI.ARCinstaller

  • Set the following PowerShell variables

$Subscription = “YourSubscriptionID”
$RG = “YourResourceGroupName”
$Region = “eastus”
$Tenant = “YourTenantID”
#Optional
$ProxyServer = “http://proxyaddress:port”

Connect to Azure

  • Connect to your Azure account and Subscription
Connect-AzAccount -SubscriptionId $Subscription -TenantId $Tenant -DeviceCode
  • Follow the prompt to authenticate with a device code via your management server browser:
  • Get the Access Token for the registration

$ARMtoken = (Get-AzAccessToken).Token

If you have issues obtaining the access token, consider setting the EnableLoginByWanm to false:

Update-AzConfig -EnableLoginByWam $false
  • Get the Account ID for the registration

$id = (Get-AzContext).Account.Id

  • Ensure the Arc Registration module is installed, then run the Arc Installation script:
Invoke-AzStackHciArcInitialization -SubscriptionID $Subscription -ResourceGroup $RG -TenantID $Tenant -Region $Region -Cloud "AzureCloud" -ArmAccessToken $ARMtoken -AccountID $id
  • If you are using a proxy server, then instead run:
Invoke-AzStackHciArcInitialization -SubscriptionID $Subscription -ResourceGroup $RG -TenantID $Tenant -Region $Region -Cloud "AzureCloud" -ArmAccessToken $ARMtoken -AccountID $id -Proxy $ProxyServer

This will take some time to complete

  • Once the above finally completes on all servers, you should see them listed under the specified Azure resource group

Setup Azure Permissions

  • This section will depend on how your subscription is setup, you should follow this guide to correctly configure your Azure subscription permissions.

Before proceeding, double check that you have completely setup your role assignments.

Also ensure the extensions on each HCI server within the resource group are fully created. In my example below, they are still creating:

Deploying the Cluster from the Azure Portal

Now that Azure and the HCI servers are all configured, we can begin the “fun” part of the deployment process.

Within the Azure Portal, navigate to Azure Stack HCI and select Deploy Cluster:

Azure Portal Deployment – Basics

  • Ensure the correct Subscription and Resource Group are selected
  • Give the cluster a name
  • Select a Region
  • Create a new Key Vault
  • Finally, select all applicable HCI nodes

Once all fields are complete, select Validate Selected Servers

Once validation is successful, select Next: Configuration

If you encounter any validation errors with regards to connectivity, use the HCI Environment Checker on each node to verify connectivity:

Should you have any errors regarding extensions, you can check the status of them by navigating to your HCI resource group, selecting your HCI node and then Extensions:

Azure Portal Deployment – Configuration

Since we don’t have an existing template, we’ll enter our configuration for the first time:

Select Next: Networking

Azure Portal Deployment – Networking

In my lab, I am attempting a very simple deployment topology

Your configuration will likely be different

Storage Connectivity

  • Network switch for storage (Storage NICs connect to a network switch)

Networking pattern

  • Group all management and compute traffic

Intent Details (Compute and Management)

  • Intent Name: Compute_Management
  • Network Adapter 1: Port0

Since I’m using virtual machines as my hosts, the NICs do not support RDMA, so I disabled that under the customize network settings option

Intent Details (Storage)

  • Intent Name: Storage
  • Network Adapter 1: Ethernet2
  • Storage Network 1 VLAN ID: 711

Once again, I disabled RDMA under the customize network settings option

Nodes and cluster IP assignment

  • Manual

Allocate IP addresses to the system and services

  • Starting IP:
  • Ending IP:
  • Subnet Mask: 255.255.255.0
  • Default Gateway: 192.168.1.1
  • DNS Server: 192.168.1.140

Azure Portal Deployment – Management

You will need to recall the following information you submitted when preparing Active Directory:

  • HCI User account (deployment account
  • OU for the cluster recourses
  • Password for the HCI user
  • Local administrator for the servers

Specify a custom location name

  • Custom location name: HCI-Cluster_Custom-Location

Specify cluster witness settings

  • Azure storage account name (Make new)

Specify Active Directory details

This is the domain and OU created earlier when preparing Active Directory

  • Domain: lab.local
  • OU: OU=HCI,OU=Lab,DC=lab,DC=local

Deployment account

This is the domain account created earlier when preparing Active Directory

  • Username: hci
  • Password: ************

Local administrator

This is the local administrator account on each HCI server, they should all be configured with the same password

  • Username
  • Password

Azure Portal Deployment – Security

For the lab, I disabled all security features since I have limited compute and slow storage for encryption. I just needed to get the system up and running for demonstration purposes. – You would clearly not want to do that for production use-cases.

Azure Portal Deployment – Advanced

I only created the infrastructure volumes so I could manually specify the name and settings work workload volumes myself.

Tags

Next you can set tags, which can be useful for organizational / management and/or billing purposes

Azure Portal Deployment – Validation

The resource creation will start automatically and the status for each step will change to “Succeeded” once complete.

Once the resource creation is complete, select Start Validation to proceed through the deployment readiness process.

Validation usually takes between 15 minutes and an hour, depending on the size of the cluster

Once complete, the status for each validation task will change from “In progress” to “Success”

Resolve any failures before continuing

Azure Portal Deployment – Review & Create

Review all configuration then hit Create to start the creation of the HCI cluster

Azure Portal Deployment – Monitoring the Deployment

You can monitor the deployment from the Azure portal:

  • Navigate to Azure Stack HCI > Al Clusters
  • Select your cluster
  • Expand settings on the left pane and then Deployments
  • You’ll see all the deployment steps and progress from here

Managing the Azure Stack HCI Cluster

With the cluster successfully deployed, you can now manage it via Azure, Windows Admin Center, PowerShell or any other supported tool.

You can download Windows Admin Center here.

Once WAC is installed, you can add an Azure Stack HCI cluster:

Specify the FQDN of the cluster and then connect.

Once connected, you’ll have access to manage the entire cluster, modify settings, create volumes and manage both virtual machines and Kubernetes.

If you enjoy reading my blog, consider subscribing to my newsletter

I never send out spam and you can unsubscribe at any time

author avatar
Graham
Graham works closely with VMware & Microsoft solutions. He is a VMware Certified Implementation Expert, 8x VMware vExpert & a VMware User Moderator on the official VMware VMTN forums. Feel free to reach out via Twitter @VirtualG.uk or email: contact@virtualg.uk

2 Comments

  1. Nice article I’ve been struggling to get Azure Stack HCI installed on VMware workstation for a week.

    One thing you didn’t mention that people might run into is that it looks like the TPM validation code checks whether the TPM is valid days is greater than zero, so you may find if you create a new VM the TPM certificate is created and Deploy Cluster fails the validation. I put some notes here:

    https://david-homer.blogspot.com/2024/09/solved-azure-hci-stack-deploy-cluster.html

    1. Hi David
      Thanks for the information on TPMs. In my vSphere lab, I created virtual TPMs for the VMs on the same day as deployment and I didn’t have any issues.

      There was likely a recent change to the function that checks the TPM (These things are being constantly updated in Azure and also in the extensions)

      Many thanks for sharing!

      Graham

Leave a Response

This site uses Akismet to reduce spam. Learn how your comment data is processed.