[Azure DevOps] 如何安装并配置 Build Agent
1. 编译服务器#
在 Azure Pipelines 中至少需要一个编译服务器的 Agent 才能编译代码或发布软件。Azure DevOps 本身已经提供了一个 Agent,但出于各种理由(需要特殊的编译打包环境、需要更高的性能、需要更多的控制权等)很多时候需要一些自托管代理。这篇文章将讲解如何在 Windows 系统上安装及配置 Build Agent(主要基于之前几篇文章所构建的环境)。
2. 下载 Agent 安装程序#
首先进入要安装 Build Agent 的 Windows 系统,然后访问 Azure DevOps,在首页的左下角点击 Organization settings,进入 Organization Settings 页面后选中左侧菜单的 Agent pools 菜单项,进入 Agent pools 页面,这时候可以看到已经有两个 Agent Pool,分别是 Default 和 Azure Pipelines。
选中 Default 进入 Agent Pool 的详细页面,然后点击右上角的 Net agent 按钮,出现一个下载并安装 Agent 的教学页面。点击 Download 把 Agent 安装包下载到 downloads 目录。
然后用管理员的方式打开 PowerShell,输入教学页面中 **Create the agent ** 这段的内容:
PS C:\> mkdir agent ; cd agent
PS C:\agent> Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$HOME\Downloads\vsts-agent-win-x64-2.184.2.zip", "$PWD")
这段脚本在 C 盘创建了 agent
目录,并且将刚刚下载的 agent 文件解压到这个目录。
然后输入 C:\agent> .\config.cmd
开始配置 Agent。
3. 创建 personal access token#
在开始配置 Agent 之前,如果你的 Windows 系统与 Azure DevOps 不在同一个域中,你还需要一个 personal access token 来获得访问 Azure DevOps 的权限。这一节将讲解如何获得这个 token。
点击页面右上角的 user settings 按钮,在弹出的菜单中选中 Personal access tokens。
在 Personal Access Tokens 页面点击 New Token 按钮。
在弹出的表单中随便填个名字,然后点击 Show all scopes 按钮:
在 Agent Pools 里选择 Read & manage,然后点击 Create 按钮创建 token:
创建 token 以后记得复制并保存,因为以后将不再显示这个 token:
4. Agent 中的各种选项#
接下来将介绍 config 中的各种选项
4.1 身份验证#
- server URL:Azure DevOps 的地址。
- authentication type:有 PAT 和 negotiate 两个选择,前者需要输入 personal access token,后者需要输入用户名和密码。这里使用之前已经创建好的 personal access token。
4.2 Pool 和 Agent 的名字#
- agent pool:输入需要加入的 agent pool 的名字,直接按回车是默认值,默认值是 Default。
- agent name:输入 agent 的名字,可以直接按回车输入默认名字。
4.3 设置 Agent#
- work folder:Agent 的工作目录,默认是
_work
。 - Perform an unzip for tasks for each step:一个额外的安全选项,直接回车选择默认值。
- run agent as service:是否让 Agent 作为 windows service 运行。这里我选择了 Y,为了以后每次启动 Windows 都直接启动。
- User account to use for the service:输入作为 windows service 运行时的用户名。
- Password for the account:前面输入的用户名对应的密码。
所有流程跑完以后截图如下(因为我在中文 Windows 上截的图,所以参数的名字有出入):
5. 管理 Agent#
回到 Default 这个 Agent Pool 的详细页面,切换到 Agents 页面,可以看到刚刚新添加的 Agent,可以通过将 Enbabled 这个开关关闭这个 Agent,也可以在 More... 菜单中删除这个 Agent。
进入这个 Agent 的详细页面,可以看到 Jobs 和 Capabilities 两个页面,其中 Jobs 是已经安排的工作,不过现在是空的。而 Capabilities 是这个 Agent 的各项能耐,例如安装的 .NET 版本,之类的。
6. 修改 Pipeline#
有了新的 Agent,就需要将 Pipeline 使用的 Pool 改为 Agent 所在的 Pool。在 YAML 中将这段:
pool:
vmImage: 'windows-latest'
作如下修改:
pool: 'Default'
即可把 Pipeline 使用的 Agent Pool 指定为 'Default'。重新 Run 一次这个 Pipeline,之后可以在 Agent 的 Jobs 页面看到运行的 Job 的内容。
有些情况下这个 Pipeline 会保这种错:
This pipeline needs permission to access a resource before this run can continue
应该是权限的问题,需要打开'Default' 的详细页面,选中 Security 标签页,然后打开 Grant access permission to all pipelines(为所有管道授予访问权限),这个操作很无脑,即所有权限都满上。再次运行 Pipeline 就不会报错了。
7. 最后#
这篇文章简单介绍了如果自托管 Windows 代理,更多的内容请参考下面的文档:
Deploy an Azure Pipelines agent on Windows - Azure Pipelines Microsoft Docs
作者:Dino.C
出处:https://www.cnblogs.com/dino623/p/how-to-install-and-configure-build-agent.html
版权:本文采用「CC BY 4.0」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现