Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure ARM模板osprofile依赖项_Azure_Deployment - Fatal编程技术网

Azure ARM模板osprofile依赖项

Azure ARM模板osprofile依赖项,azure,deployment,Azure,Deployment,创建自定义模板时出现问题。我试图从vhd创建虚拟机作为vhd,但在部署过程中失败,错误是缺少osProfile。这很有趣,因为在internet上的其他模板中,我看到并没有osprofile部分,它的部署没有问题 因此,我添加了带有computerName参数的osProfile。但现在部署失败,出现错误,需要adminUsername和adminPassword。我不明白为什么在另一个脚本中这是不需要的,它将创建VM而不会出现问题 还有一个事实是,我的模板正在使用vhd创建VM,而另一个模板正

创建自定义模板时出现问题。我试图从vhd创建虚拟机作为vhd,但在部署过程中失败,错误是缺少
osProfile
。这很有趣,因为在internet上的其他模板中,我看到并没有osprofile部分,它的部署没有问题

因此,我添加了带有
computerName
参数的
osProfile
。但现在部署失败,出现错误,需要
adminUsername
adminPassword
。我不明白为什么在另一个脚本中这是不需要的,它将创建VM而不会出现问题

还有一个事实是,我的模板正在使用vhd创建VM,而另一个模板正在使用托管磁盘创建VM。这可能有问题吗

我的代码:

"apiVersion": "2017-03-30",
            "type": "Microsoft.Compute/virtualMachines",
            "name": "[parameters('vmName')]",
            "location": "[parameters('location')]",
            "dependsOn": [
                "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
            ],
            "properties": {
                "hardwareProfile": {
                    "vmSize": "[parameters('vmSize')]"
                },
                "osProfile": {
                    "computerName": "[concat(parameters('vmName'))]",
                    "adminUsername": "",
                    "adminPassword": ""
                },
                "storageProfile": {
                    "osDisk": {
                        "name": "[concat(parameters('vmName'),'-osDisk')]",
                        "osType": "[parameters('osType')]",
                        "caching": "ReadWrite",
                        "image": {
                            "uri": "[parameters('osVhdUri')]"
                        },
                        "vhd": {
                            "uri": "[variables('osDiskVhdName')]"
                        },
                        "createOption": "FromImage"
                    }
                },
                "networkProfile": {
                    "networkInterfaces": [
                        {
                            "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
                        }
                    ]
                },
                "diagnosticsProfile": {
                    "bootDiagnostics": {
                        "enabled": true,
                        "storageUri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', parameters('userDiagStorageAccountName')), '2016-01-01').primaryEndpoints.blob)]"
                    }
                }
我知道
adminUsername
adminPassword
不能为空,但我不希望在从现有vhd创建VM时使用此参数

部署中的一段模板代码成功:

"apiVersion": "2017-03-30",
            "type": "Microsoft.Compute/virtualMachines",
            "name": "[parameters('vmName')]",
            "location": "[parameters('location')]",
            "tags": {
                "displayName": "VirtualMachine"
            },
            "dependsOn": [
                "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]",
                "[concat(parameters('vmName'), '_OSdisk')]",
                "[concat(parameters('vmName'), '_Datadisk')]"
            ],
            "properties": {
                "hardwareProfile": {
                    "vmSize": "[parameters('vmSize')]"
                },
                "storageProfile": {
                    "osDisk": {
                        "osType": "[parameters('osType')]",
                        "caching": "ReadWrite",
                        "createOption": "Attach",
                        "managedDisk": {
                            "id": "[resourceId('Microsoft.Compute/disks', concat(parameters('vmName'), '_OSdisk'))]"
                        }
                    },
                    "dataDisks": [
                        {
                            "lun": 0,
                            "managedDisk": {
                                "id": "[resourceId('Microsoft.Compute/disks', concat(parameters('vmName'), '_Datadisk'))]"
                            },
                            "caching": "ReadOnly",
                            "createOption": "Attach"
                        }
                    ]
                },
                "networkProfile": {
                    "networkInterfaces": [
                        {
                            "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
                        }
                    ]
                },
                "diagnosticsProfile": {
                    "bootDiagnostics": {
                        "enabled": true,
                        "storageUri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('diagStorageAccountName')), '2016-01-01').primaryEndpoints.blob)]"
                    }
                }
这是我的模板中没有osProfile的部署失败的打印屏幕。 将
“createOption”:“FromImage”
更改为
“createOption”:“附加”
。您正在尝试从市场映像而不是现有VHD创建VM


在这种情况下,您可以完全删除osProfile

在此处搜索VHD模板,查看其中是否有适合的模板谢谢,但在我更改后,部署中会出现新错误:如果VM是从平台或用户映像创建的,则无法连接现有操作系统磁盘。您使用的是通用VHD吗?否,因为此vhd来自现有azure VM。我仅将托管操作系统磁盘从此现有Azure VM转换为vhd。Azure中的VM资源是否已存在?请删除vm资源,然后重试。有很多事情可能是错误的,请检查此链接。但是你应该使用attach。我建议你结束这个问题,调查到底发生了什么,然后带着一个新问题回来。因为这个问题已经解决了(虽然你仍然有一个问题,但它是另一个问题),我在你的帮助下得到了它。因此,正如您所说,我从image改为Attach,然后删除了这一部分
“name”:“[concat(parameters('vmName'),'-osDisk')]”,“osType”:“[parameters('osType')]”,“caching”:“ReadWrite”,“image”:{“uri”:“[parameters('osVhdUri')]””},
最后一件事是破折号(-),它在代码的另一部分。我从这里删除了破折号
参数('vmName'),'-osDisk.vhd')],