Terraform Environment Variable
Terraform searches the environment of its own process for environment variables named TF_VAR_ followed by the name of a declared variable.
This can be useful when running Terraform in automation, or when running a sequence of Terraform commands in succession with the same variables.
On operating systems where environment variable names are case-sensitive, Terraform matches the variable name exactly as given in configuration, and so the required environment variable name will usually have a mix of upper and lower case letters.
let's take an example create a terraform file
variable "username" {
type = string
}
output printname {
value = "Hello, ${var.username}"
}
now set the value of username variable in the environment using the below command
export TF_VAR_username=Hinal
now run terraform plan command and see the output.
┌──(gaurav㉿learning-ocean)-[~/terraform/youtube-course/env-variable]
└─$ export TF_VAR_username=Hinal
┌──(gaurav㉿learning-ocean)-[~/terraform/youtube-course/env-variable]
└─$ terraform plan
Changes to Outputs:
+ printname = "Hello, Hinal"
You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
──────────────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.