Terraform
Intent Router
| Request | Reference | Load When |
|---|---|---|
| Install tool, first-time setup, tfenv | resources/install-and-setup.md |
User needs to install Terraform or manage versions |
| Provider config, variables, backends | resources/configuration.md |
User needs provider blocks, variable files, or backend setup |
| CLI commands, workflows | resources/command-cookbook.md |
User needs init/plan/apply/destroy patterns or state commands |
| State management, remote backends | resources/state-and-backends.md |
User asks about state files, locking, or remote backends |
Quick Start
# 1. Initialize working directory (downloads providers)
terraform init
# 2. Preview changes (always run before apply)
terraform plan
# 3. Apply changes (requires confirmation)
terraform apply
# 4. Destroy infrastructure (DANGEROUS — requires confirmation)
terraform destroy
Core Command Tracks
- Initialize:
terraform init— downloads providers, sets up backend - Validate & format:
terraform validate,terraform fmt -recursive - Preview:
terraform plan [-out=tfplan]— no changes made - Apply:
terraform apply [tfplan]— creates/updates resources - Inspect state:
terraform state list,terraform state show <resource> - Workspaces:
terraform workspace list,terraform workspace select <name>
Safety Guardrails
- Always run
terraform planbeforeterraform apply— review the diff carefully. terraform destroyis irreversible — confirm resource list before proceeding.- Never commit
terraform.tfstateor.tfvarsfiles containing secrets to version control. - Use
-targetsparingly; it can leave state inconsistent. - Enable state locking on remote backends to prevent concurrent modifications.
# Inspect managed resources in state before making changes
terraform state list
terraform state show aws_instance.web
Workflow
- Write or edit
.tfconfiguration files. - Run
terraform fmtto normalize formatting. - Run
terraform validateto catch syntax errors. - Run
terraform planand review the proposed changes. - Run
terraform applyonly after reviewing the plan. - Commit updated
terraform.lock.hclbut neverterraform.tfstate.
Related Skills
- pulumi — IaC using general-purpose languages (TypeScript, Python, Go, C#)
- ansible — configuration management and agentless automation
References
resources/install-and-setup.mdresources/configuration.mdresources/command-cookbook.mdresources/state-and-backends.md- Official docs: https://developer.hashicorp.com/terraform/docs
- Provider registry: https://registry.terraform.io
- Best practices: https://www.terraform-best-practices.com
- Tutorials: https://developer.hashicorp.com/terraform/tutorials
Source: greedychipmunk/agent-skills — distributed by TomeVault.