Azure Terraform:动态将网络ID作为解析网络添加到私有DNS区域

时间:2019-01-14 19:25:25

标签: azure terraform

我正在研究一个复杂的terraform模板,该模板将我们的产品分成单独的模块,以便我们可以模块化地构建(或添加到)基础结构。

我们将拥有一个包含DNS专用区域的根虚拟网络。该区域显然仅具有根网络的解析网络。

下一个产品将在不同的订阅中创建一个新的虚拟网络,然后将对等网络,我想将该新网络ID添加到DNS区域的解析列表中。

在Terraform中似乎没有引用和更新资源的附加功能,因此我一直被困于尝试使用新的分辨率网络列表再次创建它。有没有更好的办法?

使用新资源似乎要删除旧资源。

1 个答案:

答案 0 :(得分:0)

他们正在努力向azurerm terraform提供程序添加新的资源类型: azurerm_private_dns_zone_virtual_network_link 。这将允许在不使用 azurerm_private_dns_zone 资源类型的情况下,将解析和注册网络添加到私有dns区域。它将在即将推出的Azure Terraform提供程序2.0中提供。

直到那时我还没有找到一种解决方法。

来自相应pull request的即将到来的功能的更多详细信息:

  

azurerm_private_dns_zone_virtual_network_link
  使您能够管理   专用DNS区域虚拟网络链接。这些链接启用DNS   使用Azure在Azure虚拟网络中进行解析和注册   专用DNS。

     

用法示例

resource "azurerm_resource_group" "test" {
  name     = "acceptanceTestResourceGroup1"
  location = "West US"
}

resource "azurerm_private_dns_zone" "test" {
  name                = "mydomain.com"
  resource_group_name = "${azurerm_resource_group.test.name}"
}

resource "azurerm_private_dns_zone_virtual_network_link" "test" {
  name                  = "test"
  resource_group_name   = azurerm_resource_group.test.name
  private_dns_zone_name = azurerm_private_dns_zone.test.name
  virtual_network_id    = azurerm_virtual_network.test.id
}
     

参数参考

     

支持以下参数:

     

名称-(必需)专用DNS区域虚拟网络的名称   链接。更改此设置将强制创建新资源。

     

private_dns_zone_name -(必填)私有DNS区域的名称   (没有终止点)。更改此设置将强制使用新资源   已创建。

     

virtual_network_id -(必需)虚拟网络的资源ID   应该链接到DNS区域。改变这一点迫使新的   要创建的资源。

     

registration_enabled -(可选)是否已自动注册虚拟   专用DNS区域中的虚拟网络中的计算机记录   启用?默认为false。

     

resource_group_name -(必需)指定资源组,其中   资源存在。更改此设置将强制使用新资源   已创建。

     

标签-(可选)要分配给资源的标签映射。