In this post we will walk through the installation and configuration of Azure Stack Web Apps. If you start for the first time with adding a extra resource provider we have to update the Azure Powershell module on the CLIENTVM. If you already have followed the other post on adding the SQL Resource provider than this next step is already done.
On the client VM login as Administrator and open Add/Remove Programs and uninstall Azure Powershell. Then install the latest version using this link.
Now open the Azure Stack Portal and log in as Service Admin. Create in the Default Provider Subscription a Storage Account. In my case I called it paas and added it in a new Resource Group PaaS. This storage account will be used to host the Web App installation files that we will upload later on.
*note; if you downloaded Azure stack after February 23 ’16 you already have the .net35 baked into the image. You can skip the part adding .net35 to the 2012 R2 image.
Again if you haven’t followed the SQL resource provider guide, we need to add some features to the Windows 2012 R2 image that is in the marketplace. Create a new image that includes the Net-Framework-Core feature using this post. Once you have created the image and added it to the gallery you can download this script to deploy the SQL server that we need for Websites. Extract the download and if you have renamed your SKU for the new image name in the manifest.json earlier, update the SqlServiceDSCTemplate.json in the Templates folder to have the default value to the new image you have created earlier. In my case I only renamed the VHD and edited the manifest.json to point to the new vhd file (with .net35). When done open Deploy-SqlServerDSC script in ISE and run with F5, The reason why I choose to use this method is when deployment fails for whatever reason, just run the last 2 lines to redeploy the same server again. When running it from scratch will deploy new storage account and VM instance based on a random number:
Now at this moment the SQL VM is being deployed and in the meantime we can download the Websites Appservice and run it on the ClientVM. When you execute the program a menu appears:
Choose to deploy using Azure Resource Manager. Then accept the license terms and choose next again:
Now we created an storage account in the beginning of the post. Grab the name and the storage key and enter them here:
Click next and it will create a container in the storage account and put the artifacts we need for app service template in the container:
Now sit back and relax as this can take a while to finish.
Ok, after a some coffe and lunch the setup and the SQL deployment is finished:
Now deploy the ARM template from the setup to Azure Stack using portal or template. I used PowerShell to deploy the websites servers using this script:
#Azure Stack App Service ARM Template
#Template location: http://paas.blob.azurestack.local/appservice-template/AzureStackAppServiceTemplate.json
#Invoke from Portal:
Invoke-WebRequest "http://paas.blob.azurestack.local/appservice-template/AzureStackAppServiceTemplate.json" -OutFile .\AzureStackAppServiceTemplate.json
New-AzureRmResourceGroupDeployment -Name "WebAppsDeploy01" -ResourceGroupName "WebsitesSQL" -TemplateFile .\AzureStackAppServiceTemplate.json `
-storageAccountNameParameter "webapps" -adminUsername "admin" -adminPassword (ConvertTo-SecureString -AsPlainText -Force "P@ssw0rd!") -environmentDnsSuffix webapps.azurestack.local `
-sqlservername 10.0.2.4 -sqlsysadmin sa -sqlsysadminpwd (ConvertTo-SecureString -AsPlainText -Force "P@ssw0rd!")
In the next post we will will continue with the installation of Azure Stack Web App Service.