AZR-ARM: Developing Azure Resource Manager (ARM) Templates
About this Course
This class starts with an overview of Microsoft Azure including the Azure Portal and how to automate tasks in the cloud using PowerShell. Then we’ll dive deep into ARM template development. You will learn how to define your infrastructure as code and how to build reusable templates for reliable and repeatable deployments. You’ll also see how you can use Azure VM extensions to bootstrap servers with PowerShell DSC and standard shell scripts. By the end of the class, you’ll be able to build an automated end-to-end solution with Azure Resource Manager templates.
Audience Profile
This 3-day course is intended for IT professionals who want to automate Azure deployments using Resource Manager Templates. This course can be used to gain an understanding of how to define Infrastructure as Code and consistently and repeatedly automate the provisioning of complete application environments on Microsoft Azure.
At Course Completion
After completing this course attendees will be able to:
◾Describe the benefits of Infrastructure as Code (IaC)
◾Use development tools such as Visual Studio and Visual Studio Code to author templates
◾Version templates in source control
◾Read and write JavaScript Object Notation (JSON)
◾Use patterns and best practices for template development
◾Automate simple or complex server environments with a single click or API call
Outline
Module 1: Microsoft Azure Infrastructure Fundamentals
◾Introduction to Microsoft Azure
◾Azure Resource Manager Overview
◾Deploying Infrastructure in the Azure Portal
◾Automating Azure Infrastructure using PowerShell
Module 2: ARM Template Development Basics
◾Getting Started with JSON
◾Exporting JSON Templates from the Portal
◾Understanding Template Structure
◾Deploying Templates with PowerShell
◾Deploying Templates with the ARM Rest API
◾Versioning Templates in Source Control
◾Setting up One-Click Deployments
Module 3: Mastering Expressions and Functions
◾Overview of Expressions and Functions
◾Numeric Functions
◾String Functions
◾Array Functions
◾Resource Functions
Module 4: Accepting Input with Parameters
◾Defining Parameters
◾Free-form vs. Known Configuration
◾Setting Parameter Constraints
◾Validating Parameter Input
◾Customizing Parameter Values at Runtime
Module 5: Working with Variables
◾Defining Variables
◾Using Functions with Variables
◾Storing JSON Objects in Variables
Module 6: Defining Resources
◾Understanding Resource Structure
◾Defining Resource Property Values
◾Setting Resource Dependencies
◾Deploying Multiple Resources with Copy Object
Module 7: Using Linked Templates
◾Linking to a Parameter File
◾Linking to Another Template
◾Using Variables to Link Templates
Module 8: Working with Azure VM Extensions
◾Using the Domain Join Extension
◾Creating Startup Scripts with the Custom Script Extension
◾Bootstrapping Servers with the PowerShell DSC Extension
Module 9: Building an End-to-End Solution
◾Creating the Network Infrastructure
◾Deploying Domain Controllers
◾Launching Member Servers
◾Validating the Solution
Prerequisites
This course is for IT professionals working in systems administration, application development, or DevOps roles. We recommend that attendees have experience with general networking concepts and systems administration or software development. Familiarity with the Windows Server operating system and Windows PowerShell is also recommended.