Course Code: 2dpcttfm
Duration: 14 hours
Prerequisites:

Participants should have:

  • Foundational Knowledge of Operating Systems such as Windows or Linux as well as a basic understanding of networking,
  • Familiarity working in the Command Line Interface and using IDE’s is advantageous as well as a basic understanding of JSON.
  • Basic understanding of cloud concepts, terminology and basic services of either AWS, Azure or GCP is highly recommended
     

Target Audience

This course is designed for:

  • Cloud Engineers & Architects
  • DevOps Engineers
  • IT & Infrastructure Professionals
  • Developers looking to automate cloud deployments
Overview:

This foundational Terraform course is designed for professionals looking to deepen their Infrastructure as Code (IaC) expertise. Participants will automate, optimize, and secure their Terraform workflows across their preferred Public Cloud Service provider (AWS, Azure, or GCP).

Course Outline:

Day 1: Terraform Foundations & Core Features


Module 1: Introduction to Infrastructure as Code & Terraform

  • Traditional Infrastructure vs. Infrastructure as Code (IaC)
  • Why Terraform? Vendor-Agnostic IaC
  • Terraform Workflow: init, plan, apply, destroy
  • Terraform Configuration Blocks (provider, resource, variable, output)
  • Lab 1: Deploying a Simple Docker Container with Terraform

 

Module 2: Terraform Foundations

  • Installing & Setting Up Terraform on Windows, Linux, macOS
  • Authentication Methods: AWS, Azure, GCP
  • Terraform Files & Project Structure (.tf, .tfvars)
  • Terraform Commands: terraform fmt, terraform init, terraform plan, terraform apply
  • State Management & Dependencies (implicit vs explicit)
  • Lab 2: Deploying a Virtual Machine using Terraform

 

Module 3: Working with Terraform Providers

  • Terraform Provider Plugins & Registry
  • Public Cloud Providers: AWS, Azure, GCP
  • Managing Multiple Providers & Provider Aliases
  • Lab 3: Creating a Basic Network with Terraform

 

Module 4: Advanced Variables, Functions & Workspaces

  • Input vs Output Variables (variable, output, locals)
  • Terraform Functions: String, Numeric, Date, Collection, Type Conversion
  • Named Values & Expressions (Interpolation, Indexing, for_each, Conditionals)
  • Workspaces & Multi-Environment Deployments
  • Lab 4: Modifying a Hard-Coded Terraform Deployment with Variables

 

Day 2: Scaling Terraform with Modules, Pipelines, and Automation

 

Module 5: State Management, Templates & Configuration Drift

  • Local vs Remote State Files (backend for S3, Azure, GCS)
  • Migrating Local State to Remote Backends
  • Configuration Drift & Terraform Import
  • Logging & Debugging with TF_LOG
  • Lab 5a: Migrating Terraform State to Remote Backend
  • Lab 5b: Deploying Resources using Terraform Modules

 

Module 6: Automating Terraform with Pipelines

  • Terraform Cloud vs Enterprise
  • CI/CD with GitHub Actions Pipelines (terraform plan, terraform apply)
  • CI/CD with Jenkins Pipelines (Jenkinsfile, terraform init, terraform plan, terraform apply)
  • Lab 6: Creating a Terraform Pipeline with Jenkins
  • Lab 6a: Creating a Terraform Pipeline with Terraform Cloud