Как указать группу доступности в развертывании шаблона?

Я создал образ Linux, и я намерен создать другие виртуальные машины из того же виртуального жесткого диска. Эти виртуальные машины должны быть в группе доступности — так есть ли параметр для указания имени группы доступности с помощью этой команды?

azure group deployment create --resource-group myRG --template-file temp.json

Ссылка: https://azure.microsoft.com/en-gb/documentation/articles/virtual-machines-linux-capture-image/


person mr i.o    schedule 22.10.2016    source источник


Ответы (1)


В файле temp.json добавьте доступностьSetName в качестве переменной (измените соответственно):

"variables": {
 ...
  "availabilitySetName": "myAvSet",
 ...
 }

Затем добавьте его как ресурс:

"resources": [
 ...
 {
  "type": "Microsoft.Compute/availabilitySets",
  "name": "[variables('availabilitySetName')]",
  "apiVersion": "2015-06-15",
  "location": "[resourceGroup().location]",
  "properties": {}
 }
 ...

Еще ниже внутри «ресурсов» найдите виртуальную машину, которую вы хотите добавить в доступный набор, и сделайте ее зависимой от вашего ресурса доступности. Сразу после изменения dependOn добавьте его в объект свойств.

 {
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Compute/virtualMachines",
  ...
  "dependsOn": [
    ...
    "[concat('Microsoft.Compute/availabilitySets/', variables('availabilitySetName'))]"
    ...
  ],
  "properties": {
    ...
    "availabilitySet": {
      "id": "[resourceId('Microsoft.Compute/availabilitySets',variables('availabilitySetName')) ]"
    }
  ...
  }

Обновлять:

При создании виртуальной машины из образа проще всего просто создать группу доступности перед развертыванием шаблона, как мы уже сделали с сетевым интерфейсом. В этом случае вам нужно только сослаться на ресурс в объекте «свойства».

"properties": {
    ...
    "availabilitySet": {
      "id": "[resourceId('Microsoft.Compute/availabilitySets', 'myAsName') ]"
    }
  ...
person Bruno Faria    schedule 22.10.2016
comment
Спасибо за ответ, но я не могу найти бит Depend on в JSON, который был автоматически сгенерирован при создании образа. - person mr i.o; 22.10.2016
comment
возможно, этот пример поможет вам github.com/Azure/azure-quickstart-templates/blob/master/. Если у вас его нет, добавьте :) - person Bruno Faria; 22.10.2016
comment
Это то, что было создано автоматически — gist.github.com/iogbole/df04a510ce5671e69497073735e74ff9. Не лучше ли заменить URL-адрес виртуального жесткого диска в шаблоне, который вы связали с моим? Спасибо еще раз - person mr i.o; 22.10.2016
comment
Что ж, в этом случае проще просто заранее создать ресурс Availability Set и добавить его как свойство. См. строку 29. - person Bruno Faria; 22.10.2016
comment
Это сработало, большое спасибо. Не могу дождаться, когда MS упростит добавление/удаление виртуальных машин в/из групп доступности через портал. - person mr i.o; 22.10.2016
comment
да! Как ни странно, у них есть эта функция в классическом режиме (ASM), но пока нет в ARM. Я обновлю ответ. Пожалуйста, если это сработало для вас, не забудьте отметить это как ответ :) - person Bruno Faria; 22.10.2016