I have been working for some time to fully automate ASDK installation on an Azure VM since then I published the kind of first version of this article So, I think it is ready to be released, here is GitHub repo for ARM template and materials that completes all the prerequisites and workarounds. All you need to do is Deploy ARM template and logon to Azure VM with using Local Administrator account and run Install-ASDK.ps1 script which will;
- Prompts Local Administrator password, Azure AD Global Administrator user, Azure AD Domain name and Password
- Starts downloading ASDK (Takes about a minute)
- Extracts ASDK (Takes about half an hour)
- Mounts CloudBuilder.vhdx
- Copy required files and folders to C:\ from CloudBuilder.vhdx (Takes about 5 minutes)
- Dismounts CloudBuilder.vhdx
- Registers a scheduled job to watch setup progress to fix following configurations
- Creates Internal Virtual switch (as a workaround since Azure VM does not allow MAC spoofing)
- Sets predefined IP address to new NIC connected to Virtual Switch
- Connects BGPNAT01 VM's NAT adapter to new virtual switch
- Either Enables Internet Connection Sharing (ICS) or configures NAT** to allow Azure Stack Fabric VMs to access Internet. This option is configurable with $ICS variable (Default installation uses ICS)
- Unregister the scheduled job once it is done.
- Runs InstallAzureStackPOC.ps1 with predefined parameters.
So the whole process takes around 5-6 hours to complete. While it is installing you may focus something else 🙂 Since Auto-shutdown enabled in the ARM template by default, make sure that VM's Auto-shutdown does not interfere with the installation process.
In case if you have any issues during the installation process just open a new PowerShell windows and switch to c:\CloudDeployment\Setup, run InstallAzureStackPOC.ps1 -rerun
**Please aware that currently there is an issue with NAT option which causes VM to BSOD from time to time. I will update on this once there is a solution/workaround.
Hope this helps you to ease Azure Stack evaluation process.
Let me know if you face with any issue or consider contributing the code on Github