Skip to content

Terraform on Microsoft Azure

2 days · 9:00–16:00 Beginner – Intermediate 12 hands-on labs on-site or remote · English / Polish

Build Azure infrastructure the way production teams do: Terraform 1.17 with azurerm 5 and AzAPI 2. Participants take GreenGrid, an energy start-up, from portal clicks to tested, reviewed and automated infrastructure as code – remote state with Entra ID, refactoring with moved, modules, import and drift, terraform test with mocked providers, secrets that never reach the state, managed identities and CI/CD pipelines without stored secrets.

Go to the labs Lab repository

Who it's for

Cloud and DevOps engineers, administrators and developers who provision or maintain Azure resources and want them reproducible and reviewable.

Prerequisites: Azure basics (subscriptions, resource groups, networking), a terminal, Git.

What you will be able to do

  • Write, plan and apply Terraform for Azure – and read a plan before it hurts
  • Enforce naming, tagging and input rules with variables, validations and locals
  • Keep state in Azure Storage with Entra ID, locking and versioning
  • Use count, for_each, lifecycle and refactor safely with moved blocks
  • Generate configuration with complex types, for expressions and dynamic blocks
  • Build and version modules, use Azure Verified Modules
  • Adopt existing resources with import blocks, handle drift, use removed
  • Test without Azure: terraform test with mocked providers, tflint, check blocks
  • Reach every Azure feature with AzAPI 2.x
  • Keep secrets out of the state with ephemeral values and write-only attributes, use managed identities
  • Run Terraform in GitHub Actions or Azure DevOps with OIDC – plan on pull requests, apply after approval

Agenda

Topic Lab
IaC, Terraform architecture, providers, authentication LAB01
Variables, validations, locals, outputs LAB02
State and remote backends LAB03
Meta-arguments and moved LAB04
Expressions and dynamic blocks LAB05
Modules LAB06
Topic Lab
Import, drift and removed LAB07
Testing and code quality LAB08
AzAPI – the whole Azure API LAB09
Secrets and managed identities LAB10
CI/CD with OIDC: GitHub Actions or Azure DevOps LAB11
Break-fix challenge LAB12

Environment

Participants share one Azure subscription, each with a personal prefix; a terminal with Terraform and the Azure CLI (or Azure Cloud Shell) is all they need. Reference solutions for every lab come with the repository – anyone who falls behind catches up with ./bin/catchup <N>.

Book this training

Get in touch