
Introduction to the course
A concise set of notes used for quick reference.
Setting up your Azure Account
Terraform installation
Terraform installation (for Windows users)
Installing the Azure Command Line Interface
Setting up SSH keypairs using Putty (for windows users) - Linux / MacOS users can use the ssh-keygen tool
Introduction to the HasiCorp Configuration Language
How to use variables in terraform, and what datatypes can be used.
The basic terraform commands you need to know to get started
A first demo!
A first demo (part II)
An introduction to terraform with Azure specifically
The Azure Resource Manager explained
A demo on resource groups.
How to use virtual networks in Azure
How to use Virtual Machines (VMs) in Azure
A lecture on how to setup network security groups (firewall rules)
A demo on setting up network security groups
A lecture on availability
Scale sets allow you to autoscale your VMs. A Load Balancer in front of those VMs can balance traffic and provide healthchecks.
A demo showing how to use a scale set and loadbalancer with VMs in Azure with Terraform
A demo showing how to use a scale set and loadbalancer with VMs in Azure with Terraform (Part II)
A demo on how to use scale sets, but now with Availability Zone awareness
How to setup a MySQL Database in Azure with Terraform
A demo on how to setup a MySQL database in Azure with terraform
How to setup a SQL database in Azure
A demo of how to setup a SQL Database in Azure with Terraform
What is CosmosDB and how to set it up with terraform
A demo setting up a mongodb-compatible CosmosDB
An introduction to Azure Storage
What is Azure Blob Storage
A demo showing how to use Azure Blob Storage with terraform
Introduction to Azure Table storage
An introduction to Azure Queue Storage and Azure Data Lake Storage
Introduction to Azure Disk Storage
Azure Active Directory to manage your users and groups
A demo of how to use a Service Principal in Azure with Active Directory
An introduction to the Application Gateway.
Create an Azure application gateway, add a second subnet for VMs, deploy a scale set with a custom script to install Nginx from GitHub, and configure basic HTTP routing.
Explore Azure Stream Analytics for real-time analytics and complex event processing on streaming data from multiple sources, using saql queries with inputs and outputs to event hubs and Power BI.
Explore real-time Azure Stream Analytics with a terraform-enabled demo that filters IoT hub data for temperatures above 25 and writes results to blob storage, using a Raspberry Pi simulator.
You can store your terraform state remotely. This lecture explains you how
A demo on how to store your remote state remotely
Terraform conditionals and the not-classical if-then-else approach, 0.12 enhancements for lists and maps, and learn how conditional omitted arguments preserve defaults and simplify module usage.
Learn how to use terraform conditionals and the conditional omitted argument to control azure blob storage deployment with production and training files.
Explore built-in functions in the Azure Corp configuration language and test them with the Terraform console, covering numeric, string, collection, encoding, filesystem, date/time, hash, network, and type conversion functions.
Explore a hands-on demo of terraform functions, including numeric, string, encoding, lookup, map, date/time, hash, network, and type conversion operations, using terraform apply across multiple demos.
You can use for and for each loops in terraform to iterate over your variables
This demo is showing you how to use for loops
This demo is showing you how to use for each loops
In this lecture we will learn what Terraform modules are and why to use them
Introduction to AKS, the Azure Kubernetes Service
demo showing how to run AKS in terraform (part I)
demo showing how to run AKS in terraform (part II)
Deploy a Node.js express app to an AKS cluster using Azure DevOps pipelines, Docker build and push, and Kubernetes manifests, noting that Terraform support is not yet available.
Push the demo app to Azure DevOps, build and push a Docker image, and deploy to AKS with a load balancer, exposing the application via an external IP.
Install terraform core and providers, understand how the registry and provider versions interact, and configure azurerm with aliases to manage multi-tenant resources and private registries.
Explore Terraform provisioners, including local and remote, and how cloud-init with custom_data runs on VM creation. Avoid provisioners due to complexity; favor cloud-init or container-based provisioning as a last resort.
Write Terraform code to define resources, then terraform init, validate, plan, and apply using a planfile or auto-approve to deploy infrastructure on Azure.
Switch from a local Terraform backend to a remote backend like Azure Blob Storage to share and protect state with encryption at rest, versioning, remote operations, and locks.
Explore supported backends such as azure resource manager, s3, and kubernetes, with backend‑specific configurations and methods—interactive, file, or key‑value—and the case for remote state to protect secrets.
Explore read, generate and modify configuration in Terraform by mastering input variables, outputs, and locals. Learn types, defaults, validation, and sensitive handling for secure deployments.
Learn to read, generate, and modify Terraform configurations using output variables and locals, including description and sensitive options, rare depends_on cases, and how locals streamline IDs across resources.
In this hands-on training we will teach you how to implement and use Terraform on Microsoft Azure from the start to finish. After following this training you can add this precious skill to you resume.
Our mission is to ensure you can start using terraform with Azure in your organisation to automate the provisioning of cloud infrastructure. After taking this course, you'll have the confidence of using Terraform in your organisation.
Let's go and happy learning!
Terraform allows you to write your cloud infrastructure setup in code. If you have used Microsoft Azure before, you'll know that setting up your infrastructure using the Microsoft Azure Portal (the Web UI) is far from ideal. Terraform allows you use Infrastructure as Code, rather than executing the steps manually by going through the correct steps in the Microsoft Azure Portal.
This course will teach you how to write HCL, the HashiCorp Configuration Language, to bring up your infrastructure on Microsoft Azure. Terraform is cloud agnostic, so the terraform skills learned in this course are easily transferable to other cloud providers. After teaching you the terraform basics, the course will continue setting up simple architectural patterns, like VMs, to get you used to how terraform works. Once you have a good feeling of how you can use terraform, we dive a bit deeper into the possible Microsoft Azure Services you can spin up, like Autoscaling, LoadBalancing, MSSQL & MySQL, CosmosDB, Storage Accounts, Azure AD, and others. Also covered is advanced terraform usage, like using remote state, for/foreach loops, and conditionals/functions.