Got the fundamentals? A structured Terraform course is a fast way to level up.
Find Terraform courses on UdemyAffiliate link. Costs you nothing extra.
- 01Getting Started
- 02What Is Terraform?
- 03Checking the Version with terraform version
- 04What Is Infrastructure as Code?
- 05What Is a Provider?
- 06Preparing Providers with terraform init
- 07What Is a Resource Block?
- 08Checking Syntax with terraform validate
- 09Formatting Code with terraform fmt
- 10Previewing Changes with terraform plan
- 11Building Infrastructure with terraform apply
- 12What Is tfstate?
- 13Viewing State with terraform show
- 14Listing Resources with terraform state list
- 15Inspecting One Resource with terraform state show
- 16What Are Variables?
- 17What Are Outputs?
- 18Reading Outputs with terraform output
- 19Tearing Down with terraform destroy
- 20What Is a Module?
- 21What Is a Workspace?
- 22Listing Workspaces with terraform workspace list
- 23Creating a Workspace with terraform workspace new
- 24Switching Workspaces with terraform workspace select
- 25Saving a Plan with terraform plan -out
- 26Applying a Saved Plan with terraform apply
- 27What Is State Locking?
- 28Listing Providers with terraform providers
- 29What Is terraform refresh?
- 30What Is a Remote Backend?
- 31Adopting Existing Resources with terraform import
- 32What Is depends_on?
- 33What Are for_each and count?
- 34Visualising Dependencies with terraform graph
- 35What Is State Drift?
- 36How to Think About Splitting Modules
- 37Hands-On: Building a Three-Tier Web Architecture with Terraform
What Are Variables?
Variables let one configuration serve several situations, instead of hard-coding values throughout.
You declare them with variable "name" {} and reference them as var.name. Values come from a .tfvars file, the command line, or environment variables.
Making the instance type a variable means development can use a small type and production a large one, from exactly the same configuration.
A common stumble is putting secrets in a .tfvars file and committing it. Mark sensitive variables as such, and keep their values out of the repository.
In real work, variables are what allow one module to be reused across environments, which is the main reason modules are worth writing.
🧑💻 You can type this command into the Terraform pseudo terminal to try it yourself (this page itself has no interactive terminal).
