这是在模块之间共享变量的正确方法还是我做错了?
在基本模块中,我添加了一个变量:
variable "aws_region" {
description = "Region to use"
default = "eu-west-1"
}
然后我使用output
公开它:
output "AwsRegion" {
value = var.aws_region
}
然后在要使用的模块中,导入基本模块并引用它:
module "base" {
source = "../base"
}
provider "aws" {
version = "~> 2.37"
region = module.base.AwsRegion
}
是否有一种定义变量并将其导出为输出的方法? Terraform是否具有访问修饰符的概念?能做public variable
或output variable
...
答案 0 :(得分:1)
我不认为这是最好的方法,但是我一直将它们传递到main.tf文件中。通过这样做,我可以看到已定义新变量以及填充模块变量的值。
module "linuxvm" {
source = "./linuxvm"
vmprefix = var.prefix
resourcegroup = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
vmos = var.os
password = var.vmpassword
subnetid = module.network.subnetid
}