【发布时间】:2019-08-16 12:27:16
【问题描述】:
环境文件夹设置:
- 模块 A 包含
rg.tf文件以在 azure 上创建资源组。 - 模块 B 包含
vnet.tf文件,它需要来自模块 A 的资源组名称。
如何将一个的输出用于另一个?
Terraform -v = Terraform v0.12.6
文件夹结构:
C:\Terraform\ResourceGroup
\rg.tf
\var.tf
\output.tf
C:\Terraform\Vnet
\vnet.tf
rg.tf 包含:
provider "azurerm" {
Subscription ID : xxxxxxxxxxxxxx
Subscription Name :xxxxxxxxxxxxx
Client ID : xxxxxxxxxxxxxxxxx
Client Secret: xxxxxxxxxxxx
}
terraform {
backend "azurerm" {
storage_account_name = xxxxxxxxxxxxx
resource_group_name = xxxxxxxxxxxxx
container_name = "versiontf"
key = "terraform.tfstate"
}
}
resource "azurerm_resource_group" "res_group" {
location = "${var.location}"
name = "${var.name}"
}
var.tf 包含
variable "location" {
default = "West US"
}
variable "name" {
default = "testing"
}
output.tf 包含:
output "rg_name" {
value = "${azurerm_resource_group.res_group.name}"
}
vnet.tf 包含:
provider "azurerm" {
Subscription ID : xxxxxxxxxxxxxx
Subscription Name :xxxxxxxxxxxxx
Client ID : xxxxxxxxxxxxxxxxx
Client Secret: xxxxxxxxxxxx
}
resource "azurerm_virtual_network" "test" {
name = "vnet"
location = "east us"
resource_group_name = "????????????" (How do i read the resource group name which i created using rg.tf)
address_space = ["10.0.0.0/16"]
}
仅供参考:我能够创建输出值并将其添加到后端状态文件。
【问题讨论】:
-
你能分享你的 Terraform 代码吗?如果它们在单独的文件中,还包括事物的目录布局。
-
@ydaetskcoR 我已经添加了文件夹结构和整个代码。谢谢。
-
我尝试了下面的代码,但它显示了我发布的以下错误。我尝试更改名称和位置并围绕它进行游戏。能够创建 RG,但在创建 vnet 时会抛出错误。
-
你能显示错误信息吗?对我来说效果很好。
-
在 ..\rg\main.tf 第 8 行,在资源“azurerm_resource_group”“rgtest”中:8:资源“azurerm_resource_group”“rgtest”{