Terraform 101 – Infrastructure as 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 opensource, 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.

Days : 3
Price :




Who should attend

  • 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 preexisting knowledge of cloud architecture, will most appreciate the technical nature of this hands-on course.

Course Objectives

  • 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

Follow On Courses

Ansible 101 – Essentials (A101E)
Jenkins Automation Server Essentials (JASE)

Outline: Terraform 101  Infrastructure as Code (IaC) (TIAC)

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


  • MetaArguments
  • 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