我正在创建Azure devops构建管道并发布。此版本具有一个临时环境,该环境利用具有3个服务器的部署组,在生产中可以具有50多个服务器。除appsettings文件外,所有服务器上的应用程序均相同。 appsettings将包含数据库连接和位置/服务器特定的变量。我已经研究了在每台服务器的发行版上处理此文件的方法,当您只需要将开发人员的值切换到暂存版本时,遇到的所有问题就是在发行版中为环境提供变量替换的方法。有没有一种好的方法可以在部署组中而不是50个以上的阶段/标记中为每台服务器操作该文件,或者是一种更好的方法来设置我的管道并发布?
答案 0 :(得分:0)
在部署中是否有很好的方法在每个服务器上处理此文件 组而不是50个以上的阶段/标签
据我所知,我们还不支持这种可能。但是,如果您将应用程序托管在Azure网站上,那么azure有一个new feature可以实现此目标。
但是,如果将应用程序托管到自助服务器上,恐怕在这种情况下更好的部署方法是构建一次,部署很多。换句话说,在“构建”管道中构建项目,并在特定阶段配置相应的appsettings.json文件。
要提高版本的可维护性并简化配置结构,可以使用task group和variable group。 (请在版本中继续使用变量替换)
封装一系列可重复使用的任务到任务组中,然后将在每个部署组作业中使用此模板。 注意,您可以将可重复使用的参数作为模板的一部分。只需抽象应用设置信息并将其作为变量存储到相应的变量组中。
此刻,每当添加新服务器时,只需将相应的应用程序设置参数保存到创建的变量组中。在发布管道中,您只需要添加任务组,并将先前创建的变量组链接到指定阶段。执行发布管道,一切都会按预期进行。
在后期维护中,您只需要修改一次部署任务任务的基本配置,即可将其应用于所有阶段。当需要修改相应的服务器应用程序设置配置时,可以通过打开相应的变量组来修改它们。