Overview
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?

ADVM
 Virtual machine that hosts Active Directory, DNS, and DHCP services for Microsoft Azure Stack. These infrastructure foundational services are required to bring up the Azure Stack as well as the on-going maintenance.
ACSVM Virtual machine that hosts the Azure Consistent Storage services. These services run on the Service Fabric on a dedicated virtual machine.
MuxVM Virtual machine that hosts the Microsoft software load balancer component and network multiplexing services.
NCVM Virtual machine that hosts the Microsoft network controller component, which is a key component of the Microsoft software-defined networking technology. These services run on the Service Fabric on this dedicated virtual machine.
NATVM Virtual machine that hosts the Microsoft network address translation component. This enables outbound network connectivity from Microsoft Azure Stack.
xRPVM Virtual machine that hosts the core resource providers of Microsoft Azure Stack, including the Compute, Network, and Storage resource providers.
SQLVM Virtual machine that hosts SQL Servers which is used by various fabric services (ACS and xRP services).
PortalVM Virtual machine that hosts the Control Plane (Azure Resource Manager) and Azure portal services and various experiences (including services supporting admin experiences and tenant experiences).
ClientVM Virtual machine that is available to developers for installing PowerShell, Visual Studio, and other tools.
Storage services in the operating system on the physical host include:
ACS Blob Service Azure Consistent Storage Blob service, which provides blob and table storage services. SoFS Scale-out File Server. ReFS CSVResilient File System Cluster Shared Volume. Virtual DiskStorage Space, and Storage Spaces Direct are the respective underlying storage technology in Windows Server to enable the Microsoft Azure Stack core storage resource provider.

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:
stack3
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 it inside a nested VM on Server 2016 TP5 or 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:\Microsoft Azure Stack POC”
    image
  3. Create a Virtual Machine in Hyper-V and give it the following specifications:
    • Name:  AzureStackPOC
    • 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.
      • Use the following  parameters if you don’t have DHCP or you require a proxy to gain internet connectivity:
        • NATVMStaticGateway (String) – Sets the default gateway used in the static IP address for the NATVM. Only use this parameter if the DHCP can’t assign a valid IP address to access the Internet. If this parameter is used, then you must also use the NATVMStaticIP parameter. For example
          .\DeployAzureStack.ps1 –Verbose -NATVMStaticIP 10.10.10.10/24 – NATVMStaticGateway 10.10.10.1
          
        • NATVMStaticIP (string) – Sets an additional static IP address for the NATVM. Only use this parameter if the DHCP can’t assign a valid IP address to access the Internet. For example:
           .\DeployAzureStack.ps1 –Verbose -NATVMStaticIP 10.10.10.10/24
          
        • ProxyServer (String) – Sets the proxy information. Only use this parameter if your environment must use a proxy to access the Internet. Proxy servers that require credentials are not supported. For example:
          .\DeployAzureStack.ps1 -Verbose -ProxyServer 172.11.1.1:8080
          
    • OS Disk:  Select Use an existing VHD and make a copy of the WindowsServer2016Datacenter.vhdx that was extracted.  (Ideally put this on SSD if possible). DO NOT USE THE MASTER COPY AS THIS IS USED TO SETUP THE AZURE STACK LATER!
    • Data Disks:  Add 3 x Additional Data Disks, Dynamically Expanding 300Gb each in size.  (Ideally put these on SSD if possible).
      image
  4. Once the VM is created you need to enable nested virtualization on the VM.  Use the following command:
    Set-VMProcessor -VMName AzureStackPOC -ExposeVirtualizationExtensions $true
  5. 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/
  6. 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:
    image
  7. Start the VM and logon.  Open Disk Management and bring the disks Online and Initialize them.
    image
  8. If you are trying to install the Azure Stack on hardware less than 64Gb then you need to amend the PoCFabricInstaller.xml file which is located in D:\AzureStackInstaller\PoCFabricInstaller folder
    image
    Open this file and amend it as necessary.  I had an issue deploying using 6 CPU Cores on my VM as one of the VM’s requires 8 vCPU’s.  In addition to this, amend the memory allocation of the VM’s if you are using less that 64Gb of memory.
    image
    Below is the error you will get if a VM cannot be created due to resource allocation issues.
    image
  9. Turn of IE Enhanced Security In Server Manager (Otherwise Signing into Azure AD will fail).
  10. Copy the Extracted Files to the C: drive of the VM.  DO NOT try and be clever like I did and map a drive to it.  It will not work and you will get all kinds of errors.
  11. Open PowerShell and navigate to “C:\Microsoft Azure Stack POC” and run DeployAzureStack.ps1
  12. When promoted enter the admin password you want to use for the POC.
    image
  13. When prompted Enter the credentials for your Azure Active Directory Account. This user must be the Global Admin in the directory tenant.
    image
  14. In the PowerShell window at the account selection confirmation prompt, enter y. This creates two users and three applications for Azure stack in that directory tenant: an admin user for Azure Stack, a tenant user for the TiP tests, and one application each for the Portal, API, and Monitoring resource providers. In addition to this, the installer adds consents for the Azure PowerShell, XPlat CLI, and Visual Studio to that Directory Tenant.
  15. You will be asked a couple of confirmation questions.  Answer appropriately. 
  16. The installation should now start.
    image
  17. Now don’t walk away.  After a couple of minutes the machine will reboot as the Hyper-V role is being installed so hang around until that occurs and log back in and the script will continue to run.
  18. The installation takes a few hours but you should keep an eye on it as it will reboot a few times and you need to log back in to see the progress.
  19. Once complete you should see the following screen:
    image
  20. Now we need to log onto the Client VM (an RDP shortcut should have been created on the Azure Stack POC VM desktop.
    image
  21. Log onto the client using the AzureStackUser account and the password you provided in the script earlier.
    image
  22. Open the Azure Stack POC Portal by clicking on the shortcut icon on the Client Desktop:
    image
  23. Login the portal wth your Azure Credential (ie your Outlook or Hotmail account).
    image
  24. Click Accept:
    image
  25. You should now be logged into the Azure Stack POC Portal:
    image
  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.