Difference between .tfvars and variables.tf files in Terraform

Difference between .tfvars and variables.tf files in Terraform

Mar 3, 2023ยท

2 min read

Play this article

๐Ÿ“ Introduction:

In Terraform, terraform.tfvars is a file used to set the values of variables defined in the Terraform configuration files. This file is used to provide values for variables that are too sensitive or too specific to be included in the configuration files themselves.

๐Ÿ”น Example:

Here's an example of what a terraform.tfvars file might look like:

region = "us-west-2"
vpc_id = "vpc-0123456789abcdef0"
subnet_ids = ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2"]

In this example, the region, vpc_id, and subnet_ids variables are defined, and their values are set in the terraform.tfvars file. The region variable specifies the AWS region to use, while the vpc_id and subnet_ids variables specify the VPC and subnets to use for creating resources.

๐Ÿ”น Difference b/w .tfvars & Variable.tf files:

In Terraform, the .tfvars file and variables.tf file serve different purposes in managing variables.

The .tfvars file is used to set the values of variables defined in the Terraform configuration files. This file is used to provide values for variables that are too sensitive or too specific to be included in the configuration files themselves. The terraform.tfvars file is the default file name that Terraform looks for to automatically load variable values when the terraform apply command is run.

On the other hand, variables.tf is a file used to define the variables that will be used in the Terraform configuration files. This file is used to declare the variables and their types, default values, and descriptions. These variables can be used throughout the Terraform configuration files to set values for resources and modules.

Here's an example of what a variables.tf file might look like:

variable "region" {
  type = string
  default = "us-west-2"
  description = "The AWS region to use for resources"
}

variable "vpc_id" {
  type = string
  description = "The ID of the VPC to use for resources"
}

variable "subnet_ids" {
  type = list(string)
  description = "The IDs of the subnets to use for resources"
}

In this example, the variables.tf file defines three variables: region, vpc_id, and subnet_ids. These variables can be used throughout the Terraform configuration files to set values for resources and modules. The region variable has a default value of "us-west-2", while the vpc_id and subnet_ids variables do not have default values and must be set using a .tfvars file.

๐Ÿ“ Conclusion:

In conclusion, the main difference between the .tfvars file and variables.tf file is that the former is used to set variable values, while the latter is used to define the variables themselves. By using both files together, teams can easily manage and organize their variable values and definitions, making it easier to manage and update Terraform configurations.

Did you find this article valuable?

Support Prasad Suman Mohan by becoming a sponsor. Any amount is appreciated!

ย