Continuous integration 将虚拟机映像创建为连续集成工件?

Continuous integration 将虚拟机映像创建为连续集成工件?,continuous-integration,hudson,vmware,virtualization,Continuous Integration,Hudson,Vmware,Virtualization,我目前正在开发一个服务器端产品,它在新服务器上部署有点复杂,这使它成为在VM中测试的理想候选产品。我们已经使用Hudson作为我们的CI系统,我真的希望能够部署一个虚拟机映像,并将最新和最好的软件作为构建工件 那么,人们到底是如何做到这一点的呢?为此,建议使用哪种虚拟机软件?要做到这一点,需要编写多少脚本?在这里使用Windows 2003 Server作为操作系统时有什么特别的问题吗?我建议。它是免费的,并且有一个定义良好的编程接口,尽管我个人没有在自动构建的情况下使用过它。无论使用哪种VM软

我目前正在开发一个服务器端产品,它在新服务器上部署有点复杂,这使它成为在VM中测试的理想候选产品。我们已经使用Hudson作为我们的CI系统,我真的希望能够部署一个虚拟机映像,并将最新和最好的软件作为构建工件


那么,人们到底是如何做到这一点的呢?为此,建议使用哪种虚拟机软件?要做到这一点,需要编写多少脚本?在这里使用Windows 2003 Server作为操作系统时有什么特别的问题吗?

我建议。它是免费的,并且有一个定义良好的编程接口,尽管我个人没有在自动构建的情况下使用过它。

无论使用哪种VM软件(我也可以推荐VirtualBox),我认为您正在考虑以下场景:

  • 建造完成了
  • CI启动虚拟机(或虚拟机始终在运行)
  • CI使用scp/sftp通过网络将构建上载到VM中
  • CI使用ssh(如果在VM中运行的目标操作系统上可用)或其他远程命令执行工具来触发VM环境中的安装

  • VMWare Server是免费且非常稳定的产品。它还使您能够创建VM切片的快照,并在需要时回滚到以前版本的虚拟机。它将在2003年胜利时运行良好


    就为构建配置新的VM片而言,您只需复制并通过包含VMWare文件的文件夹,更改新VM的SID和IP,就可以拥有一台新机器。根据VM切片的大小,需要15分钟。无需编写脚本。

    如果您使用VirtualBox,您将希望无头运行它,因为它将在您的服务器上运行。通常,VirtualBox作为桌面应用程序运行,但也可以从命令行启动虚拟机并通过RDP访问虚拟机

    VBoxManage startvm "Windows 2003 Server" -type vrdp
    

    很抱歉在这里拒绝任何人接受的答案,但基于进一步的研究(感谢您的答案!),我找到了一个更好的解决方案,并想总结一下我的发现

    首先,VirtualBox和VMWare Server都是很棒的产品,而且因为它们都是免费的,所以值得对它们进行评估。我们决定使用VMWare Server,因为它是一种更成熟的产品,我们可以在需要时获得支持。这一点尤其重要,因为我们也在考虑将软件作为虚拟机(VM)而不是特殊的服务器安装分发给客户端,前提是VMWare播放器的开销不会太高。此外,还有一个名为VIX的工具,可以使用它直接将文件安装到VM,而无需安装SSH或SFTP,这是一个很大的优势


    所以我们的解决方案基本上如下。。。首先,我们使用操作系统创建一个“普通”VM映像,而不使用其他任何东西,并将其签入存储库。然后,我们编写一个脚本作为安装程序,将Hudson创建的工件放在VM上。该脚本应具有通过SFTP和VIX直接复制文件的接口。这将允许我们继续直接在目标机器上分发软件,或者通过我们选择的VM分发软件。然后将生成的映像作为CI服务器的工件进行压缩和分发。

    选择VMWare目前还不错

    但是,,
    就像VMWare支持VMWare server一样,SUN也支持VirtualBOX

    您还可以使用VMWare Studio完成此任务,VMWare Studio也是免费的。 基本工作流程如下: 1.创建描述虚拟机的XML文件 2.使用studio创建shell。
    3.使用VMWare server来配置虚拟机。

    我们使用Jenkins+Vagrant+Chef来实现此方案

    因此,您可以执行以下过程:

    • 使用vagrant配置脚本(Chef或Puppet)控制VM环境的版本

    • 使用Jenkins/Hudson构建您的系统

    • 运行Vagrant脚本从CI输出获取最后一个稳定版本

    • 保存VM状态以供将来重用

    参考:


    Vagarantup.com

    我看到VirtualBox是由Sun赞助的,但当你访问该网站时,人们看到的最接近支持页面的是社区论坛。我不认为这与VMWare完全相同,后者显然更专注于这一特定产品。VMWare Server在2011年达到了生命的尽头。VMware Player是新的免费产品,取代了VMware服务器。我认为“打包机”在这里值得一提。“Packer是一种开源工具,用于从单一源配置为多个平台创建相同的机器映像。”