7854  Reviews star_rate star_rate star_rate star_rate star_half

Terraform - Infrastructure as a code (IaC)

As enterprises seek to deploy and maintain increasingly complex cloud infrastructure, there is a necessity to use “Infrastructure as Code” (IaC) tools, like Terraform. An open-source, state...

Read More
$1,795 USD
Duration 3 days
Available Formats Classroom

As enterprises seek to deploy and maintain increasingly complex cloud infrastructure, there is a necessity to use “Infrastructure as Code” (IaC) tools, like Terraform. An open-source, state management tool developed by HashiCorp, Terraform allows developers to use a common coding interface to work through their various clouds safely and efficiently. Attendees will leave being able to write and understand Terraform code (HCL), have a clear understanding of Terraform’s various components and supporting tools, as well as when to reach for Terraform over another IaC tool, such as Ansible.

Skills Gained

You will learn essential Terraform concepts including:

  • Writing Terraform HCL code
  • Deploying into common clouds such as AWS, Azure, Docker, Kubernetes, and VMWare
  • Where Terraform fits in the Enterprise CI/CD model
  • Differences between Terraform and Ansible
  • Best practices

Who Can Benefit

  • DevOps Engineers
  • Software Developers
  • Technical Managers and Leads
  • System and Cloud Administrators
  • Network Engineers and Developers


Although not required, students with some experience programming, or pre-existing knowledge of cloud architecture, will most appreciate the technical nature of this hands-on course.

Course Details

Follow-on Courses

  • Jenkins Automation Server Essentials (2 days)
  • Ansible Essentials (5 days)
  • Go Essentials (5 days)
  • Git and GitHub (2 days)
  • Git and GitLab (2 days)


  • Terraform Essentials - Certification Project

Course Outline

Up and Running with Terraform

  • Terraform Overview
  • Defining “declarative”
  • How to think about Terraform (versus Ansible)
  • Reviewing the Terraform Configuration
  • Running the Terraform Configuration
  • Provisioners


  • “Low Level” HCL syntax
  • Style Conventions
  • Comments
  • Blocks
  • Arguments
  • JSON Configuration Syntax


  • Meta-Arguments
  • depends_on
  • count
  • for_each
  • provider
  • lifecycle
  • Data Sources

Variables and Output

  • Input Variables
  • Output Values
  • Local Values


  • Module Blocks
  • Module Sources
  • Meta Arguments

Terraform Templates

  • templatefile Function
  • Template Demonstration
  • Introducing Data Sources
  • Creating an External Data Source
  • Building tftpl template files


  • Types and Values
  • Strings and Templates
  • Reference to Values
  • Operators
  • Function Calls
  • Conditionals
  • For Expressions
  • Splat Expressions
  • Dynamic Blocks
  • Type Constraints
  • Version Constraints


  • String
  • Collection
  • Numeric
  • Encoding
  • Filesystem
  • Date and Time
  • Hash and Crypto
  • IP Network
  • Type Conversion


  • Understanding the importants of state
  • State storage and locking
  • importing existing resources
  • Remote State
  • What to do when local state is lost

CICD Piplines with Terraform

  • Terraform and GitLab pipelines
  • Terraform and Jenkins pipelines

Enterprise Case Studies

  • Terraform and Docker
  • Terraform and Kubernetes
  • Terraform and Amazon AWS
  • Terraform and Azure
  • Terraform and VMWare
  • Understanding how to apply Terraform to your unique infrastructure

Beyond Basics

  • Intro to Go Programming
  • Terraform Cloud
  • Additional HashiCorp Offerings
  • Backends
  • Secrets

Hands-On Labs

Overview of Terraform

  • LECTURE - Introduction to Terraform
  • Terraform Install


  • Up and Running with Terraform
  • Terraform Variables
  • Output Values
  • CHALLENGE - Terraform and Docker

Beyond Basics

  • Terraform Language Values
  • Terraform Local Action Provider
  • Terraform Expressions and Errors
  • Dynamic Operations with Functions
  • Dynamic Provisioning with tfvars Files
  • Importing Terraform Configuration


  • Terraform and AWS
  • Output Values and AWS
  • Correcting Resource Drift and AWS
  • CHALLENGE - Terraform and AWS


  • Terraform and VMWare

Terraform and Enterprise

  • Terraform Cloud
  • Deploy a Go RESTful API microservice with Terraform
  • Terraform and Ansible


  • Glossary