Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure...

26
Azure Master Class: Deep-dive Into Azure ARM Templates

Transcript of Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure...

Page 1: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Azure Master Class:

Deep-dive Into Azure ARM Templates

Page 2: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Expected Learning OutcomesAzure Masterclass: Deep-dive into ARM Templates

@tetranoodle

By the end of this section, you should be able to:

Walkthrough the various sections of the ARM templateDifferentiate between single and nested templatesDescribe incremental and complete deployment modes

Page 3: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Schema: Mandatory component of ARM templates

Schema value: Location of JSON schema file describing template version

Get the latest schema from:https://github.com/Azure/azure-resource-manager-schemas/

@tetranoodle

Page 4: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

ContentVersion: Mandatory component of ARM template

Used to specify the template version

Helps ensure that the right version is being deployed

@tetranoodle

Page 5: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Schema And ContentVersion DEMO

@tetranoodle@tetranoodle

Page 6: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 7: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

ParametersAzure Masterclass: Deep-dive into ARM Templates

Used to provide flexibility within the function

You don’t have to hard code user-specific

Must be entered before deployment

Draw a line between the free-form and known configurations

@tetranoodle

Page 8: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Parameter properties used to set values:

parameterNametypedefaultValueallowedValuesminValuemaxValueminLengthmaxLengthdescription

@tetranoodle

Page 9: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

ParametersDEMO

@tetranoodle

Page 10: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 11: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Variables: Store and reuse values for resource properties

Don’t need to specify at deployment

Create variables for use across template

Types: standard & complex

@tetranoodle

Page 12: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

ResourcesAzure Masterclass: Deep-dive into ARM Templates

Resources:

Elements:

Collection of resources

Define properties

Array of resources, child resources

Describe resource-specific properties

apiVersion

dependsOn

type

properties

name

resources

location

condition

tags

comments

@tetranoodle

Page 13: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

ResourcesDEMO

@tetranoodle

Page 14: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 15: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

OutputAzure Masterclass: Deep-dive into ARM Templates

Used to specify values returned from deployment

Values are passed into another deployment as connection string for deployment

Output elements: OutputName, type, value

@tetranoodle

Page 16: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Single Templates vs. Nested TemplatesAzure Masterclass: Deep-dive into ARM Templates

Deploy either using a single template or a main template with multiple nested templates

Nested templates are common for more advanced scenarios

You can break down a solution into targeted components

You can reuse nested templates with different main templates

@tetranoodle

Page 17: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Nested Templates – Best PracticesAzure Masterclass: Deep-dive into ARM Templates

Main Template

Input parameters

Shared Resources Template

Deploy shared resources

Optional Resources Template

Conditionally deploy resources

Member Resource Templates & Scripts

Reusable or custom scripts

@tetranoodle

Page 18: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Hello World Templates DEMO

@tetranoodle

Page 19: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 20: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Executing Templates With Azure PowerShell

DEMO

@tetranoodle

Page 21: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 22: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Deployment ModesAzure Masterclass: Deep-dive into ARM Templates

Default modeDoesn’t remove or modify resourcesProvides support for versioning and rolling back deployments

Deletes resources not mentioned in the template Best for “Starting Fresh” or refactoring a solution

Incremental Complete

@tetranoodle

Page 23: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Deployment ModesAzure Masterclass: Deep-dive into ARM Templates

INCREMENTAL DEPLOYMENT

COMPLETE DEPLOYMENT

Resource Group

A

Resource Group

A

Resource Group

E

Template B D

Resource Group

A B D

Template B D

Resource Group

B D

Template E

Template E

Resource Group

A B D E

@tetranoodle

Page 24: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Deployment ModesDEMO

@tetranoodle

Page 25: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

Play Video

Page 26: Azure Master Class: Deep-dive Into Azure ARM Templates · Nested Templates –Best Practices Azure Masterclass: Deep-dive into ARM Templates Main Template Input parameters Shared

@tetranoodle