通过Azure CI DevOps部署代码时如何管理不同环境(如开发产品)的配置?

时间:2019-10-11 11:30:45

标签: azure azure-devops continuous-integration continuous-deployment

我在VSTS中有一个Develop分支,并且build(CI)定义成功。现在,我想将构建部署到Dev和UAT和PROD环境。如果发布成功,则所有环境都将具有Dev设置,因为Dev build / Dev分支web.config具有dev设置。如何管理各个版本的UAT / PROD / DEV设置。

注意:Develop分支的web.config中提到的开发设置。

更新1:

对于下面的XML文件,需要在运行时根据不同的环境修改值。需要在Release管道中配置.xml文件值更改。

<RPSServer>
 <Sites>
 <Site SiteName="default">
 <SiteId>123546</SiteId>
 <ReturnURL>Custome URL</ReturnURL>
 </Site>
 </Sites>
</RPSServer>

在上述xml文件中,DEV,UAT和PROD的SiteId和ReturnURL将有所不同

2 个答案:

答案 0 :(得分:0)

如果您有一个发布管道,那么使用变量可以帮助您。

答案 1 :(得分:0)

不确定将部署到何处,但是Azure App Service DeployIIS Web App Deploy任务现在都支持file transforms and variable substitution。如果您通过Azure App Service Deploy任务来部署应用程序,则有文件转换和变量替换选项可以进行转换。

您还可以使用XDT Transform extension来对配置文件应用转换,因此您可以在发布工件中包含/添加相关的配置文件,然后针对发布环境配置转换。

另一种方法是,您可以通过Replace TokensTokenization task替换配置文件中的值。

您可以参考以下博客来做到这一点:

-

更新:

还可以替换* .xml文件的令牌。例如,使用Replace Tokens扩展名,我们可以如下所示编辑xml文件,然后为不同的环境/阶段设置变量。

<RPSServer>
 <Sites>
 <Site SiteName="default">
 <SiteId>#{SiteId}#</SiteId>
 <ReturnURL>#{URL}#</ReturnURL>
 </Site>
 </Sites>
</RPSServer>

下面的屏幕截图参考: enter image description here enter image description here