The Azure Stack is undoubtedly the future of our on premises data centers.  Why?  Well because we have always wanted to do things the “Microsoft” way and now we can.  We just set off the deployment and it sets up the environment exactly how Microsoft designed it to work.  They tell us when to patch it, how to manage it and we get the benefit of a optimally performing platform.  What else could we ask for?

If you look at the technical requirements they are pretty high so having a play with it is not an easy task.  The Azure Stack POC is a one-node deployment of Azure Stack Technical Preview 1. All the components are installed on the host machine, and in the virtual machines of the deployment. The following diagram illustrates the logical architecture of the Azure Stack POC and its components.

What VMs are created?

The Azure Stack POC offers services using the following VMs on the POC host:

  • MAS-ACS01 Virtual machine hosting Azure Stack storage services.

  • MAS-ADFS01 Virtual machine hosting Active Directory Federation Services. This virtual machine is not used in Technical Preview 2.

  • MAS-ASQL01 Virtual machine providing an internal data store for Azure Stack infrastructure roles.

  • MAS-BGPNAT01 Virtual Machine acting as an edge router and provides NAT and VPN capabilities for Azure Stack.

  • MAS-CA01 Virtual machine providing certificate authority services for Azure Stack role services.

  • MAS-CON01 Virtual machine available to developers for installing PowerShell, Visual Studio, and other tools.

  • MAS-DC01 Virtual machine hosting Active Directory, DNS, and DHCP services for Microsoft Azure Stack.

  • MAS-GWY01 Virtual machine providing edge gateway services such as VPN site-to-site connections for tenant networks.

  • MAS-NC01 Virtual machine hosting Network Controller, which manages Azure Stack network services.

  • MAS-SLB01 Virtual machine provides load balancing services in Azure Stack for both tenants and Azure Stack infrastructure services.

  • MAS-SUS01 Virtual machine hosting Windows Server Update Services, and responsible for providing updates to other Azure Stack virtual machines.

  • MAS-WAS01 Virtual machine hosting portal and Azure Resource Manager services.

  • MAS-XRP01 Virtual machine that hosts the core resource providers of Microsoft Azure Stack, including the Compute, Network, and Storage resource providers.

Where are we going with Azure Stack?

Why Azure on prem? Well the evolution of the data center is changing.  The following slide says it all:


I suggest you watch this video to get a better insight on where this is going, its rather interesting:

Lets get on with the installation.

How do I install it?

In this blog I will outline how you can install Azure Stack TP2 inside a nested VM on Server 2016 RTM (or VMware ESXi).  This is a great way in which to test and have a play with this amazing product which I am very excited about.

