是否可以使用Nant根据某种类型的属性/参数将应用程序部署到不同的服务器集?
我需要做什么: 环境由1个或多个服务器组成。 我们有多个环境(dev,qa,prod)。 该软件包包含多个网站项目。
当要求NANT为DEV构建时,它需要构建项目并正确设置web.config以在DEV环境中工作(连接字符串等)。此外,每个网站项目都需要部署到该环境的正确服务器上。
此外,可以使用NANT一次构建我的所有项目,然后多次部署(部署到Dev,QA,Prod环境吗?)(即,构建和部署在不同时间完成,一旦构建完成已创建,部署可以多次在该构建包上运行)
答案 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。在部署目标中,下载必要的工件并执行部署。