Language

Terraform Modules · Lesson 24 of 30

Build Your Own Module

Source: doonops-curriculum/terraform-modules--build-local-module.md

Doonops lesson

Goal

Wrap your own pattern as module — call from root.

Simple explanation

modules/s3-site/ = reusable recipe card. Root module = head chef calling it.

Technical view

modules/s3-site/ = reusable recipe card. Root module = head chef calling it.

Think of it like

modules/s3-site/ = reusable recipe card. Root module = head chef calling it.

Steps

  1. Read simple section
  2. Read analogy + diagram
  3. Copy project files
  4. Do local lab

Deep explanation

Layman words first, then technical detail — read slowly

root main.tf → module "site" { source = "./modules/doonops-static-site" }

Example (Doonops)

Modern HCL — names are examples, not from any third-party course

Example HCL
HCL
# see project files

Terraform runs on your computer — copy this HCL into a folder, then follow the local lab steps below.

Quick check

  • Explain topic to a friend in 2 sentences
  • Did local lab steps

Project files for this lab

Full implementation folder — copy all files, then run terraform commands

Lab project files (full folder)

Copy every file below into one folder — same as a real repo module. Then run the local lab steps.

Suggested folder: Suggested path: ~/doonops-terraform/21-local-module/

versions.tfSee file purpose in the code below
terraform {
  required_version = ">= 1.9.0"
}

Module check — did you get it?

2–3 quick questions before the next module

Modules — quick check

Quick check — did this module stick?

1. Terraform module is…

  • A single S3 object
  • Reusable package of Terraform resources
  • Only a CI tool
  • AWS billing report