The Most Awesome Script You Will Ever Need For your Azure Stack Development Kit deployments

I have in the past used Matt Mcspirit’s script, the Azure Stack Development KIt Configurator and then thought it was an awesome script. Since the first time I used it some cool improvements have been added along with the over performance of the script. This by far is the most awesomest script that you will ever need for your Azure Stack Development Kit deployments. The readme and directions on Github are very good but I wanted to just go over my experience running the most recent script released for ASDK build 1.0.1809.0.90.  So first please go visit his Github repository to grab the information you will need. I will be deploying pretty much everything to my ASDK and keeping most default settings that are provided.  I will be using Azure Active Directory (AAD) for my identity but his script does work with ADFS configured ASDK’s.  He also has support for Offline/Disconnected configurations as well. The first thing you will need of course is a newly deployed ASDK running build 1.0.1809.0.90.  There are plenty of good blogs out there that can help with this step if needed.  Also, Microsoft’s Documentation is very good and that is what I use a majority of my time.  So go ahead and check out Install the Azure Stack Development Kit (ASDK) on Microsoft Document Website. Note:  You will also need to download an evaluation copy of Window Server 2016 before running the configuration script.  I have downloaded a Window Server 2016 ISO and placed it in a folder we will refer to again later when we run the configuasdk.ps1 script.  You can actually download the evaluation during the setup and installation of your ASDK.

Download ConfigASDK.ps1 Script.

So now we have our ASDK freshly deployed.  Nothing else has been done on the box.  So from an elevated PowerShell window you will need to run the following PowerShell scripts.  I am using the same scripts he provides already.  I just added one more step to create the location of all the downloads will go. #  Create directories on the D drive.
New-Item -ItemType Directory -Force -Path “D:\ConfigASDK” New-Item -ItemType Directory -Force -Path “D:\ASDKFiles” Set-Location “D:\ConfigASDK”
#  Download the ConfigASDK Script.
Invoke-Webrequest -UseBasicParsing -OutFile ConfigASDK.ps1

Run the Script

The next step is to run the configASDK.ps1 script.  This is pretty well documented on his Github site mentioned earlier.  I used the following example he has posted with changes to specific parameters.
.\ConfigASDK.ps1 -azureDirectoryTenantName “” -authenticationType AzureAD -downloadPath "D:\ASDKfiles" -ISOPath "D:\WS2016EVALISO.iso" -azureStackAdminPwd 'Passw0rd123!' -VMpwd ‘Passw0rd123!’ -azureAdUsername “” -azureAdPwd ‘Passw0rd123!’ ` -registerASDK -useAzureCredsForRegistration -azureRegSubId “01234567-abcd-8901-234a-bcde5678fghi”
The above will install everything including MySQL RP, the SQL RP, App Service RP, and it will also download and install some nice tools that you can use like Putty, Visual Studio Code, and more. If by chance you don’t want any of those are just want to exclude a few you can add switches to help skip those deployments.  Now, if you want to add those at a later time you can just re-run the script without those switches and it will install those RP’s you choose not to install the first time.
  • Use -skipMySQL to not install the MySQL Resource Provider, Hosting Server and SKU/Quotas.
  • Use -skipMSSQL to not install the Microsoft SQL Server Resource Provider, Hosting Server and SKU/Quotas.
  • Use -skipAppService to not install the App Service pre-requisites and App Service Resource Provider.
  • Use -skipCustomizeHost to not customize your ASDK host with useful apps such as Putty, Visual Studio Code, Google Chrome and more.
Now, run the above ConfigASDK.ps1 script with the current switches mentioned above basically walk away.  Depending on your ASDK hardware this can take anywhere from 4 hours and more.  Once the configuration script is done your ASDK will be configured and ready for your development pleasure.
There is a lot this script does and all of it is listed on his Github page.  I will list a few things but please feel free read more on his site.

Automation Included

  • Installs Azure Stack PowerShell and AzureRM modules
  • Tools installation (Azure Stack Tools)
  • Registration of the ASDK to Azure (Optional – enables Marketplace Syndication)
  • Windows Server 2016 Datacenter Evaluation (Full + Core) images added to the Platform Image Repository
  • Ubuntu Server 16.04-LTS image added to the Platform Image Repository
  • Corresponding gallery items created in the Marketplace for the Windows Server and Ubuntu Server images
  • Gallery item created for MySQL 5.7 and SQL Server 2017 (both on Ubuntu Server 16.04 LTS)
  • Automates adding of Microsoft VM Extensions to Gallery from Marketplace (for registered ASDKs)
  • MySQL Resource Provider installation
  • SQL Server Resource Provider installation
  • Deployment of a MySQL 5.7 hosting server on Ubuntu Server 16.04 LTS
  • Deployment of a SQL Server 2017 hosting server on Ubuntu Server 16.04 LTS
  • Adding SQL Server & MySQL hosting servers to Resource Providers including SKU/Quotas
  • Automates deployment of the latest App Service release using dynamically constructed JSON
  • Set new default Quotas for MySQL, SQL Server, Compute, Network, Storage and Key Vault
  • Creates a Base Plan and Offer containing all deployed services
  • Creates a user subscription for the logged in tenant, and activates all resource providers
  • Installs a selection of useful apps via Chocolatey (Putty, Chrome, VS Code, WinDirStat, WinSCP, Python3)
  • Configures Python & Azure CLI for usage with ASDK
Don’t forget to reach out to Matt and let him know how much this script helped you out.  If you have any feedback please let him know as well.

Final Thoughts

To be honest this was a very easy blog to write.  Matt did most of the work and I just ran the script.  I love our community around Azure Stack and these types of resources are a tremendous help.

Spread the word. Share this post!