
Clone the Terraform on Azure repository into your cloud environment to access all course examples and start creating infrastructure with Terraform.
Preview the resource group deployment with terraform plan, then apply to deploy and destroy to tear it down, observing the execution plan and one resource added.
Deploy an Azure Windows VM with Terraform by adding a network interface block, interpolating location and IDs, and running init and apply to provision, plan, and destroy when done.
Explore how Terraform state works and why tracking it matters, examine the state file's inner workings with Azure, and learn effective strategies for collaborative state management.
Explore the fundamentals of Terraform variables, including string and list types, with solid descriptions and defaults, and learn to interpolate these variables in the main configuration for Azure networking.
Explore reusable Terraform configurations by parameterizing resources with variables, learn variable types like strings, maps, lists, and objects, and master input methods using apply, tfvars files, and environment variables.
Learn how Terraform outputs pass the network security group module's ID to the root configuration, enabling VNet and subnet associations in Azure deployments.
Explore organizing Terraform modules for Azure by choosing mono-repo vs multi-repo structures, sourcing modules from GitHub or the terraformed registry, and using versioned refs to roll out updates.
Develop a Terraform module for Azure Windows Server deployment with a providers block, accepting subnet_id, resource_group_name, location, server_name, vm_size, admin_username, admin_password, and OS object image details.
Explore advanced patterns in the HCO or Corp configuration language, including loops, conditional logic, and scaling resources, to bake logic into Terraform configurations.
Learn how terraform on azure uses count to scale resource groups with indexed names, and control optional resources like boot diag storage via conditional count and for each.
Turn a security rule block into a dynamic block using dynamic and a for_each loop over a list of NSG rule objects, enabling a fully dynamic NSG configuration.
Learn how to create production-grade Azure Infrastructure Code using Terraform in this project-focused hands-on course. Follow along as you learn Terraform and put theory into practice by solving challenges.
We go over what Terraform is and why it’s a highly sought-after skillset. We’ll also go over how to set up Azure CloudShell so we can dive right into developing with Terraform in Azure straight away.
In the first section you'll learn:
What is Terraform?
Getting Started with Azure CloudShell
How to setup your projects to follow along
Learn the fundamentals of Terraform by creating a configuration file and deploying resources into Azure. We’ll also explore the most common ways to authenticate with Azure using the Azure Provider and discuss creating resource dependencies within the Terraform configuration.
Here's what you'll learn about Terraform Configurations:
Terraform Configuration Files
Authenticating with the Azure Provider
Terraform Init, Plan, and Apply
Using Interpolation within Terraform Configurations
Understanding how Terraform state works is a critical component for building Terraform solutions, which is why we’ll be going deep into how the state file keeps track of changes made with Terraform.
Here's what you'll learn about Terraform State:
Why does Terraform need to keep track of state
Examine the inter-workings of the state file
Storing the state file centrally using remote state
Retrieve output from Terraform state
Variables allow Terraform modules to take in input making configuration files dynamic. Infrastructure code can be templatized and re-used throughout different environments.
Here's what you'll learn about Terraform Variables:
Create variable blocks in Terraform configurations
Input values into Terraform configurations using several methods
Learn about the common variable types
Terraform modules split up infrastructure into small, testable components that make it easy for infrastructure developers to introduce changes in small amounts. Learn how to easily create modules and use them with source control.
Here's what you'll learn about Terraform Modules:
Create a module
Pass data between modules
Learn how to use modules from GitHub
Learn about the Terraform Registry
HCL is a functional language that allows infrastructure developers to create loops and conditional logic within Terraform code. This allows a high levels of abstraction to be created for deploying infrastructure.
Here's what you'll learn about HCL:
Functions, conditions, loops and expressions
Dynamic blocks within Terraform resource blocks
Creating resources that scale with count