使用环境概念进行自动化包装和部署的工具

时间:2012-06-22 13:03:02

标签: xml deployment automation teamcity environment

我们大量使用 TeamCity 进行构建\测试。

据我所知,TeamCity不适合打包和部署。 当然,任何命令行流程都可以由TeamCity发起,但我们缺少的是“环境”的概念,在哪里部署。

像Nolio这样的工具有任意格式。 例如,我们可以为项目定义环境类型:

 1 app server:
  - IIS web site with:
     - Virtual Dir \ Web Application:
        - App Pool
        - .NET Framework version
  - Windows service with:
    - Name
    - Description

 1 db server:
  - db name
  - db user
  - db password

所以所有环境(Dev,QA,PreProd,Prod)都会有不同的参数。 在打包过程中(例如通过Wix的MSI)我们可以使用这些参数为特定的环境创建MSI,例如在Web.config中更新connectionString。

其他项目可能有不同的环境定义。 可能XML格式最适合描述这种结构和价值。

我们在NAnt脚本中实现了类似的东西,每个环境都有.build文件,其中包含平面值列表。然后我们将值<xmlpoke>转换为Web.config个文件。但这很难维持。

所以现在我们正在寻找一些可以与TeamCity集成的工具(以获取构建工件),将它们打包成可安装的MSI,然后可以轻松地将其部署到environemnt上。这样的工具必须具有这个概念“环境”,允许轻松定义结构(参见上面的例子),允许添加\ modify \ delete环境实例,然后在打包\部署时自动使用它们。

任何想法或经验?

1 个答案:

答案 0 :(得分:1)

我对不同环境的自动和手动部署实际上是通过Team City与MSDeploy并使用配置转换完成的。

这是Troy Hunt使用的逐步指南:http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity.html

这里有关于转换语法的其他信息: http://msdn.microsoft.com/en-us/library/dd465326.aspx

在此设置中,每个环境在解决方案中都是不同的构建配置,以及特定的配置转换。