【问题标题】:How to capture an image of Azure virtual machine in new portal?如何在新门户中捕获 Azure 虚拟机的映像?
【发布时间】:2016-08-07 19:14:46
【问题描述】:

我订阅了 bizsparkplus。我点击了以下链接,但找不到捕获按钮:

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-classic-capture-image/#next-steps

有什么建议吗?

【问题讨论】:

标签: azure virtual-machine clone


【解决方案1】:

直到昨天,我在 Azure 的新门户中没有发现任何可以帮助从 VM 捕获图像的内容,

但今天,出乎意料的是,我在 VM 的“概述”选项卡中发现了一个“捕获”按钮 :)(只会出现在具有“托管磁盘”的 VM 上)

捕获图像非常容易(大约需要一分钟),但您必须先在 VM 上连接 ssh 并按照this official article 运行此命令(这将删除用户的主文件夹):

sudo waagent -deprovision+user -force

然后你就可以使用按钮了。

-- 警告--

从您的 VM 捕获映像将停止它并将其标记为 generalized 这不会让您再次启动此 VM,因为它是 generalized 是an irreversible process "by design"! .. 最糟糕的是,他们甚至没有在按钮上发出警告!所以要小心!

【讨论】:

  • 有什么方法可以将数据保存在主目录中?这就是机器中所有软件的实际位置。他们实际上希望人们将他们的软件存储在哪里?
  • 很遗憾,删除主目录是泛化VM取镜像背后的核心,所以不能用。对我来说,我将源代码保存在 /usr/sources/ 和其他 repos 以及类似的东西里面 /var/
【解决方案2】:

此功能在新的 Azure 门户中尚不可用。您必须选择:Azure 资源浏览器或 PowerShell。

这是一个在 powershell 中的例子。在此示例中,自定义映像将保存在 VM 存储帐户中。 vm 自定义映像将存储在以下位置“System/Microsoft.Compute/Images/templates/***.vhd”。 :

$vmResourceGroup = "iaas-rg";
$vmName = "ubuntu";
$destinationContainerName = "templates";
$vhdNamePrefix = "template";
$sampleOutupTemplatePath =  "C:\Templates\ImagesGeneralized\sampleOutputTemplateUbuntu.json";

Login-AzureRmAccount

#Dellocate the VM
Stop-AzureRmVM -ResourceGroupName $vmResourceGroup -Name $vmName

#Generalize the vm 
Set-AzureRmVM -ResourceGroupName $vmResourceGroup -Name $vmName -Generalized

# Save the custom vm Image
Save-AzureRmVMImage -ResourceGroupName $vmResourceGroup -VMName $vmName -DestinationContainerName $destinationContainerName -VHDNamePrefix $vhdNamePrefix -Path $sampleOutupTemplatePath

第二个选项是使用Azure Resource Explorer,你可以手动执行操作*:

*要执行这些操作,必须在 Azure 资源管理器中选择“读/写”模式。

问候,

【讨论】:

  • 我已捕获图像并尝试使用 power shell 从该图像创建 vm。我坚持的重点是分配 NetworkInterfaceId。当我尝试以下评论 $vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id 时,我在路径“properties.networkProfile.networkInterfaces[0].id”处的属性 ID 无效。你知道如何设置接口ID吗?
  • 你的$nic在分配给VM之前是否成功创建?
  • 我从其他资源中复制了 $Nic,最后只是更改了存储名称。现在好了。谢谢。
  • 欢迎您!如果您觉得可以,请将答案标记为已解决!
【解决方案3】:

您可以在新门户中捕获经典虚拟机。有一个捕获选项。附件是截图。

【讨论】:

  • 我正在使用 Resouce Group 的新门户。它不是经典的虚拟机。
【解决方案4】:

如果其他人在寻找这个主题,我正在研究它并在这里找到了一些 azure 文档:

Create a managed image of a generalized VM in Azure

这解释了泛化是一种单向操作(以及为什么)

以及如何通过首先创建 VM 副本来解决此问题

Create a Windows VM from a specialized disk by using PowerShell

使用文章中的选项 3。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-30
    • 2018-09-20
    • 2012-07-04
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多