hands-on lab

Keeping Terraform Remote State DRY with Terragrunt in Azure

Up to 40m
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.


As Terraform configurations grow to be large and complex, the code becomes harder to manage and make changes. Terragrunt is an open-source tool that acts as a thin wrapper around Terraform, enabling configurations to be more DRY. DRY is a popular software development practice that stands for "Don't Repeat Yourself," which means don't re-use the same software pattern, avoiding redundancy. Terragrunt adds a feature that allows Terraform remote state configurations to be defined once in code and re-used throughout multiple Terraform projects.

In this lab, you will use Terragrunt to deploy a Terraform configuration in separate environments while keeping the remote state configuration DRY.

Learning Objectives

Upon completion of this lab you will be able to:

  • Understand how to deploy Terraform resources with Terragrunt
  • Learn how to keep the remote state configuration DRY using Terragrunt

Intended Audience

This lab is intended for:

  • Individuals familiar with using Terraform and how to deploy resources
  • Anyone interested in learning how to use Terragrunt to increase Terraform effectiveness
  • Enterprises looking to scale their Terraform codebase

Lab Prerequisites

You should be familiar with:

  • Cloud Services
  • DevOps
  • Basic understanding of Terraform modules and variables

The following course and lab can be used to fulfill the prerequisites:


June 24th, 2021 - Updated VM Size for the lab to increase resource allocation

Environment before

Environment after

About the author

Learning paths

Luke is a Site Reliability Engineer at Microsoft. His background is infrastructure development using Terraform and in 2021 he was awarded the HashiCorp Ambassador award. He is an Azure DevOps Engineer Expert, Azure Administrator Associate, and HashiCorp Certified - Terraform Associate.

Covered topics

Lab steps

Managing Remote State with Terragrunt in Azure