Terraform on Azure: Infrastructure as Code from Scratch

Learn how to use Terraform to provision and manage Azure infrastructure. Discover the patterns and best-practices for writing infrastructure code to manage Azure IaaS and PaaS resources.

Your Instructors

Mike Pfeiffer

Microsoft MVP, Pluralsight author, ex-AWS cloud solutions architect, host of CloudSkills.fm podcast

Luke Orellana

VMware vExpert, Automation Practitioner, IaC Advocate, Blogger, Trainer, CloudSkills Instructor

Michael Levan

Founder @ clouddev.engineering, DevOps & Azure Trainer at CBT Nuggets, DevOps Institute Ambassador

Course Outline

8 hours of Video Training

Module 1: Terraform on Azure: The Big Picture

  • Learn the foundations of Terraform and the patterns and practices used to automate infrastructure management. In this first session we'll discuss Terraform's template-based configuration files and how they enable you to define, provision, and configure Azure resources in a repeatable and predictable manner.

Module 2: Getting Terraform Up and Running

  • To use Terraform you will need to install it on your machine. In this session we'll show you how to install the Terraform binary package on your machine manually, along with using popular package managers, and we'll explore how to run Terraform in the Azure Cloud Shell.

Module 3: Creating Terraform Configurations

  • In this session you'll learn how Terraform uses a declarative model for defining infrastructure, and you'll see how to write a configuration that declares your desired state. From there, you'll see how to use your configurations to create and configure Azure to match your desired state.

Module 4: Building Azure Infrastructure

  • Learn the three steps used to build infrastructure with Terraform on Azure. In this session you'll see how to initialize your Terraform configuration directory using terraform init, how to create an execution plan, and how to modify infrastructure using terraform apply.

Module 5: Understanding Resource Dependencies

  • Changes to infrastructure often need to be done in a specific order which is typically determined by resource dependencies. In this session you'll learn how to manage a diverse collection of interdependent resources and how to manage their dependencies.

Module 6: Working with Provisioners

  • We can use Terraform provisioners to perform additional setup and configuration when a resource is created or destroyed. In this session you'll see how to use provisioners to run shell scripts, install software, and much more.

Module 7: Working with Input/Output Variables

  • In this session we'll transition from using literals and see how to add variables to our configurations. We'll also explore the concept of output variables that can be used to organize and return data to Terraform operators.

Module 8: Implementing Remote State Storage

  • In this session you'll learn how to effectively us Terraform state, which includes the settings for all of the resources maintained in your configurations. You'll see how to implement remote state storage and patterns used in Terraform such as team-based workflows using remote backends.

Module 9: Working with Terraform Modules

  • When creating production-grade Terraform configurations, modules are an absolute must. One of the more apparent benefits of using them is that they allow our code to be DRY. DRY is a software development term that stands for Don't Repeat Yourself. In this session you'll learn how to create modules and integrate them into your Terraform configurations.

Module 10: Understanding Functions, Expressions, and Loops

  • In this session you'll learn how to create a module and that implements functions, expressions, and loops in your Terraform configurations. Understanding how to create loops and advanced expressions can give your code a cleaner look and it provides teammates with a more precise understanding of the infrastructure when reading the Terraform configuration.

Module 11: Importing Existing Azure Infrastructure

  • Learn how to leverage pre-existing infrastructure and how to import it into Terraform. We'll start off by deploying some infrastructure with Azure CLI and then you'll see how to import those resources into a state file that can be managed by Terraform.

Module 12: Terraform and Team Collaboration in the Real-World

  • In this final session you'll see real-world examples of how to implement Continuous Integration and Continous Delivery (CI/CD) with Terraform and Azure DevOps, and you'll see how teams can collaborate on projects with Terraform Cloud.

Frequently Asked Questions

No this course is aimed at beginners regardless of whether you come from an "ops" or "dev" background. We'll show you how to start writing Infrastructure as Code from scratch.

We are HUGE believers in the benefits of hands-on practice, however, having an Azure subscription is not a requirement for this course.

Yes, anyone who enrolls in this course gets LIFETIME access to all the videos and updates, including some special bonuses!

Enrollment lifetime access to the video replay including updates.

View all courses:


50% Complete

Azure PowerShell Two-Day Deep Dive Workshop

Enter your email to gain access to the workshop syllabus and review the requirements for attending this online live event delivered by industry experts.