Lets get on with the install.

  1. Download Azure Stack POC items from https://azure.microsoft.com/en-us/overview/azure-stack/try/?v=try  Its a large install so ensure you download it in advance.
  2. Extract these files.  In this article I have extracted them to “D:\” on my physical host machine.


  3. Run the MicrosoftAzureStackPOC.exe file which extract a vhdx file called “CloudBuilder.vhdx”
  4. Copy the CloudBuilder.vhdx file to a location you wish to store the VM (ideally on an SSD drive)
  5. Create a Generation 1 Virtual Machine in Hyper-V and give it the following specifications:
    • Name:  AzureStackPOC (or something else of your choosing)
    • CPU:  As many as possible.  In this article I have given the VM 6 Cores.
    • Memory:  Again, as much as possible.  In this article I have given the VM 64Gb.
    • Network:  Connect the network to a Virtual Network that has Internet Connectivity.
    • OS Disk:  Select the CloudBuilder.vhdx file you have move or located above.
    • Data Disks:  Add 4 x Additional Data Disks, Dynamically Expanding 200Gb each in size.  (Ideally put these on SSD if possible


  6. Now edit the CloudBuilder.vhdx file in the settings of the VM and extend it to 200Gb.


  7. Now you need to enable nested virtualization on the VM.  Use the following command (Replacing IC-OR-AZS-01 with your VM Name):

    Set-VMProcessor -VMName IC-OR-AZS-01 -ExposeVirtualizationExtensions $true

  8. You can also achieve the same thing with VMware if you wish.  Follow this article for more info http://www.vladan.fr/windows-server-2016-hyper-v-on-vmware/
  9. A really important step is to allow MAC Address Spoofing on the Network Card.  Open up the settings of the Azure Stack VM and navigate to Network Adapter > Advanced Features and check Enable MAC address spoofing:


  10. Start the VM.


  11. Leave the language defaults and click Next.


  12. You can enter a product key if you wish (the above is for Host Activation) although it doesn’t make any difference as this VM installation is for testing purposes as you will see by the watermark in the bottom right hand corner of the VM later.


  13. Accept the Licence Terms.


  14. Enter a Local Administrator password for the VM and click Finish.
  15. Once logged in open command prompt and run the following command to initialize the 4 x Data Disks you added when creating the VM.

    Get-Disk | Initialize-Disk


    You may receive errors due to the OS disk already being initialized.  No need to panic.

  16. Now you need to edit the BareMetal.Tests.ps1 file located in the C:\CloudDeployment\Roles\PhysicalMachines\Tests folder.  Open this file in PowerShell ISE and navigate to line 376.


    Change $false to $true which will stop the script failing when checking to see if the Azure Stack is running inside a VM.

  17. Next go to line 453. 


    Change the last part of the line to read “Should Not BeLessThan 0”

    This will stop the script checking for the required amount of cores available.

  18. Now in the command pane navigate to C:\CloudDeployument\Configuration and run InstallAzureStackPOC.ps1


    You will be prompted for an Admin Password for the Domain.

  19. Next you will be prompted for an Azure AD Account which must NOT be a live account.


  20. The Azure Stack will now run, reboot and continue the script.


  21. Depending on your hardware, installation might take a couple of hours to finish.
  22. During the installation, you may lose network connectivity from time to time, as the script will create 3 vNICs for the management host and also will join this host to the domain and restart it.


  23. The TP2 installation and troubleshooting experience is much easier than in TP1. Whilst the installation is completing:
    • You can always check C:\CloudDeployment\Logs to see the actions being taken by the installation script, including individually executed scripts. You will also see summary.xml files when your installation either finishes or fails.
    • In TP2, installation is decomposed into individual steps (for instance, 40.01). You can see what each instance is here https://azure.microsoft.com/en-us/documentation/articles/azure-stack-troubleshooting/
    • You can rerun your deployment from a specific state. All you need to do is to import two modules and provide a step number:
      • Import-Module C:\CloudDeployment\CloudDeployment.psd1 -Force
      • Import-Module C:\CloudDeployment\ECEngine\EnterpriseCloudEngine.psd1 -Force
      • Invoke-EceAction -RolePath Cloud -ActionType Deployment -Start 40.01 –Verbose
    • Note you don’t need to run the script from the start just run the commands above starting from the point where it failed and the setup will continue from there otherwise it will take days to install Smile


    • If you want to change the settings, passwords, or parameter values for the installation script, you need to start the deployment from the beginning.
  24. Be aware, in my environment on my first attempt I had to keep restarting the script as per the steps above.  I’m not sure why yet but I expect is was due to the speed of the VM I was using and how quickly the VM’s were rebooting, I just kept restarting the script at the point it stopped and it installed fine eventually.
  25. Once the installation complete, you can open an RDP session to MAS-CON01 and click on the Azure Stack Portal icon to open the portal as a service administrator.
  26. In the next post I will go into how to create an offer, a plan and get a subscription and then how we can create some VM’s.


Microsoft Azure Stack Course (MOC)

Microsoft are even currently writing an Azure Stack Microsoft Official Curriculum course: Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack.  The date for release is yet TBD but its exciting times for the Azure Stack and the Software Defined Datacenter.