Pebellslearn by building
RoadmapsMatrixCoursesSandboxSign in

Course details

Terraform

Learn to write Terraform configurations that create real cloud infrastructure from plain text files. You will read and write HCL, pin providers, shape resources, and make a configuration reusable with variables and outputs — all on one small website setup.

Ready to learn6 sections · 24 lessons
Start learning

Course curriculum

Introduction to Terraform5 lessons

Learn what infrastructure as code is, how Terraform turns files into real cloud resources, where it pays off, how it differs from configuration management, and how to install it.

  1. What Is Infrastructure as Code?12 min
  2. What Is Terraform?12 min
  3. Use Cases and Benefits12 min
  4. Configuration as Code vs Infrastructure as Code12 min
  5. Installing Terraform12 min
HashiCorp Configuration Language3 lessons

Learn what HCL is and how Terraform loads it, take blocks apart into types, labels, arguments and nested blocks, and connect things with expressions and references.

  1. What Is HCL?12 min
  2. Blocks, Labels and Arguments12 min
  3. Expressions and References12 min
Providers and Project Initialization4 lessons

Find providers on the Terraform Registry, configure them with regions and aliases, pin their versions with constraints and the lock file, and prepare a project with terraform init.

  1. The Terraform Registry12 min
  2. Configuring Providers12 min
  3. Provider and Terraform Versions12 min
  4. Initialising a Project with terraform init12 min
Resources4 lessons

Learn how Terraform decides to create, update, replace or destroy a resource, read those decisions in a plan, and use the meta-arguments count, for_each, depends_on, provider and lifecycle.

  1. How Resources Behave12 min
  2. The Resource Lifecycle in a Plan12 min
  3. Many Copies with count and for_each12 min
  4. depends_on, provider and lifecycle15 min
Outputs3 lessons

Expose values like IP addresses and bucket names with output blocks, hide secrets from logs with sensitive outputs while knowing their limits, and guard outputs with preconditions.

  1. Output Values12 min
  2. Sensitive Outputs12 min
  3. Preconditions on Outputs12 min
Variables5 lessons

Parameterise a configuration with input variables, constrain them with types, supply them from files and environment variables, name derived values with locals, and reject bad inputs with validation rules.

  1. Input Variables12 min
  2. Type Constraints12 min
  3. Variable Files and Environment Variables15 min
  4. Local Values12 min
  5. Validation Rules12 min