如何将 Azure 虚拟机规模集部署到现有虚拟网络?

How can I deploy an Azure virtual machine scale set to an existing virtual network?

我已经在同一个 VLAN 中成功部署了带有 AD 服务器的 VMSS。但是,当我尝试部署第二个 VMSS 时,它会创建一个新的虚拟网络,将其放置在远离我现有 AD 的位置。

如何将第二个 VMSS 部署到与第一个和 AD 相同的虚拟网络中?如果我编辑一个模板使其具有与现有虚拟网络相同的虚拟网络,然后部署它,部署会进入现有虚拟网络还是会尝试创建一个同名的新网络并失败或重复?

或者,有什么方法可以将 VMSS 中的 NIC 迁移到另一个网络?我找不到执行此操作的 cmdlet,在 Web 界面中,它仅在下拉列表中显示部署时创建的虚拟网络,而不是原始虚拟网络。

如果您第二次部署具有相同 vnet 配置的模板,它基本上不会执行任何操作。如果您对现有作品略微更改配置,它将尝试更新该配置。

本质上,您在这里要做的是编写模板,使其通过 NIC 引用现有网络,而不是定义网络本身。你的声明是网络 "exists" 所以你不需要定义它只引用它。这是 JSON:

的片段
      "networkProfile": {
        "networkInterfaceConfigurations": [
          {
            "name": "vmss-nic",
            "properties": {
              "primary": true,
              "ipConfigurations": [
                {
                  "name": "vmss-ipconfig",
                  "properties": {
                    "subnet": {
                      "id": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('subnetName'))]"
                    }

"id" 属性 是您要放置 VMSS 的 vnet 的子网的 resourceId。如果 vnet 与 VMSS 在同一个资源组中,您可以缩短该表达式简单地说:

Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('subnetName')

但是完全合格的 id 将适用于所有场景。

回复:移动 VMSS,您始终可以通过部署如上配置的模板来尝试。相同 RG 中的相同 VMSS 名称但具有不同的网络配置文件。

HTH