gpt4 book ai didi

azure - 将 Azure VPN 网关部署到现有 vnet,而不影响现有子网

转载 作者:行者123 更新时间:2023-12-03 00:06:32 24 4
gpt4 key购买 nike

我正在尝试将新的 Azure 虚拟网络网关部署到包含多个子网的现有 VNET。我首先在测试环境中使用虚拟子网进行配置。我正在使用 ARM 创建 .json 模板和参数文件,并通过 Jenkins 进行部署。目前,该模板在部署虚拟网络网关时尝试重新部署整个 VNET。我不希望它这样做。我希望它将虚拟网络网关部署到现有的 VNET。请参阅下文,了解我如何在模板中对 VNET 进行编码。

{
"apiVersion": "2019-04-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[parameters('virtualNetworkName')]",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('azureVNetAddressPrefix')]"
]
},
"subnets": [
{
"name": "GatewaySubnet",
"properties": {
"addressPrefix": "[parameters('gatewaySubnetPrefix')]"
}
}
]
}
}

部署此模板时,我在 Jenkins 中收到以下错误:

"code": "InUseSubnetCannotBeDeleted",

"message": "Subnet testing-subnet is in use by /subscriptions/****/resourceGroups/networks-dev-rg/providers/Microsoft.Network/networkInterfaces/dev-jmp-d31653/ipConfigurations/ipconfig1 and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet."

我查看了 Microsoft 知识库,但我一直在努力寻找如何做到这一点的解释,或者它是否可能。理想情况下,我希望避免列出 vnet 中的所有子网,因为这是我想要应用于具有不同子网的不同 vnet 的模板。

谁能提供答案或建议吗?谢谢。

最佳答案

不幸的是,ARM 似乎对此支持不是很好。这是因为 VNET 是一种资源,而子网是该资源的属性。部署 ARM 模板时,任何未提及的资源都会被忽略(至少在迭代模式下)。

但是,必须指定所提及的现有资源的属性。这是因为 Azure 尝试实现模板中指定的资源。如果属性不同,它就会改变它。如果某个属性不存在,它将删除它。

潜在的解决方案:

  1. 每个虚拟网络都有多个模板。当您进行更改时,您会更新整个 vnet。这需要您跟踪多个模板,对于基础设施即代码来说并不理想,但这是一个简单的解决方案。

  2. 改用 powershell 解决方案:

https://learn.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-tutorial-create-gateway-powershell 。我自己没有尝试过,因为我的上级告诉我使用 ARM,但几个论坛上都建议它作为替代方案。

  • 您还可以尝试按照本指南使用复制循环,但这实用性有限,而且我尚未验证您是否可以使用名称数组而不是数字数组:
  • https://pkm-technology.com/azure-vnet-json/

  • 作为单独模板的一部分更新您的子网。这还要求您还更新主 vnet 模板,否则如果您重新部署主 vnet 模板,您的新子网将被删除。另外,您只能通过这种方式添加子网。如果您想做其他事情(例如部署 VPN 网关),这并没有帮助。
  • 关于azure - 将 Azure VPN 网关部署到现有 vnet,而不影响现有子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56649078/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com