Azure Devops (VSTS) 代理池和部署池之间的区别

Posted

技术标签:

【中文标题】Azure Devops (VSTS) 代理池和部署池之间的区别【英文标题】:Azure Devops (VSTS) Different between Agent Pool and Deployment pool 【发布时间】:2019-06-06 07:48:24 【问题描述】:

我正在为我们的组织制定 Azure Devops,虽然我的工作在一定程度上发挥了作用,但我仍然不理解一些我认为应该理解的概念。

我已经设置了一个部署池(组织设置 > 部署池)并使用脚本在我的开发、测试和生产服务器上安装和配置代理,并且已经能够成功地向它们部署代码

我现在已经能够使用 Azure 托管选项构建我的项目,但我真的很想使用本地托管选项,但是在查看代理池(组织设置 > 代理池)时,我只能看到我的生产服务器,它不会让我使用该构建。我单击了“下载代理”按钮,但它使用相同的 powershell 命令 .config.cmd 命令下载了我已经在部署池阶段设置的代理

据我所知,“代理池”中的代理与“部署池”中的代理没有区别,但我显然在这里遗漏了一些东西,因为我看不到代理池中的代理。

谁能帮助我了解我可能错过了什么,以及为什么下载同一个代理有两种完全不同的方式?

非常感谢!

【问题讨论】:

【参考方案1】:

部署池用于deployment groups 是一种特殊的代理配置,专门用于发布管道。除了常规代理之外,它们还为您的发布管道提供了一些额外的选项。

部署组:

为代理指定安全上下文和运行时目标。在创建部署组时,您可以添加用户并授予他们适当的权限来管理、管理、查看和使用该组。

让您在部署发生时查看每台服务器的实时日志,并下载所有服务器的日志以跟踪您的部署到各个机器。

使您能够使用机器标签将部署限制在特定的目标服务器集

它利用相同的管道代理,但您只是为初始化指定不同的配置。如果您导航到“代理池”页面,那里有一个下载链接,其中包含用于设置代理的配置,当您使用代理阶段而不是部署组阶段时,您可以在构建管道或发布管道中利用该配置。

【讨论】:

感谢马特,这对解释这种情况很有帮助。这是否意味着我需要再次下载代理才能将其设置为服务器上的构建代理?会不会与我现有的部署代理有任何冲突? 您可以在服务器上运行多个代理,因此不应影响您的部署组。您甚至不需要运行他们提供的命令,只要将代理解压缩到文件夹并运行 .\config 并指定值即可。如果你想在一个服务器上有多个代理,无论如何你都必须给它们不同的代理名称,所以它们提供的默认安装命令将不起作用,因为它假定代理名称是服务器名称。 唉,部署池似乎没有使用 REst API 出现...... @DavidV.Corbin 这是一组不同的API 部署组。 你很幸运,还有一个API。

以上是关于Azure Devops (VSTS) 代理池和部署池之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

[转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出

微软改名部又出动啦!微软宣布VSTS改名为Azure DevOps

MS AppCenter 和 Azure DevOps(前 VSTS)之间的主要区别是啥?

如何获取从 Azure Devops / VSTS / TFS 中的“Windows 机器文件复制”任务复制的文件总数?

Azure DevOps vsts-agent-linux 安装出错, Must not run with sudo

azure devops vsts 扩展动态上下文菜单,子菜单未正确加载