Terraform 中的 tfvars 文件是什么以及如何使用它?

发布: (2025年12月16日 GMT+8 16:01)
5 min read
原文: Dev.to

Source: Dev.to

Sarah Lean 🏴󠁧󠁢

Terraform 中的 tfvars 文件是什么以及如何使用它?

当您使用 Terraform 时,一个关键原则是您可以编写可重用且可扩展的代码,这些代码可以在多个环境中使用,而无需重新编写或复制。

这就是 tfvars 文件发挥作用的地方。该文件允许您快速高效地定义和自定义变量值,使部署更加一致,也更容易管理。

什么是 Terraform 中的 tfvars 文件?

tfvars 文件在 Terraform 中用于为 Terraform 配置定义输入变量的值。它让您能够为变量提供具体值,从而轻松为不同环境(例如开发、测试或生产)定制部署。

在 Terraform 部署中自定义变量有多种方式;然而,使用 tfvars 文件是最常见且最有效的方法。

Source:

如何使用 tfvars 文件?

展示如何使用 tfvars 文件的最佳方式是通过示例代码进行演示。我们来创建一个项目,用于定义一个 Azure 资源组。

1. 定义资源组(硬编码)

# Define the Resource Group
resource "azurerm_resource_group" "resource_rg" {
  name     = "rg-example"
  location = "uksouth"
  tags = {
    Environment = "Demo"
    Owner       = "Sarah Lean"
  }
}

完整代码可在此处查看。

这段基础代码可以工作,但硬编码的值使得在不同环境之间复用变得困难。为避免重复,我们将引入变量。

2. 创建 variables.tf

在项目文件夹中创建名为 variables.tf 的文件,并在其中定义变量。为每个变量添加描述和默认值。

variable "resource_group_name" {
  description = "The name of the resource group"
  type        = string
  default     = "azurergtechielass"
}

variable "location" {
  description = "The Azure region to deploy resources in"
  type        = string
  default     = "Sweden Central"
}

variable "environment" {
  description = "The environment for the resources"
  type        = string
  default     = "Demo"
}

variable "owner" {
  description = "The owner of the resources"
  type        = string
  default     = "Techie Lass"
}

3. 在资源中引用变量

# Define the Resource Group
resource "azurerm_resource_group" "resource_rg" {
  name     = var.resource_group_name
  location = var.location
  tags = {
    Environment = var.environment
    Owner       = var.owner
  }
}

如果此时运行 terraform apply,资源组将使用 variables.tf 中的默认值创建。

4. 创建 terraform.tfvars 文件

如果想覆盖默认值,可以使用 tfvars 文件。 在项目文件夹中创建 terraform.tfvars 并为每个变量赋值:

resource_group_name = "techielass-demo-rg"
location            = "France Central"
environment         = "Blog"
owner               = "Sarah"

现在运行 terraform plan,会看到 Terraform 正在从 tfvars 文件中读取值,而不是使用默认值。

Terraform 计划命令使用 tfvars 文件

Terraform 计划命令使用 tfvars 文件

使用多个 tfvars 文件针对不同环境

tfvars 文件的好处在于可以为每个环境维护独立的文件,例如:

  • dev.tfvars
  • test.tfvars
  • prod.tfvars

运行 Terraform 时,指向相应的文件:

terraform plan -var-file="dev.tfvars"
terraform apply -var-file="dev.tfvars"

这种做法消除了为每个环境重写代码的需求;只需修改对应的 tfvars 文件,即可加快部署速度并降低出错概率。

Terraform 小技巧

摘要

使用 tfvars 文件作为 Terraform 部署的一部分可以使您的代码更加灵活、可复用且高效。
通过将变量值与主要配置代码分离,您可以避免硬编码值,使代码更易于维护,并能够在多个环境中实现更好的扩展。

Back to Blog

相关文章

阅读更多 »

第7天 – Terraform中的类型约束

在第5天,我们看到了变量的实际使用。今天我们深入探讨 Terraform 中的类型约束。Primitive Types(原始类型)是基本构建块:str...