无法捕获Azure VM的映像

Don*_*rez 10 vhd virtual-machine azure

我认为有关如何捕获VM映像官方Azure说明必须不正确或不完整.我自己进行了各种测试(详见下文),并且有超过二十几个人在页面上抱怨指令不起作用和/或损坏他们的VM.当然,指令中缺少某些内容,因为人们必须能够从Azure VM中捕获图像.

http://www.windowsazure.com/en-us/manage/windows/how-to-guides/capture-an-image/

页面上的说明非常简单:

  • 远程桌面进入Azure VM
  • 打开管理员命令窗口
  • 使用指示的设置运行sysprep(Out-Of-Box-Experience,Generalize,Shutdown)
  • 点击OK
  • 等待系统关闭VM
  • 单击门户中的捕获.

这听起来很简单但VM实际上从未关闭过,所以你实际上无法点击capure按钮.如果手动关闭实例,即使在等待数小时后,生成的图像也无法工作,并且原始vhd在此过程中被销毁.

任何人都可以确认您能够使用此工作流程或其他工作流程捕获正在运行的Azure实例吗?如果是这样,你能告诉我你做的与我正在做的不同吗?

详细信息 - 我运行的测试如下:

测试1 - 小实例上的Win2k8 R2

  • 在美国西部地区启动Win2k8 R2的小型实例
  • 远程桌面进入图像
  • 使用OOBE运行sysprep,概括,关闭
  • Azure仪表板显示sysprep 15分钟后完成的所有CPU活动,设备空闲,稳定状态为0.41%cpu
  • 等待几个小时(在此实例上写完> 2.5小时,其他测试时> 12小时)
  • Azure VM仍在运行,实例的捕获按钮在门户中不可用

测试2 - 大型实例上的Win2k8 R2

  • 与测试1相同但在大型实例上
  • 除了15分钟后稳态CPU利用率为0.08%以外,结果相同

TEST 3 - 小型实例上的Win2k12数据中心版

  • 与测试1相同但运行Win2k12数据中心
  • 测试1的结果与稳态CPU利用率为4.2%相同

测试4 - Windows实例更新的小型实例上的Win2k8 R2

  • 与测试1相同的步骤,但重复运行Windows Update,直到运行sysprep之前没有更多可用更新
  • 与测试1相同的结果

TEST 5 - 使用Visual Studio 2012 Update 3在Small实例上运行Win2k8 R2

  • 与测试1相同的步骤,但在运行sysprep之前安装VS2012 Ultimate和VS2012 Update 3
  • 与测试1相同的结果

测试6 - 具有完全配置的IIS服务器的大型实例上的Win2k8 R2

  • 在大型实例上配置我们的标准服务器配置(IIS,.NET 4.5)
  • 运行我们的标准Web服务测试
  • 使用OOBE运行sysprep,概括,关闭
  • 等待4个小时,允许sysprep运行
  • 使用portal关闭实例
  • 使用门户来捕获实例
  • 生成的图像不起作用(配置机器在几小时后超时)
  • 原始VHD不起作用(不能远程桌面到VHD创建的实例)

测试7 - 具有完全配置的IIS服务器的大型实例上的Win2k8 R2

  • 与测试6相同,除了等待12个小时允许sysprep运行
  • 在撰写本文时(12个多小时),VM仍然没有关闭

Dav*_*gon 9

对您的工作流程进行一个简单的更改:在sysprep期间,选择退出而不是关闭.这样就完成了sysprep过程,但之后只退出了sysprep应用程序.

tl; dr:在命令行上运行以下命令:

c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /quit
Run Code Online (Sandbox Code Playgroud)

此时,您只需在门户中选择正在运行的VM并将其关闭(只需要几分钟).然后,您可以查看它,它将显示为已停止(已取消分配).此时,按照您指向的教程中的描述创建图像.您将为其命名(例如"我的专业图像"),单击表示已进行sysprepped的复选框,然后单击"确定".您的图像已创建,您的原始vhd已删除(现在您已拥有它的通用版本),图像在您的订阅中注册为图库中的可选图像(这需要几分钟),您就完成了.

此时,从库中创建新图像.查看我的图像 - 您将看到列出的全新图像(在尝试此操作之前可能需要等待一分钟左右 - 它可能不会立即显示在列表中).

现在只需给它一个用户名和密码,你应该全部设置好.

注意:如果您担心在此步骤中丢失VM(例如出现问题),您可以随时复制vhd.您需要使用PowerShell(或基于节点的跨平台命令行工具),可以从windowsazure.com 下载页面下载.然后,您可以将vhd复制到全新的blob,它实际上是为您备份的.如果出现问题,您可以使用备份映像作为新虚拟机(尚未进行sysprep)的基础,或者复制它(等等).为此,您需要vhd的URL,该URL显示在正在运行的VM 的Dashboard页面的Disks部分中.

  • 我不是核心Azure团队.也就是说,我很乐意指出合适的团队.可能是那些指令在某些时候工作(或*工作*)就好了(并且可能仍然根据具体情况而定). (2认同)