每当新的开发人员加入团队或开发人员正在使用的计算机发生变化时,开发人员都需要做大量的工作来设置本地开发环境,以使当前项目正常工作。作为一个SCRUM团队,我们正在尝试自动化所有的事情,包括部署和测试,所以我想问的是:有没有工具或实践可以让本地开发环境设置自动化?
例如,要设置我的环境,首先我必须安装eclipse,然后是SVN、Apache、Tomcat、MySQL、PHP。在那之后,我填充了数据库,我必须在各种配置文件中做一些小的修改,等等。有没有办法把这项工作减少到一次点击?
发布于 2009-05-08 11:55:39
有几个选项,有时这些选项的组合很有用:
各种选项的详细信息:
用于自动安装和配置工作站的各种服务、工具和配置文件的
- [Puppet](https://puppet.com/) has a learning curve but is powerful.  You define classes of machines (development box, web server, etc.) and it then does what is necessary to install, configure, and keep the box in the proper state.  You asked for one-click, but Puppet by default is zero-click, as it checks your machine periodically to make sure it is still configured as desired.  It will detect when a file or mode has been changed, and fix the problem.  I currently use this to maintain a handful of RedHat Linux boxes, though it's capable of handling thousands.  (Does not support Windows as of 2009-05-08).  
- [Cfengine](http://www.cfengine.org/) is another one.  I've seen this used successfully at a shop with 70 engineers using RedHat Linux.  Its limitations were part of the reason for Puppet.
- [SmartFrog](http://en.wikipedia.org/wiki/SmartFrog) is another tool for configuring hosts.  It does support Windows.
- Shell scripts.  [RightScale](http://blog.rightscale.com/2007/08/07/configuring-servers-with-rightscripts/) has examples of how to configure an Amazon EC2 image using shell scripts.
- Install packages.  On a Unix box it's possible to do this entirely with packages, and on Windows msi may be an option.  For example, [RubyWorks](http://studios.thoughtworks.com/rubyworks) provides you with a full Ruby on Rails stack, all by installing one package that in turn installs other packages via dependencies.
目前,我使用上面的组合来自动化这个过程,如下所示:
发布于 2013-05-22 01:39:59
我偶然发现了这个问题,令我非常惊讶的是,还没有人提到Vagrant。

正如Pete TerMaat和其他人所提到的,虚拟化是管理和自动化开发环境的一种很好的方法。流浪基本上消除了设置这些虚拟盒子的痛苦。
几分钟之内,你就可以拥有一个你最喜欢的Linux发行版的全新副本并运行起来,并且provisioned的方式和你的生产服务器完全一样。
不用再为安装PHP、MySQL等而与OSX或Windows打架了。所有软件都在虚拟机中运行。您甚至可以使用vagrant ssh通过SSH登录。如果你犯了一个错误或弄坏了什么东西,只需用vagrant destroy命令,然后用vagrant up命令重新开始。
Vagrant自动为你的本地文件系统创建一个synced folder,这意味着你不需要在虚拟机中进行开发(即.使用Vim)。使用您选择的任何编辑器。
我现在几乎为我做的每个项目都创建了一个新的“流浪者盒子”。我的所有设置都保存在项目存储库中,因此很容易引入其他团队成员。他们只需要拉回回购,然后运行vagrant up,他们就已经准备好了。
这也使得处理具有不同软件需求的项目变得更加容易。也许你有一些依赖于PHP5.3的项目,但是一些新的运行PHP5.4的项目。只需为该项目安装您想要的版本。
Check it out!
发布于 2009-05-08 11:19:39
重要的一点是在源代码管理中设置您的项目,以便您可以在签出后立即构建、部署和运行。
这意味着您还应该检查帮助程序基础设施,如Makefiles、ant buildfile等,以及工具的设置,如IDE项目文件。
这应该会解决单个项目的安装麻烦。
对于基本的机器设置,您可以使用标准映像。另一种选择是使用平台的工具自动安装。在Linux下,您可以创建一个meta-package,它依赖于您需要的所有包。在Windows下,使用MSI或类似的东西应该可以实现类似的事情。
编辑:
理想情况下,不是签入帮助器基础设施,而是签入允许构建生成帮助器基础设施的信息。这是GNU构建系统(autotools等)或Maven所采用的方法。这甚至更优雅,因为您(理论上)可以为任何(支持的)构建环境生成基础架构,因此您不会被绑定到某个特定的IDE,以及帮助基础架构(路径等)中的设置。不需要复制主项目设置。
然而,这也是一种更复杂的方法,所以如果你不能让它工作,我相信直接签入IDE文件之类的东西是可以接受的。
https://stackoverflow.com/questions/839360
复制相似问题