如何在模板部署中指定可用性集?

时间:2016-10-22 13:16:03

标签: azure azure-cli azure-availability-set

我创建了一个linux映像,我的目的是从同一个VHD创建其他VM。这些VM需要位于可用性集中 - 因此是否有使用此命令指定可用性集名称的参数?

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

参考:https://azure.microsoft.com/en-gb/documentation/articles/virtual-machines-linux-capture-image/

1 个答案:

答案 0 :(得分:1)

在temp.json文件中,将availabilitySetName添加为变量(相应地更改):

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

然后将其添加为资源:

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

进一步向内"资源",找到要添加到availabilitySet的虚拟机,并使其可靠地依赖于availabilitySet资源。在修改dependsOn之后,将其添加到属性对象。

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

更新

从映像创建VM时,最简单的方法是在部署模板之前创建可用性集,就像我们已经使用网络接口一样。在这种情况下,您只需要参考"属性"宾语。

"properties": {
    ...
    "availabilitySet": {
      "id": "[resourceId('Microsoft.Compute/availabilitySets', 'myAsName') ]"
    }
  ...