如何在terraform.tfvars文件内复用已定义的oke_vcn_cidr变量值
Terraform 变量引用避免重复硬编码实现方案
注意:
terraform.tfvars是变量赋值专用文件,不支持直接引用其他变量,所有动态引用逻辑需要放到.tf后缀的配置文件中实现。
1. 前置校验:确认变量已声明
首先确保你在同目录的variables.tf文件中已经完成oke_vcn_cidr的变量声明,示例代码如下:
variable "oke_vcn_cidr" { type = string description = "OKE集群关联VCN的CIDR地址段" }
你现有terraform.tfvars中的赋值逻辑不需要修改,保持即可:
oke_vcn_cidr = "10.0.0.0/21"
2. 替换硬编码值的两种常用方式
方式一:安全规则资源中直接引用
如果你在.tf文件中直接定义安全组规则,把硬编码的CIDR值替换为var.oke_vcn_cidr即可,示例:
resource "oci_core_security_list" "intlb_sl" { # 其余安全列表配置省略 egress_security_rules { protocol = "all" destination = var.oke_vcn_cidr # 替换原有硬编码的"10.0.0.0/21" # 其余规则配置省略 } }
方式二:本地值中转后引用
如果你的安全规则是统一封装的参数集合,可以通过locals块中转变量,便于多位置复用:
# 任意.tf文件中定义本地值 locals { oke_vcn_cidr = var.oke_vcn_cidr # 其余公共参数可统一放在此处 } # 安全规则配置中调用本地值 resource "oci_core_security_list" "intlb_sl" { egress_security_rules { protocol = "all" destination = local.oke_vcn_cidr } }
内容的提问来源于stack exchange,提问作者magic
相关产品推荐
相关产品推荐

