Ultimate Terraform

This 16-hour, hands-on online training course is for engineers who want to learn how to use HashiCorp Terraform to automate infrastructure provisioning and management.

We have a special offer running for this training: GET 2 TICKETS for the PRICE OF 1.

Ticket Prices:

  • 2 FOR 1 - Pay $100 and Get 2 Seats: $50 Each (Includes Class Recordings)
  • Individual Ticket Holder - With Class Recordings: $75

NOTE: If you want a 2x1 ticket but don’t have someone, send us an email, we will pair you for the reduced price.

Course Description

Learn Terraform by deploying a todo API on public cloud infrastructure in various configurations. Learn how to write Terraform configuration, refactor Terraform configuration into modules, automate Terraform operations, and develop a Terraform provider. The class will start by deploying the todo API to a single environment and then learn how to scale that deployment up and deploy it to multiple environments. This class is for engineers looking to integrate Terraform into their workflows and engineers looking to take the Terraform Associate certification exam.

Check out the course outline on GitHub.

Course Highlights

  • Use every Terraform command and each of their subcommands.
  • Prepare for the Terraform Associate certification exam.
  • Deploy a todo application to real public cloud infrastructure.
  • Learn different ways to scale the todo application with Terraform.
  • Write a custom Terraform provider for the todo application.
  • Learn the difference between mutable and immutable infrastructure.
  • Learn the idioms and coding style for Terraform configuration.
  • Reconcile Terraform state, Terraform configuration, and real infrastructure.
  • Discuss the tradeoffs between explicit or Don’t Repeat Yourself (DRY) Terraform configuration.
  • Learn how to integrate Terraform within your existing CI/CD workflows.
  • Learn how Terraform Cloud and Terraform Enterprise extend Terraform.

Course Curriculum

1.0 - Getting Started

Install Terraform and familiarize yourself with your cloud provider.

  • What is Terraform?
  • How does Terraform work?
  • Why use Terraform?
  • Terraform Installation
  • Editor Configuration
  • Cloud Provider Configuration

2.0 - Terraform Basics

Learn the Terraform configuration syntax and use Terraform to provision infrastructure.

  • Configuration Syntax
  • The Core Workflow
  • Modifying Infrastructure
  • Terraform State
  • Destroying Infrastructure

3.0 - Terraform Language

Use all of the top-level configuration keywords in Terraform.

  • Providers
  • Resources
  • Data Sources
  • Variables
  • Outputs
  • Locals

4.0 - Provisioners

Use Provisioners to extend Terraform with imperative workflows.

  • What are Provisioners?
  • Declaring Provisioners
  • The local-exec Provisioner
  • The remote-exec Provisioner
  • The file Provisioner
  • Provisioners Without a Resource
  • Alternatives to Provisioners

5.0 - Modules

Create reusable abstractions of Terraform configuration using Modules.

  • What are Modules?
  • Using Modules
  • Developing Modules
  • Providers in Modules
  • Module Sources
  • Publishing Modules to the Terraform Registry

6.0 - State Management

Understand and interact with Terraform state.

  • Inspecting Infrastructure
  • Importing Infrastructure
  • Manipulating State
  • Refreshing State
  • The terraform_remote_state Data Source
  • Understanding Secrets in State

7.0 - State Backends

Store Terraform state securely and prevent state corruption with state locking.

  • The Local Backend
  • Remote Backends
  • Configuring Remote State Storage
  • State Locking
  • Configuring Remote State Locking
  • Migrating State Between Backends

8.0 - Workspaces

Deploy a clone of your infrastructure using Workspaces.

  • What are Workspaces?
  • Avoiding Infrastructure Collisions
  • Using Workspaces
  • Alternatives to Workspaces

9.0 - Advanced Terraform Configuration

Use advanced Terraform features to DRY up your configuration and scale deployments.

  • Functions
  • Expressions
  • Scaling with count
  • Scaling with for_each
  • Dynamic Blocks
  • Custom Conditions
  • Terraform Console
  • Override Files

10 - Terraform in Automation

Integrate Terraform with your CI/CD workflows.

  • Verifying Terraform Configuration
  • Running Terraform in CI/CD
  • Terraform CLI Configuration
  • Using Custom Providers
  • Debugging Terraform
  • Tuning Terraform

11 - Terraform Cloud & Terraform Enterprise

Extend Terraform with features from Terraform Cloud and Terraform Enterprise.

  • What is Terraform Cloud and Terraform Enterprise?
  • VCS-driven Runs
  • CLI-driven Runs
  • API-driven Runs
  • Private Module Registry
  • Team, Governance, and Business Features

12 - Developing a Terraform Provider

Integrate Terraform with an API by developing a custom Terraform provider.

  • Making CRUD Requests to an API
  • Terraform Plugin Framework
  • Building a Go SDK for the API
  • Implement a Data Source
  • Implement Create and Read
  • Implement Update
  • Implement Delete
  • Implement Import

Before you come to class

The following tasks can be done prior to showing up for class. We will cover these tasks in class for those that have not done them beforehand.

Download and install:

[Terraform] (https://www.terraform.io/downloads)

[Graphviz] (https://graphviz.org/)

[Go] (https://go.dev/doc/install)

Important: Upon completion of each session, there will be a video recording available for download. An email with instructions to access them will be sent.

About the Instructor:

Matthew Sanabria is an Engineer at HashiCorp and a former Adjunct Instructor at New Jersey Institute of Technology (NJIT). At HashiCorp, Matthew develops Terraform Enterprise, mentors other engineers, and contributes to the Terraform Associate certification exam. At NJIT, Matthew designed and taught a new curriculum for the IT340 Introduction to System Administration course. With over 7 years of professional and teaching experience, Matthew enjoys mentoring others and contributing back to the community.

[LinkedIn] (https://www.linkedin.com/in/sudomateo/)

[Twitter] (https://twitter.com/sudomateo)

[Mastodon] (https://mastodon.online/@sudomateo)