如何在模板部署中指定可用性集?
How to specify availability set in template deployment?
我创建了一个 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/
在您的 temp.json 文件中添加 availabilitySetName 作为变量(相应地更改):
"variables": {
...
"availabilitySetName": "myAvSet",
...
}
然后将其添加为资源:
"resources": [
...
{
"type": "Microsoft.Compute/availabilitySets",
"name": "[variables('availabilitySetName')]",
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"properties": {}
}
...
继续往下 "resources",找到要添加到可用性集中的虚拟机,并使其依赖于您的可用性集资源。刚刚修改完dependsOn,将其添加到properties对象中。
{
"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" 对象中的资源。
"properties": {
...
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets', 'myAsName') ]"
}
...
我创建了一个 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/
在您的 temp.json 文件中添加 availabilitySetName 作为变量(相应地更改):
"variables": {
...
"availabilitySetName": "myAvSet",
...
}
然后将其添加为资源:
"resources": [
...
{
"type": "Microsoft.Compute/availabilitySets",
"name": "[variables('availabilitySetName')]",
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"properties": {}
}
...
继续往下 "resources",找到要添加到可用性集中的虚拟机,并使其依赖于您的可用性集资源。刚刚修改完dependsOn,将其添加到properties对象中。
{
"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" 对象中的资源。
"properties": {
...
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets', 'myAsName') ]"
}
...