如何将子网参数传入tfvars?使用Terraform管理Azure子网
把参数传入tfvars文件的步骤
1. 先在根模块定义变量(variables.tf)
首先要在Terraform根目录的variables.tf里,把模块用到的所有变量定义清楚,每个变量指定类型,也可以加简单说明:
variable "business_unit" { type = string description = "业务单元名称" } variable "location" { type = string description = "资源所在Azure区域(示例:chinanorth3)" } variable "region" { type = string description = "区域标识(与location对应)" } variable "vnet_resource_group" { type = string description = "虚拟网络所在的资源组名称" } variable "virtual_network_name" { type = string description = "虚拟网络名称" } variable "address_prefixes" { type = list(string) description = "子网的地址前缀列表(示例:[\"10.0.1.0/24\"])" }
2. 在tfvars文件里赋值
创建或编辑tfvars文件,Terraform默认会自动加载terraform.tfvars或*.auto.tfvars,你也可以自定义文件名(比如dev.tfvars),然后填入对应参数值:
business_unit = "finance" location = "chinanorth3" region = "cn-north-3" vnet_resource_group = "rg-vnet-prod" virtual_network_name = "vnet-main-prod" address_prefixes = ["10.0.1.0/24", "10.0.2.0/24"]
3. 加载tfvars文件运行
如果用的是默认的terraform.tfvars,直接运行terraform plan或terraform apply就会自动读取变量值。如果是自定义文件名,需要手动指定:
terraform plan -var-file=dev.tfvars
这样模块里的var.xxx就会自动读取tfvars里对应的参数值了。
内容的提问来源于stack exchange,提问作者rayaurelius
相关产品推荐
相关产品推荐

