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