在服务器上安装多个 Azure DevOps 环境代理

Install multiple Azure DevOps environment agents on server

我们有一个开发服务器托管来自多个 Azure DevOps 项目的 Web 服务。为了使用 yaml 部署管道,我们从部署池迁移到 environments/resources。不同于部署池 . You can upvote here 来改变它。

我们解决这个问题的方法如下。

  1. 为每个项目创建一个环境。
  2. 对于每个环境,将开发服务器添加为资源。
  3. 在服务器上为每个项目安装一个环境代理。

不幸的是,如果服务器上已经安装了环境代理,这会造成命名冲突。

The service already exists: vstsagent.MyDevOpsAccount..MyServer, it will be replaced
Error: Operation CreateService failed with return code 1072

TLDR:在 powershell 安装脚本中,将 --agent $env:COMPUTERNAME 更改为 --agent "$env:COMPUTERNAME-MyProject"

原因好像是代理的windows服务名是determined as follows.

serviceName = StringUtil.Format(serviceNamePattern, accountName, settings.PoolName, settings.AgentName);

它使用 Azure DevOps 组织名称、部署池名称和代理名称。由于组织名称是固定的,而环境代理的部署池名称不可用,因此代理名称似乎是唯一的机会。