August 17, 2017

Install Azure Stack in Azure - Part 3

And Lo, it was time to run some Azure Stacks. If you haven't read the other two parts of this series, I suggest you do that now. We're picking up where we left off.

With PowerShell up and going, cd into c:\CloudDeployment. Note that there are four folders present. In a sec, there will be a bunch more and you'll need to move fast to avoid re-runs. Now CD into Setup and kick off our deployment command:

.\InstallAzureStackPOC.ps1 -InfraAzureDirectoryTenantName -NATIPv4Subnet -NATIPv4Address -NATIPv4DefaultGateway -Verbose


  1. Make sure you run the command that says POC, not the one that doesn't. HA
  2. Your tenant name is your Azure AD tenant that you have a tenant admin of.
  3. The NAT commands here tell CloudBuilder that you are going to NAT from the Level 3 VMs (see post 1 again) to the Level 2 CloudBuilder VM which in turn NATS to the HOST (which sits on Azure and has its own SDN). Meta much?

When you run the command, it will ask for an Admin Password - this will be the Azure Stack administrator password and it MUST be the same as the Admin password for CloudBuilder.

As soon as this command starts, from Windows Explorer, look up one level at c:\CloudDeployment. Very quickly, get yourself down into this folder:

C:\CloudDeployment\Roles\PhysicalMachines\Tests\BareMetal.Tests.ps1 and right click, EDIT to open it up in PSE. Do a SEARCH for this text $isVirtualizedDeployment

You will be able to find it THREE TIMES in this file. Right in front of the variable is the word -not. Remove the -not in all three places and quickly hit SAVE.

Close PSE. What did we just do? We told the installation routine to NOT puke on the fact that we are running in a virtualized environment. Like I have said several times: NOT SUPPORTED. meh.

After a few minutes, you will be asked to login to Azure AD via a popup. (not pictured) - when this box pops up, it will give you a script error. Don't freak out! You are going to ADD an exception to this page (click the Add Exception button) ... TWICE. After the second exception gets added in, you'll see the Azure login box.

Log in with a TENANT admin. Remember from Post 1: Tenant Admin must NOT be a MSA (, etc), must be a Tenant Admin and Subscription Owner and must NOT be multi-factor auth enabled.

Once you auth, sit back for a bit, or explore. It will take a bit for things to start happening. Me, I get Matrix'y mesmerized by the verbose logging.

If you're game, open up Network Connections Hyper V Manager and watch some magic happen:

This is an important will see the verbose output "failing" to ping things. This is GOOD. It is searching to confirm that the addresses it wants to use are in fact, available. So, ignore.

In HyperV manager, you won't see anything for a bit, but after a while, you will see the first Level 3 Azure Stack VM come up. It is the internal Azure Stack Domain Controller (AzS-DC01).

Once you see this VM come online, you are approaching the first "what's happening" moment - CloudBuilder (your Level 2 VM) is going to join that new domain that was just created and the computer will AUTO RESTART.

BEFORE it auto restarts, we're at the next "move fast" moment. In HyperV Manager, open up a Console to AzS-DC01 and log in as soon as you can - you WILL have to wait a while cause it is still deploying the domain controller. As soon as possible, however, get into the VM (it is Server Core of course) and start PowerShell from a command prompt. Run this PowerShell command:

Enable-WSManCredSSP -Role Server

Don't forget to logout! And then close the console.

Now, have some patience. After a few more minutes, CloudBuilder will restart and then log itself in automatically (now as AZURESTACK\AzureStackAdmin). Again, the password for this user is the same password that you gave CloudBuilder. Once it auto-logs in, it will open up PowerShell on its own and continue the process of installation. At this point, I open up HyperV and Fail over Cluster manager to monitor how things are going.

In the next post, we'll continue our more VMs come online. Grab a coke and come back!