【问题标题】:Can Nant be used to deploy to different servers?Nant 可以用来部署到不同的服务器吗?
【发布时间】:2011-08-17 19:50:28
【问题描述】:

Nant 能否用于根据某种类型的属性/参数将应用程序部署到一组不同的服务器?

我需要 NANT 做什么: 一个环境由一台或多台服务器组成。 我们有多个环境(dev、qa、prod)。 该包包含多个网站项目。

当要求 NANT 为 DEV 构建时,它需要构建项目并正确设置 web.config 以在 DEV 环境中工作(连接字符串等)。此外,每个网站项目都需要部署到适合该环境的正确服务器。

此外,NANT 能否用于构建我的所有项目一次,然后多次部署(部署到 Dev、QA、Prod 环境?)(即,构建和部署在不同时间完成,一旦构建完成已创建,部署可以在该构建包上运行多次)

【问题讨论】:

标签: deployment continuous-integration nant release-management


【解决方案1】:

在此处查看我对配置管理的回答:Should I have multiple build.xml files for one project (dev,staging,production)

基本上,您需要environment configs 用于 DEV、QA、PREPROD、PROD 等,指定您要在部署期间部署的环境(例如从命令行到 -D:environment=DEV),它将使用适当的配置和部署。

Build once, deploy everywhere 是您应该遵循的一般方法。构建和部署应该是单独的目标。如果需要,请使用 CI 工具(如 Jenkins、TeamCity)来构建应用程序。将构建应用程序(zip、tar、war 等)公开为工件。在部署目标中,下载必要的工件并进行部署。

【讨论】:

  • 我得到“一次构建,到处部署”,我还了解如何使用单独的环境配置,其中环境是从命令行提供的。我不明白的是如何将构建文件设置为“构建一次”?我是否应该有 2 个单独的 Nant 项目:1. 用于构建,2:用于部署?
【解决方案2】:

我有一个类似的 NAnt 解决方案,这对我来说效果很好。在同一个构建文件中,我定义了不同的目标,用于为每个环境编译和设置不同的配置文件。我的部署目标使用 3 个参数:复制源、复制目标、配置文件。

文件从源复制到目标。然后将指定的配置文件(Web.config.dev、Web.config.qa、Web.config.production)复制到目的地并重命名为Web.config。

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多