![](/img/trans.png)
[英]How to update Route Table and Security Configuration of Azure Virtual Hub using Terraform
[英]How to update resource from another Terraform configuration
我正在尝试在 Azure 中构建中心辐射型拓扑。
问题:部署每个 Spoke .NET 后,有一个随机生成的 Blob 存储名称,我需要在其他 TF 配置中传递和更新 Azure 防火墙规则。
问题:是否可以自动完成?
可能的解决方案:我将terraform apply
Spoke .NET 并使用随机生成的 blob 存储名称作为 output。将其传递给 .sh 脚本,该脚本将更新 Hub .NET 与防火墙使用的.tfvars 文件。 然后terraform apply
此集线器 .NET 配置。 在销毁任何 Spoke .NET 时,我也必须反向执行此操作。 但这不是很优雅。 有没有更好的办法? 也许使用 Terragrunt 钩子?
在 terragrunt 的情况下,您可以轻松地将一个模块(即 Hub .NET)的输出作为输入传递给依赖它的模块(即 Spoke .NET)。 代码片段如下所示:
hub-.net/terragrunt.hcl
:
dependency "spoke-a-vnet" {
config_path = "../spoke-a-vnet"
mock_ouptuts = {
blob-name = ""
}
}
dependency "spoke-b-vnet" {
config_path = "../spoke-b-vnet"
mock_ouptuts = {
blob-name = ""
}
}
inputs {
blob-names = [dependency.spoke-a-vnet.outputs.blob-name, dependency.spoke-v-vnet.outputs.blob-name]
}
然后在您的 Hub .NET 模块中,您将配置一个行为,如果它等于""
,则应该跳过 blob-name 。
在 Spoke 移除操作期间,您需要运行两个步骤:
destroy
apply
(实际上是重新应用),其中模拟值""
将作为 blob 存储输入生效并因此被跳过(基于上述条件方法)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.