![](/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.