Terraform环境目录变量无法传递至模块问题求助
Terraform环境变量传递到模块的解决方法
你遇到的问题由两个独立的配置错误导致,按以下步骤修改即可实现跨环境变量传递到模块:
1. 修复tfvars文件不自动加载的问题
Terraform默认只会自动加载命名为terraform.tfvars或后缀为*.auto.tfvars的变量文件,你当前使用的vars.tfvars不在自动加载规则内,所以运行时会要求手动输入变量值,两种修复方案二选一:
- 将
test/vars.tfvars重命名为test/terraform.tfvars,即可实现自动加载 - 运行Terraform命令时手动指定变量文件:
terraform apply -var-file=vars.tfvars
2. 修复模块不识别range参数的问题
Terraform要求所有子模块的入参必须在子模块自身的变量定义中显式声明,你只在根模块(test目录)声明了range变量,子模块infra未声明对应变量,所以会抛出「不支持的参数」错误。
在modules/infra目录下新增variables.tf文件,添加以下内容即可:
variable "range" { type = string description = "VPC对应的CIDR地址段" }
修改完成后重新运行命令,即可正常将test环境变量文件中定义的range值传递到infra模块使用。
内容的提问来源于stack exchange,提问作者CEamonn
相关产品推荐
相关产品推荐

