Step-By-Step: Export a Resource Group as an ARM Template.

Hello Folks,

We’ve been talking about ARM templates for a while now:

  1. DevOps Basics: Infrastructure as Code – ARM Templates
  2. DevOps Basics: ARM Templates Part 2
  3. DevOps Basics: Infrastructure as Code – The PowerShell Method

Yet, i still get questions about the difference between the ARM model and the classic Cloud Service model.  If you are still confused, watch the following video from Corey Sanders, Director of Program Management on the Microsoft Azure Compute team answering common questions regarding when to use "Classic" Azure services vs "Resource Manager" ARM templates.

ARM templates are not trivial to build, yes, we have plenty of samples available for you to download and modify.  However, we can now export an existing environment to a ARM Template through the portal, or retrieve the template that was used for a particular deployment.  This week we will cover how to export an existing environment.

This provides 2 big benefits:

  1. You can easily automate future deployments of the solution because all of the infrastructure is defined in the template.
  2. You can become familiar with template syntax by looking at the JSON file that represents your solution.

Export your existing environment

From the resource group blade, in the portal, you can export the template that represents the current state of the resource group.

1- In the portal, select the resource group you need/want to export.  In my case i selected my spfhawest resource group.  It’s a Highly Available SharePoint Farm in US West. image

2- Once you have selected the resource group. Select Export template in the settings blade. image

3-In the “Export resource group template” blade you can (1) review/edit the template, or (2) Download, save or deploy the template. image

4- But is you look closely, you’ll notice that the Resource Manager generates 5 files for you: image

 

  1. The template that defines the infrastructure for your solution
  2. A parameter file that you can use to pass in values during deployment
  3. An Azure CLI script file that you can execute to deploy the template
  4. An Azure PowerShell script file that you can execute to deploy the template
  5. A .NET files  that you can execute to deploy the template

I hope this answered some questions.  please let us know in the comments what you would like us to cover.

Cheers! Signature

Pierre Roman
@pierreroman