如何结合stream浪与jenkins完美的持续集成环境?

你有一个项目已经得到了一些软件需求(例如:一个特定版本的Apache,PHP的一个版本,一个MySQL数据库的实例和其他一些软件)。

你已经发现了Vagrant ,所以你的虚拟环境都是安装的。 您可以从configuration文件和食谱中创build框。

您还了解了Jenkins等持续集成系统的优点。

现在你想结合这两个世界(Vagrant和Jenkins)来获得完美的持续集成环境。 更具体地说,您不想在运行Jenkins的机器上安装项目所需的SW,但是您想使用由Vagrant提供的虚拟环境来定期构build您的项目。 CI软件(Jenkins)将为您build立Vagrant框,并在其顶部构build并testing您的项目。

你将如何设置你的环境来实现这一目标?

build立系统是一个很好的解决scheme,我的build议是:

  1. 您当前的jenkins作为主CI(可能由用户jenkins开始)
  2. 在同一台机器或另一台机器上创build另一个用户作为jenkins从属模式工作
    • jenkins奴隶可以从jenkins大师调用,它可以使用不同的用户,如stream浪者谁有许可和stream浪的环境,因此它不会干扰原来jenkins主服务器
    • 创build你的基地stream浪者箱子,那么它可以被重用来加速你的部署
  3. 大部分的安装信息(包)可以由木偶(或厨师)pipe理,加载到您的虚拟机箱中。

大概你可以看看veewee ,它可以创buildstream浪的飞行箱。

Jenkins CI和Vagrant为我的指导提供了一个build议。

你可以尝试目前支持Jenkins CD 1.532.3的Jenkins的Vagrant插件

你可以在http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html上看到这个插件的演示;

就个人而言,我build议使用Hashicorp Packer为开发人员构build您的Vagrant框,然后使用它来输出Docker或AWS或OpenStack映像,您可以在CI系统上运行该映像。 Vagrant是一个非常棒的工具,但是虚拟机的开销可能会让CI系统的开销增加一倍,特别是如果你真的需要非常快的反馈时。

在一个以前的客户端,我们基本上用系统启动了Vagrant机器,然后在这些虚拟机内部运行Docker / virtualenv构build,并且在出现重大升级或环境问题不正常时,我们会定期销毁它们。

https://www.packer.io/docs/builders/openstack.html