automation - 如何自动化设置开发环境?

标签 automation agile development-environment scrum

每次有新的开发人员加入团队或者开发人员使用的计算机发生变化时,开发人员都需要做大量的工作来设置本地开发环境以使当前项目正常运行。作为一个 SCRUM 团队,我们正在尝试自动化一切,包括部署和测试,所以我要问的是:是否有工具或实践可以使本地开发环境设置自动化?

例如,要设置我的环境,首先我必须安装 eclipse,然后安装 SVN、Apache、Tomcat、MySQL、PHP。之后,我填充了数据库,我必须对各种配置文件等进行微小的更改...有没有办法将这项工作减少到一键式?

最佳答案

有多个选项,有时这些选项的组合很有用:

  • 自动安装
  • 磁盘镜像
  • 虚拟化
  • 源代码控制

各种选项的详细信息:

  1. 自动安装用于自动安装和配置工作站的各种服务、工具和配置文件的工具:

    • Puppet有学习曲线但功能强大。您定义机器的类别(开发盒、Web 服务器等),然后它执行安装、配置并使机器保持正确状态所需的操作。您要求一键单击,但 Puppet 默认情况下是零单击,因为它会定期检查您的计算机以确保其仍按需要配置。它将检测文件或模式何时发生更改,并修复问题。我目前用它来维护一些 RedHat Linux 机器,尽管它能够处理数千个机器。 (自 2009 年 5 月 8 日起不支持 Windows)。
    • Cfengine是另一个。我曾在一家拥有 70 名工程师且使用 RedHat Linux 的商店中看到过这种方法的成功应用。它的局限性是 Puppet 的部分原因。
    • SmartFrog是另一个用于配置主机的工具。它确实支持 Windows。
    • Shell 脚本。 RightScale有如何使用 shell 脚本配置 Amazon EC2 镜像的示例。
    • 安装软件包。在 Unix 机器上,可以完全使用软件包来完成此操作,而在 Windows 上,msi 可能是一个选项。例如,RubyWorks为您提供完整的 Ruby on Rails 堆栈,只需安装一个包,然后再通过依赖项安装其他包即可。
  2. 磁盘镜像那么当然还有disk imaging tools用于存储已配置主机的镜像,以便可以将其恢复到另一台主机。与虚拟化一样,这对于测试盒来说尤其有用,因为可以轻松地将内容恢复到全新状态。保持内容不断更新仍然是一个问题——仅仅为了传播配置文件更改而制作新镜像是否值得?

  3. Virtualization 是另一种选择,例如制作 Xen、VirtualPC 或 VMWare 镜像的副本来创建新主机。这对于测试盒特别有用,因为无论测试造成什么困惑,您都可以轻松恢复到干净、已知的状态。与磁盘镜像工具一样,与使用自动安装/配置工具相比,保持主机最新需要更多的手动步骤和警惕性。

  4. 源代码控制一旦安装/配置了必要的工具,构建就应该是从源代码存储库中检查所需的内容并构建它。

目前,我使用上述组合来自动化该过程,如下所示:

  • 首先在 VMWare guest 上安装准系统操作系统
  • 运行 shell 脚本来安装 Puppet 并从源代码控制中检索其配置
  • 用于安装工具/组件/配置的 Puppet
  • 从源代码控制中查看文件以构建和部署我们的 Web 应用程序

关于automation - 如何自动化设置开发环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839360/

相关文章:

不同语言的 iOS UI 自动化

git flow 发布选定的功能

architecture - 测试驱动开发是否将重点放在设计上?

unit-testing - 为什么单元测试在敏捷中如此重要?

linux - 如何使用新的环境变量打开 gnome-terminal?

python - 用于 Python 中可重现环境的工具(或工具组合)

c# - 什么是最小的 ASP.NET MVC 4 安装?

ruby - Watir - 使用部分文本查找元素

linux - 让 bash 脚本回答交互式提示

google-chrome - GMail 阻止通过自动化 (Selenium) 登录