Nant可以用于部署到不同的服务器吗?

时间:2011-08-17 19:50:29

标签: deployment continuous-integration nant release-management

是否可以使用Nant根据某种类型的属性/参数将应用程序部署到不同的服务器集?

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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等)公开为Artifacts。在部署目标中,下载必要的工件并执行部署。