我正在尝试在Azure市场上发布我的产品。
我使用的是用于从portal.azure.com
创建虚拟机的Windows 2012 R2 Datacenter。我按照运行sysprep,概括它然后创建容器的步骤进行操作。
之后,当我们运行save-azurermvmimage
来捕获图片时,我得到the capture action is only supported on a virtual machine with blob based disks. please use the image resource apis to create an image from a managed virtual machine
所以我无法在容器中获取图像网址。有什么我做错了吗?
请指导!
答案 0 :(得分:7)
托管磁盘与非托管磁盘不同。我们可以使用Powershell创建托管图像,但我们无法在我们的存储帐户中找到这个新图像,Azure管理托管磁盘,我们无法直接管理它。
要创建VM的托管图像,我们可以按照以下步骤操作:
运行sysprep到概括 Windows VM。(此过程deletes原始虚拟机被捕获后。在捕获Azure虚拟机的映像之前,建议使用目标虚拟机备份。)
$vmName = "myVM"
$rgName = "myResourceGroup"
$location = "EastUS"
$imageName = "myImage"
Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force
Set-AzureRmVm -ResourceGroupName $rgName -Name $vmName -Generalized
$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $rgName
$image = New-AzureRmImageConfig -Location $location -SourceVirtualMachineId $vm.ID
New-AzureRmImage -Image $image -ImageName $imageName -ResourceGroupName $rgName
有关创建托管图片的详细信息,请参阅此link。
顺便说一句,我们应该使用Azure PowerShell 3.7.0或更高版本。
PS C:\Users> Get-Module -ListAvailable -Name Azure -Refresh
Directory: C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.7.0 Azure {Get-AzureAutomationCertificate, Get-AzureAutomationConnec...
答案 1 :(得分:1)
经过大量的工作,我最终想出了这些步骤:
答案 2 :(得分:0)
在Atihska步骤中,在Sysprep之后,机器将关闭,状态将显示为已停止但未停止(已取消分配)。对于解除分配,您需要在powershell命令下运行。
Stop-AzureRMVM -ResourceGroupName ResourceGroup -Name VMName
Set-AzureRMVM -ResourceGroupName ResourceGroup -Name VMName -Generalized