具有多个代理的Azure DevOps 2019部署组:如何将运行的部署限制为仅一个代理?

时间:2019-04-01 08:15:32

标签: azure-pipelines azure-devops-deploymentgroups

我正在内部运行Azure DevOps Server 2019,并为每个服务器创建了一个部署组。我有多个(30+)个发行版定义,它们具有相似的阶段(例如,每个发行版定义都具有一个测试阶段,该阶段具有针对测试服务器的部署组作业)。我想为每个服务器(因此为每个部署组)运行多个代理,但是在我看来,同一部署组中的每个代理都承担相同的任务-因此,每个代理一次会运行同一任务。

设置并行部署无济于事,因为代理会尝试同时运行同一部署,这会导致复制任务出现有趣的错误。因此,我已将部署组作业中的“要并行部署的目标”设置为“一次一个目标”。效果很好,但是如果我在同一部署组中有两个代理,则我将部署一个应用程序两次(在一个版本定义中部署)。

我想在一个部署组中有多个代理,以免长时间等待部署,而这些部署势必会在共享环境的30多个应用程序中发生。出于某种原因,部署组的工作方式与构建代理程序池不同吗?还是我在这里错过了真正明显的东西?

有一些解决方法,例如有多个部署组和一个代理,每个部署组都部署到同一服务器/环境。

1 个答案:

答案 0 :(得分:0)

我认为这是设计使然。您可以做的就是将标签分配给部署代理,然后使用标签将发布分配给特定的代理。

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/deployment-groups/?view=azure-devops#create-a-deployment-group