In the last two parts we deployed an Azure Stack Development Kit on an Azure VM and got it registered with Azure. Then we created an Offer and Plan for the default user and started the download of marketplace items for use on Azure Stack. Now that those items have completed their download, we can move on to the process of installing the Resource Providers (RPs) for Microsoft SQL Server (MSSQL), MySQL Server, and the App Service. In this post I will cover the process and scripts you can use to get the MSSQL and MySQL RPs running. The App Service will be a separate post, due to the additional complexity involved.
With the introduction of Dv3 and Ev3 VMs in Microsoft Azure, it became possible to run nested virtualization on Azure. Since I’ve got Azure Stack on the brain these days, my immediate thought was, “I wonder if I can run Azure Stack on Azure?” (cue Inception music). Not only was the answer yes, but others had already started the process for me. Following in the footsteps of Daniel Neumann and Florent Appointaire, I was able to bet the process running. One of the engineers at Microsoft took some of that work, added their special sauce and rolled out a GitHub repo that helps you through the process. I have forked that repo, and started adding some automation myself.
If you are planning to add Linux Images to your Azure Stack deployment, first I would recommend reading through the documentation on the Azure Stack pages for Adding a VM Image and Using Custom Linux Images. From there you can get the base images and the process for adding the images to Azure Stack. What they don’t include is the Azure Cloud information for the various images, and if you would like to be able to use a JSON template against both Azure and Azure Stack without changing the image information, then you will want the publisher, offer, sku, and version to match. In this post I will walk through the basics of adding one Linux image, how to get the necessary information from Azure Cloud, and the current information for the images you may want to run.
First off, let me quell your anticipation. I got it working! It was not as straightforward as I might like, but it will work. If you haven’t already read post three, I would recommend doing so. The long and short of it is that the build task Azure Resource Group deployment in TFS doesn’t understand the Azure Stack environment. It doesn’t know how to talk to it, so any build task is going to fail. One of the engineers at Microsoft suggested I use a PowerShell task to deploy instead, which I did. That was not as simple as I would have liked, but here is what I had to do. Continue reading “CICD Pipeline with Azure Stack – Part 4”
As I mentioned in my previous post, I was “ready” to deploy my TFS deploy template to Azure Stack. And as predicted, the universe laughed at my funny plans. The deployment failed due to a required Windows Update on the target image. I didn’t run into this on Azure b/c the Windows Server 2012R2 image on Azure is more up to date than the one that ships with Azure Stack. At this point I could have just installed TFS and Visual Studio manually, but no I refuse to give up my dreams of an automated future. I spent the next week creating a PowerShell script that will install all available, required Windows Updates, and then reboot and repeat until there are no updates left. Then I ran that script against a Windows Server 2012R2 VM in Azure Stack, and used that updated VM to create an updated VM Image. You can read all about that adventure here. Let’s just say that the yak is well and truly shorn. Continue reading “CICD Pipeline with Azure Stack – Part 3”