terraform - 多个模块的公共变量
问题描述
这是跨模块共享变量的正确方法还是我做错了?
在基本模块中,我添加了一个变量:
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
......
解决方案
我不确定这是最好的方法,但我一直在 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
}
推荐阅读
- wpf - 通过 VSTS 将 WPF 应用程序部署到 Hockeyapp 时出现错误“无法从构建中创建版本”
- pdf - 如何使用 VBScript 循环浏览 PDf 的页面
- office365 - 无法在 Office 365 Excel 和 Winword 应用程序中使用电子邮件快捷方式选项
- amazon-web-services - 是否值得在不同的 AWS 位置发布不同的站点语言?
- unit-testing - 使用 dotCover 命令行工具(JetBrains)的单元测试覆盖率 - 是否可以使用 x64 dll 测试运行此工具?
- selenium-webdriver - 外部代理 Titanium Web 代理?
- javascript - chrome扩展错误:拒绝执行内联事件处理程序,因为
- jpeg - 如何为 JEPG 霍夫曼值建立查找表
- unit-testing - 未执行任何测试(Play Framework)
- python - 有没有办法在字节正则表达式中使用 \b ?(Python)