我正在为 WPF 应用程序设计测试基础架构。我想要一个系统,当文件夹中出现新的 MSI 时,它会创建一个 VM,并在新创建的 VM 上安装 MSI。我正在使用 Hyper-V 和 PowerShell。文件夹监视和启动是我能做的所有事情,但 Hyper-V 方面让我陷入困境。我有一个想用作基础的 VM,但我不知道接下来该怎么做。
导出虚拟机,然后使用 PS 脚本导入/复制虚拟机是否更好?直接“复制”虚拟机是否更好?检查点是否应该发挥作用?有没有更好的方法?
如果有人有关于使用 PS 进行自动 VM/App 配置的资源链接,那就太好了。我是一名开发人员,所以我不知道去哪里做这样的事情。
谢谢,埃里克
答案1
我有一个想要用作基础的虚拟机,但我不知道接下来该怎么做。
“正确答案”是使用SCCVM 中的虚拟机模板虽然从你问题的语气来看,我猜你没有 SCCVM。
你可以做的是,虽然这会花费更多的时间,但构建一个主映像虚拟机,系统准备然后将生成的 VHD 用于后续的虚拟机。
假设您已经备份了主映像(系统准备之前和之后),您可以执行如下简单操作:
Copy-Item C:\Hyper-V\MasterImage\MasterImage_CDrive.vhdx C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx
New-VM $SpawnVM -Path "C:\Hyper-V"
Add-VMDisk -VM $SpawnVM -ControllerId 0 -Lun 0 -Path "C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx"
该 PowerShell 代码片段应从主映像复制 VHD,创建一个新的 VM,然后将其附加。您可能还有很多事情要做,所以我将向您指出Windows PowerShell 中的 Hyper-V Cmdlet在 Windows 8.1 / Windows Server 2012 R2 中,它的功能相当齐全。如果您稍后有具体问题,请随时回来提问。
检查站是否应该发挥作用?
也许。您可以通过从检查点导出虚拟机(I相信这会合并差异磁盘和父磁盘,因此您不会节省任何时间)。检查点实际上应该只保留给临时时间点恢复:
检查点旨在在您需要将虚拟机在发生更改(例如系统或应用程序更新)后恢复到之前的状态时提供临时备份。但是,您不应使用检查点对操作系统、应用程序或文件进行永久备份。
我是一名开发人员,所以我不知道去哪里做这样的事情。
请不要误解,但如果您要认真对待此过程,请考虑与您的系统管理团队交谈或聘请具有相关经验的本地人员或承包商。可以就每个主题写一本小书。通过一些 PowerShell 来自动化一些开发或测试虚拟机可能没问题,但这听起来并不是开始进行严肃生产的好方法。只是一句友情提醒...确保您的 DevOps 不是全是开发而没有 Ops。
希望这能让你入门。如果你在生产环境中定期大量地执行此操作,你应该 System Center 2012 R2 虚拟机管理器和System Center 2012 R2 编排器一脸严肃。