【问题标题】:Tool for automated packaging and deployments with Environment concept具有环境概念的自动打包和部署工具
【发布时间】:2012-06-22 21:15:13
【问题描述】:

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

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

像 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 中,然后可以轻松地将其部署到环境中。这样的工具必须有“环境”这个概念,允许轻松定义结构(见上例),允许添加\修改\删除环境实例,然后在打包\部署时自动使用。

有什么想法或经验吗?

【问题讨论】:

  • 你提到了Nolio,它可以很容易地与teamcity集成,为什么不用呢?
  • Nolio 是一个非常昂贵的工具。我的公司不会批准它。

标签: xml deployment automation teamcity environment


【解决方案1】:

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

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

以下是有关转换语法的附加信息: http://msdn.microsoft.com/en-us/library/dd465326.aspx

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

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2016-04-21
    • 2011-11-20
    • 1970-01-01
    • 2012-11-19
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多