Monday, June 15, 2015

Azure Resource Group Templates: Infrastructure as a Code [Part 1]


[Part 1] : Azure Resource Group Templates: Infrastructure as a Code (this Post!)
[Part 2] : Azure Resource Group Templates: Use Github quickstart template


  • Part 1 uses the template that comes along with Powershell command lines. The chosen template is sharepoint that is used as a ground for orther variant configuration. You will be able to fully customize it and archive it as “Infrastructure As A Code”
  • Part 2 uses a template present in that has a button that redirects you to with the template ‘instanciated’ for you. You just need to provide few parameters.

First get the latest version of Azure Powershell using Microsoft Web Platform Installer:


Note: for extra security, you have to sign in befor being able to use the various cmdLets of the Azure Service Management.
It will open a Web Browser Login page. The Powershell CmdLets to get this login is given in the error message below.


Get the Configuration Manager CommandLets

PS C:\> Switch-AzureMode -Name AzureServiceManagement

Then, among the 800 templates and over! pickup the one you are interrested in (to be handy for reading, I exported this list huge into a Word processing document). (source : 


Now pickup and download the template (or templates) that you are interrested in (type-in the exact same name). In our case, ‘Microsoft.SharePointFarm.0.2.31-preview’image


PS C:\> Save-AzureResourceGroupGalleryTemplate -Identity Microsoft.SharePointFarm.0.2.31-preview c:\tmpVince

This will download a single *.JSON file.
Alternatively, you can get them from here :


In VS 2015 RC (at least), create a new project of type “Azure Reource Group”

Pick up any template you wish. Below is an example of “Web app + SQL” template.


To better understant the power of Azure Resource Manager, lets start with a blank template that will let you start with a minimum of files (i.e. not fully blank!)

Select the template JSON file, then in the outline window, click the “Add” icon. Add the ingredients you like (below Application Insights for Web Apps is illustrated for the sake of the example. Not needed in our Sharepoint example).
image image


For the Sharepoint server, just add our recently downloaded *.JSON files

The new VS2015 RC editor helps you visualize the various parameters and resources

Once happy with your configuration, as any VS project, in order to deploy, one would … right-click and “deploy”:

Then, fill in the parameters (either here or later VS will popup you windows), and hit ‘Deploy’ !

image => image

Wait for few minutes, and watch out for the Output Window.

If anything goes wrong, you will be notified, such as below:

01:26:38 - Build started.
01:26:38 - Project "Sharepoint.deployproj" (StageArtifacts target(s)):
01:26:38 - Project "Sharepoint.deployproj" (ContentFilesProjectOutputGroup target(s)):
01:26:38 - Done building project "Sharepoint.deployproj".
01:26:38 - Done building project "Sharepoint.deployproj".
01:26:38 - Build succeeded.
01:26:39 - The following parameter values will be used for this deployment:
01:26:39 -     newStorageAccountName: vizpocfullnestoacc
01:26:39 -     newDomainName:
01:26:39 -     newVirtualNetworkName: viseopocfullvnet
01:26:39 -     vnetAddressSpace:
01:26:39 -     hostName: vizpochostn
01:26:39 -     userName: vincethavo
01:26:39 -     password: <securestring>
01:26:39 -     location: North Europe
01:26:39 -     hardwareSize: A1
01:26:39 - Launching deployment PowerShell script with the following command:
01:26:39 - 'c:\wks\azureresourcegrp\webandsql\Scripts\Deploy-AzureResourceGroup.ps1' -StorageAccountName '' -ResourceGroupName 'viseopoc-noeu-resourcegrp' -ResourceGroupLocation 'northeurope' -TemplateFile 'c:\wks\azureresourcegrp\webandsql\templates\microsoft.sharepointserver2013trial.0.2.80-preview.json' -TemplateParametersFile 'c:\wks\azureresourcegrp\webandsql\templates\'
01:26:39 -
01:26:39 -
01:26:39 - Accounts            : {[, Microsoft.Azure.Common.Authentication.Models.AzureAccount]}
01:26:39 - Subscriptions       : {[364f617a-9521-4356-9d3c-66751f255f41, Microsoft.Azure.Common.Authentication.Models.AzureSubscription]}
01:26:39 - DefaultSubscription : Microsoft.Azure.Common.Authentication.Models.AzureSubscription
01:26:39 - Environments        : {[AzureCloud, Microsoft.Azure.Common.Authentication.Models.AzureEnvironment], [AzureChinaCloud, Microsoft.Azure.Common.Authentication.Models.AzureEnvironment]}
01:26:39 - Context             : Microsoft.Azure.Common.Authentication.Models.AzureContext
01:26:39 - ProfileLoadErrors   :
01:26:39 - ProfilePath         :
01:26:39 -
01:26:39 - cmdlet New-AzureResourceGroup at command pipeline position 1
Supply values for the following parameters:
01:26:39 - locationFromTemplate: 01:26:46 - northeurope
01:26:54 - [VERBOSE] 1:26:54 AM - Created resource group 'viseopoc-noeu-resourcegrp' in location 'northeurope'
01:26:55 - [ERROR] New-AzureResourceGroup : Error 1: Code=InvalidDeployment; Message=The deployment parameter 'vnetAddressSpace' is not valid.
01:26:55 - [ERROR]
01:26:55 - [ERROR] At C:\wks\azureresourcegrp\webandsql\Scripts\Deploy-AzureResourceGroup.ps1:89 char:1
01:26:55 - [ERROR] + New-AzureResourceGroup -Name $ResourceGroupName `
01:26:55 - [ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
01:26:55 - [ERROR]     + CategoryInfo          : CloseError: (:) [New-AzureResourceGroup], ArgumentException
01:26:55 - [ERROR]     + FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureResourceGroupCommand
01:26:55 - [ERROR] 
01:26:55 -
01:26:55 -
01:26:55 -
01:26:55 - Successfully deployed template 'c:\wks\azureresourcegrp\webandsql\templates\microsoft.sharepointserver2013trial.0.2.80-preview.json' to resource group 'viseopoc-noeu-resourcegrp'.

Once fixed, check that that the deployment was completed properly, by opening the Azure Resource Group ‘viseopoc-noeu-resourcegrp’




Open source Samples of templates
Azure Resource Management presentation

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.