如何使用 ARM 模板创建新磁盘并将其附加到现有 Windows 虚拟机?

How to create and attach a new disk to an existing Windows Virtual Machine using ARM template?

我已经在我的资源组中创建了 VM 现在我想向我现有的 VM 添加一个新的数据磁盘所以有人可以给我提供任何 GitHub URL 模板 link我可以参考这个要求。 Link以下我已经去了

https://docs.microsoft.com/en-us/azure/virtual-machines/using-managed-disks-template-deployments

如果您想通过 ARM 模板创建新的数据磁盘并附加到新创建的 VM,请尝试以下模板:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vmName": {
            "type": "String"
        },
        "diskName": {
            "type": "String"
        }
    },
    "resources": [{
            "type": "Microsoft.Compute/virtualMachines",
            "apiVersion": "2019-07-01",
            "name": "[parameters('vmName')]",
            "location": "[resourceGroup().location]",
            "properties": {

                "storageProfile": {
                    "dataDisks": [{
                            "lun": 0,
                            "name": "[parameters('diskName')]",
                            "createOption": "attach",
                            "managedDisk": {
                                "id": "[resourceId('Microsoft.Compute/disks/', parameters('diskName'))]"
                            }
                        }
                    ]
                }
            },
            "dependsOn": ["[resourceId('Microsoft.Compute/disks/', parameters('diskName'))]"]
        }, {
            "type": "Microsoft.Compute/disks",
            "apiVersion": "2018-06-01",
            "name": "[parameters('diskName')]",
            "location": "[resourceGroup().location]",
            "sku": {
                "name": "Standard_LRS"
            },
            "properties": {
                "creationData": {
                    "createOption": "Empty"
                },
                "diskSizeGB": 1023
            }
        }

    ]
}

我使用 PowerShell 进行部署。结果:

更新

如果你的虚拟机已经有1个数据盘,你想保留它并附加一个新的数据盘,你需要在dataDisks中指定这2个磁盘,为了快速测试,模板下面是基于上一个:这个虚拟机已经附加了一个磁盘:test6-disk 并附加了一个新的并保留了两个:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vmName": {
            "type": "String"
        },
        "diskName": {
            "type": "String"
        }
    },
    "resources": [{
            "type": "Microsoft.Compute/virtualMachines",
            "apiVersion": "2019-07-01",
            "name": "[parameters('vmName')]",
            "location": "[resourceGroup().location]",
            "properties": {

                "storageProfile": {
                    "dataDisks": [{
                            "lun": 0,
                            "name": "test6-disk",
                            "createOption": "attach",
                            "managedDisk": {
                                "id": "[resourceId('Microsoft.Compute/disks/','test6-disk')]"
                            }
                        }, {
                            "lun": 1,
                            "name": "[parameters('diskName')]",
                            "createOption": "attach",
                            "managedDisk": {
                                "id": "[resourceId('Microsoft.Compute/disks/', parameters('diskName'))]"
                            }
                        }
                    ]
                }
            },
            "dependsOn": ["[resourceId('Microsoft.Compute/disks/', parameters('diskName'))]"]
        }, {
            "type": "Microsoft.Compute/disks",
            "apiVersion": "2018-06-01",
            "name": "[parameters('diskName')]",
            "location": "[resourceGroup().location]",
            "sku": {
                "name": "Standard_LRS"
            },
            "properties": {
                "creationData": {
                    "createOption": "Empty"
                },
                "diskSizeGB": 1023
            }
        }

    ]
}

结果: