CICD Pipeline with Azure Stack – Part 3

This is part 3 in a series.  You can find part 1 here and part 2 here.  Part 4 is now available here.

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”

CICD Pipeline with Azure Stack – Part 2

This is part 2 of an ongoing series on building a CICD pipeline in Azure Stack.  You can find part 1 here, part 3 here, and part 4 here.

When I last left things, I had successfully installed TFS on a virtual machine in Azure.  And I wrote the template in such a way that it could be deployed to Azure Stack as well.  After completing that process, I started working through deploying an ARM template through TFS using an automated build process.  It turns out that the server running the build agent needs to have Visual Studio installed in order to deploy resources to Azure.  I have since updated my ARM template and PowerShell script to automate the installation of Visual Studio Community 2015 and the TFS build agent.  I also updated the template to take two new parameters: FileContainerURL and FileContainerSASToken.  The former points to the blob container that holds the necessary installation files.  The latter passes a SAS Token for read and list access to the blob container.  Continue reading “CICD Pipeline with Azure Stack – Part 2”

CICD Pipeline with Azure Stack – Part 1

This is the first post in a series of getting a CICD pipeline working with Azure Stack.  You can read part 2 here, part 3 here, and part 4 here..  I will add links to additional posts as they are created.

There are a few things that have been coming up a lot lately at work that I would like to dive into some more to get a better understanding.  The first is Infrastructure as Code (IaC).  I’ve started doing my fair share of this in both Azure and AWS, but I feel like I’m just starting to truly get my head around the best practices and patterns to use when deploying IaC.  The next trend is a move towards continuous integration and continuous deployment, CICD.  How can I take the principles of a CICD pipeline and apply them to the IaC work I’ve been doing?  Finally, there is the hybrid cloud element that is coming with Azure Stack.  Unless you’ve been living under a rock, you’ve probably heard about Azure Stack.  If not, here are a couple resources to get you started.  I wanted to put all of those items together and build out a project that uses them.

Continue reading “CICD Pipeline with Azure Stack – Part 1”