在 Azure Devops 中,代理分为两种
- 生成代理(Release Agent/CI Agent)
- 部署代理(Deploy Agent/CD Agent)
代理的作用:言简意赅就是帮你跑管道任务的;你会在某一个服务器安装各种语言的 SDK 吗?比如 Java 的JRE,.NET Framework 或 Python 等等,Java 和 Python 会安装在 Linux 服务器上,而 .NET 或 C++ 的大部分在 Windows 服务器上安装,因此为了让服务器可以分布式,就有了代理; 每一台服务器安装一个代理,Azure Pipeline 根据配置和选择,使用相应服务器的代理,将源代码进行编译;部署代理也是同理,A服务器要发布到 Tomcat 上,B服务器要发布到 IIS 上,C服务器需要部署在 Docker 上,服务器通过代理获取生成好的包,然后进行不同服务器的部署;发布和部署没有代理就无法工作
代理池
默认有一个 default代理池,这里选择再添加一个代理池

下载代理安装包
代理支持的平台
- Windows
- Linux 参考
- MacOS
Release Agent
下载Windows x64 Agent安装包;指定安装目录
PS D:\AzureDevopsServer\install\CIAgents\CIAgent01> .\config.cmd___ ______ _ _ _/ _ \ | ___ (_) | (_)/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/| |agent v2.170.1 |_| (commit bb272bb)>> 连接:输入 服务器 URL > http://localhost:80输入 身份验证类型 (对于 Integrated 按 Enter) >正在连接到服务器...>> 注册代理:输入 代理池 (对于 default 按 Enter) > TestAgentPools输入 代理名称 (对于 WANGPENGLIANG 按 Enter) > TestCIAgent01正在扫描工具功能。正在连接到服务器。已成功添加代理正在测试代理连接。输入 工作文件夹 (对于 _work 按 Enter) >2021-04-10 10:18:42Z: 设置已保存。输入 是否将代理作为服务运行? (Y/N) (对于 N 按 Enter) > y输入 要用于服务的用户帐户 (对于 NT AUTHORITY\NETWORK SERVICE 按 Enter) >将文件权限授予“NT AUTHORITY\NETWORK SERVICE”。已成功安装服务 vstsagent.localhost.TestAgentPools.TestCIAgent01已成功设置服务 vstsagent.localhost.TestAgentPools.TestCIAgent01 的恢复选项服务 vstsagent.localhost.TestAgentPools.TestCIAgent01 已成功设置为延迟自动启动已成功配置服务 vstsagent.localhost.TestAgentPools.TestCIAgent01已成功启动服务 vstsagent.localhost.TestAgentPools.TestCIAgent01PS D:\AzureDevopsServer\install\CIAgents\CIAgent01>

至此, CIAgent 安装完成
注意:如果需要设置代理以服务方式运行,要使用管理员方式运行命令行
部署池

Deploy Agent
CDAgent 安装与 CI Agent 安装没太大区别,只是这里需要将命令修改为.\config.cmd --deploymentpool
--deploymentpool参数指定了这是部署的Agent
PS D:\AzureDevopsServer\install\CDAgents\CDAgent01> .\config.cmd --deploymentpool___ ______ _ _ _/ _ \ | ___ (_) | (_)/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/| |agent v2.170.1 |_| (commit bb272bb)>> 连接:输入 服务器 URL > http://localhost:80输入 身份验证类型 (对于 Integrated 按 Enter) >正在连接到服务器...>> 注册代理:输入 部署池名称 > TestDeployPools输入 代理名称 (对于 WANGPENGLIANG 按 Enter) > TestDeployAgent01正在扫描工具功能。正在连接到服务器。已成功添加代理正在测试代理连接。输入 工作文件夹 (对于 _work 按 Enter) >2021-04-10 10:39:02Z: 设置已保存。输入 是否将代理作为服务运行? (Y/N) (对于 N 按 Enter) > y输入 要用于服务的用户帐户 (对于 NT AUTHORITY\SYSTEM 按 Enter) >将文件权限授予“NT AUTHORITY\SYSTEM”。已成功安装服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01已成功设置服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01 的恢复选项服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01 已成功设置为延迟自动启动已成功配置服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01已成功启动服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01PS D:\AzureDevopsServer\install\CDAgents\CDAgent01>

