Шаблон Azure ARM с виртуальной машиной и подсетью - PullRequest
0 голосов
/ 02 октября 2018

У меня есть группа ресурсов с именем network-rg , содержащая виртуальную сеть.Я пытаюсь развернуть виртуальную машину в новой группе ресурсов vm-rg .Виртуальная машина должна быть подключена к новой подсети в сети vnet в network-rg .Я использую один шаблон ARM как с подсетью, так и с виртуальной машиной, и развертывание в vm-rg. Как указать подсеть в шаблоне ARM, если ее виртуальная сеть находится в другой группе ресурсов, чем основная группа / группа по умолчанию для развертывания?

Мне нужно явно указать виртуальную сеть с помощьюгруппа ресурсов.Это будет похоже на то, как развертывание сетевого интерфейса ссылается на идентификатор подсети в своем списке свойств ipConfigurations:

  "apiVersion": "2015-05-01-preview",
  "type": "Microsoft.Network/networkInterfaces",
  "name": "[parameters('nicName')]",
  "location": "[parameters('location')]",
  "properties": {
      "ipConfigurations": [{
          "name": "ipconfig1",
          "properties": {
              "subnet": {
                  "id": "[variables('subnet1Ref')]"
              }
          }
      }]
   }

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вам потребуется добавить переменные (ресурс в шаблоне, который ссылается на файл параметров), например, ниже:

В файле main.JSON:

{
    "name": "[parameters('networkInterfaceName')]",
    "type": "Microsoft.Network/networkInterfaces",
    "apiVersion": "2018-04-01",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[concat('Microsoft.Network/publicIpAddresses/', parameters('publicIpAddressName'))]"
    ],
    "properties": {
      "ipConfigurations": [
        {
          "name": "ipconfig1",
          "properties": {
            "subnet": {
              "id": "[variables('subnetRef')]"
            },
            "privateIPAllocationMethod": "Dynamic",
            "publicIpAddress": {
              "id": "[resourceId(parameters('resourceGroupName'),'Microsoft.Network/publicIpAddresses', parameters('publicIpAddressName'))]"
            }
          }
        }
      ],
      "enableAcceleratedNetworking": true,
      "networkSecurityGroup": {
        "id": "[resourceId(parameters('nsgResourceGroupName'), 'Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]"
      }
    }
  }   

Добавьте следующие переменныев main.JSON:

{
    "name": "[parameters('networkInterfaceName')]",
    "type": "Microsoft.Network/networkInterfaces",
    "apiVersion": "2018-04-01",
    "location": "[parameters('location')]",
    "dependsOn": [
      "[concat('Microsoft.Network/publicIpAddresses/', parameters('publicIpAddressName'))]"
    ],
    "properties": {
      "ipConfigurations": [
        {
          "name": "ipconfig1",
          "properties": {
            "subnet": {
              "id": "[variables('subnetRef')]"
            },
            "privateIPAllocationMethod": "Dynamic",
          }
        }
      ],
    }
  }

Затем добавьте следующие параметры в файл main.JSON:

"parameters": {
  "virtualNetworkName": {
  "type": "string"
},
"subnetName": {
  "type": "string"
},

В main.parameters.json добавьте информацию о переменной:

"virtualNetworkName": {
  "value": "<vnet name>"
},
"resourceGroupName": {
  "value": "<whatever the rg is for the Network>"
},
"subnetName": {
  "value": "<subnet name>"
},

Надеюсь, это поможет.

0 голосов
/ 02 октября 2018

Кажется, вы не можете создать подсеть в другой группе ресурсов в одном шаблоне, когда создаете новую группу ресурсов с ресурсами.У вас нет свойства ссылаться на Vnet в другой группе.

Если вы действительно хотите создать новую подсеть в другой группе в одном шаблоне, вы можете взглянуть на связанный и вложенный шаблон .Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...