Variable Declaration
variables.tf
variable "region" { description = "AWS region for deployment" type = string default = "us-east-1" } variable "ami_id" { description = "Pre-baked EC2 AMI ID" type = string }
Define inputs in variables.tf to establish schema and documentation
terraform.tfvars
region = "us-west-2" ami_id = "ami-0abcde12345678901"
Default variable values in auto-detected terraform.tfvars
Configuration Strategies
Environment-Specific Files
# dev.tfvars environment = "development" instance_type = "t3.nano" # prod.tfvars instance_type = "c5.xlarge"
Use separate .tfvars files for different environments. Terraform will automatically load dev.tfvars
when running terraform apply -var-file=prod.tfvars
Sensitive Values
# secrets.tfvars access_key = "your-credentials-here"
Never commit files with sensitive data. Use the TF_VAR_*
environment variable syntax
for production credentials
⚠️ Never include secrets in version control
Usage Examples
Auto-load
terraform apply
Automatically loads terraform.tfvars, *.auto.tfvars
Explicit Files
terraform apply -var-file=prod.tfvars
Specify exactly which file to load
Direct Input
terraform apply -var "ami_id=ami-12345678"
Pass individual values at execution