具有多个代理的 Azure DevOps 2019 部署组:如何将 运行 部署限制为一个代理?
Azure DevOps 2019 deployment groups with multiple agents: how to limit running deployment just to one agent?
我运行在本地部署 Azure DevOps Server 2019,并为每台服务器创建了一个部署组。我有多个(30 多个)具有相似阶段的发布定义(例如,每个发布定义都有一个测试阶段,其中部署组作业针对测试服务器)。我想 运行 每个服务器的多个代理,因此每个部署组,但在我看来,同一部署组中的每个代理都选择相同的工作 - 所以相同的工作得到 运行 一次由每个代理人。
设置并行部署没有帮助,因为代理会尝试同时 运行 相同的部署,这会导致复制任务出现有趣的错误。所以我将部署组作业中的 "Targets to deploy to in parallel" 设置为 "One target at time"。这工作正常,但如果我在同一个部署组中有两个代理,我将部署一个应用程序(部署在一个发布定义中)两次。
我希望在一个部署组中有多个代理,以避免在 30 多个应用程序共享一个环境时必然发生的部署长时间等待。由于某种原因,部署组的工作方式是否与构建代理池不同?还是我在这里遗漏了一些非常明显的东西?
对此有变通办法,比如有多个部署组,每个部署组有一个代理,部署到同一个 server/environment。
我认为这是设计使然。您可以做的是将标签分配给部署代理,并使用标签将发布分配给特定代理。
我运行在本地部署 Azure DevOps Server 2019,并为每台服务器创建了一个部署组。我有多个(30 多个)具有相似阶段的发布定义(例如,每个发布定义都有一个测试阶段,其中部署组作业针对测试服务器)。我想 运行 每个服务器的多个代理,因此每个部署组,但在我看来,同一部署组中的每个代理都选择相同的工作 - 所以相同的工作得到 运行 一次由每个代理人。
设置并行部署没有帮助,因为代理会尝试同时 运行 相同的部署,这会导致复制任务出现有趣的错误。所以我将部署组作业中的 "Targets to deploy to in parallel" 设置为 "One target at time"。这工作正常,但如果我在同一个部署组中有两个代理,我将部署一个应用程序(部署在一个发布定义中)两次。
我希望在一个部署组中有多个代理,以避免在 30 多个应用程序共享一个环境时必然发生的部署长时间等待。由于某种原因,部署组的工作方式是否与构建代理池不同?还是我在这里遗漏了一些非常明显的东西?
对此有变通办法,比如有多个部署组,每个部署组有一个代理,部署到同一个 server/environment。
我认为这是设计使然。您可以做的是将标签分配给部署代理,并使用标签将发布分配给特定代理。