我想设置以下工作流程。
这将允许新的开发人员准备好在几分钟内在持续集成服务器使用和部署的完全相同的环境中进行编码,这要归功于虚拟机。
我想我可能会和Vagrant和Chef一起尝试这个,但我不确定他们是不是真的应该像这样使用。有什么想法吗?
答案 0 :(得分:1)
每个项目都有一个受版本控制的Vagrant文件和一个Jenkins 为每个配置更改构建虚拟机的作业。 此虚拟机旨在用于连续 整合与发展。
Vagrantfile定义了应用程序环境应该是什么样子。 除了配置(Chef,Puppet,Ansible或Shell ...)之外,您还将为每个正在处理项目的团队成员创建完全相同的VM。 然后,您不需要创建VM并从CI或开发人员使用相同的VM实例。每个人都有自己的环境。
开发人员加入项目。他抓住了相应的虚拟 所有设置和配置的Jenkins机器。
每个开发人员都会从同一个Vagrantfile启动在其笔记本电脑上运行的VM - 无需共享虚拟机。
当Jenkins的项目构建工作检测到更改时 存储库,它将虚拟机作为人工制品从同一个地方抓取 开发人员使用的工作并运行构建
您可以使用Jenkins vagrant-plugin从与项目对应的相同Vagrantfile启动VM。您不会从现有VM运行该作业。
注意:如果您担心配置会花费太多时间,这就是您说要使用现有VM的原因,您可以创建一个包含所有依赖项的新框并重新打包以将其用作新的基本框< / p>