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代理池,这里选择再添加一个代理池

image.png

下载代理安装包
image.png

代理支持的平台

  • Windows
  • Linux 参考
  • MacOS

    Release Agent

    下载 Windows x64 Agent安装包;指定安装目录
    image.png
  1. PS D:\AzureDevopsServer\install\CIAgents\CIAgent01> .\config.cmd
  2. ___ ______ _ _ _
  3. / _ \ | ___ (_) | (_)
  4. / /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
  5. | _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
  6. | | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
  7. \_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
  8. | |
  9. agent v2.170.1 |_| (commit bb272bb)
  10. >> 连接:
  11. 输入 服务器 URL > http://localhost:80
  12. 输入 身份验证类型 (对于 Integrated 按 Enter) >
  13. 正在连接到服务器...
  14. >> 注册代理:
  15. 输入 代理池 (对于 default 按 Enter) > TestAgentPools
  16. 输入 代理名称 (对于 WANGPENGLIANG 按 Enter) > TestCIAgent01
  17. 正在扫描工具功能。
  18. 正在连接到服务器。
  19. 已成功添加代理
  20. 正在测试代理连接。
  21. 输入 工作文件夹 (对于 _work 按 Enter) >
  22. 2021-04-10 10:18:42Z: 设置已保存。
  23. 输入 是否将代理作为服务运行? (Y/N) (对于 N 按 Enter) > y
  24. 输入 要用于服务的用户帐户 (对于 NT AUTHORITY\NETWORK SERVICE 按 Enter) >
  25. 将文件权限授予“NT AUTHORITY\NETWORK SERVICE”。
  26. 已成功安装服务 vstsagent.localhost.TestAgentPools.TestCIAgent01
  27. 已成功设置服务 vstsagent.localhost.TestAgentPools.TestCIAgent01 的恢复选项
  28. 服务 vstsagent.localhost.TestAgentPools.TestCIAgent01 已成功设置为延迟自动启动
  29. 已成功配置服务 vstsagent.localhost.TestAgentPools.TestCIAgent01
  30. 已成功启动服务 vstsagent.localhost.TestAgentPools.TestCIAgent01
  31. PS D:\AzureDevopsServer\install\CIAgents\CIAgent01>

image.png

至此, CIAgent 安装完成

注意:如果需要设置代理以服务方式运行,要使用管理员方式运行命令行

部署池

image.png

新建部署池
image.png

Deploy Agent

CDAgent 安装与 CI Agent 安装没太大区别,只是这里需要将命令修改为.\config.cmd --deploymentpool

--deploymentpool参数指定了这是部署的Agent

  1. PS D:\AzureDevopsServer\install\CDAgents\CDAgent01> .\config.cmd --deploymentpool
  2. ___ ______ _ _ _
  3. / _ \ | ___ (_) | (_)
  4. / /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
  5. | _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
  6. | | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
  7. \_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
  8. | |
  9. agent v2.170.1 |_| (commit bb272bb)
  10. >> 连接:
  11. 输入 服务器 URL > http://localhost:80
  12. 输入 身份验证类型 (对于 Integrated 按 Enter) >
  13. 正在连接到服务器...
  14. >> 注册代理:
  15. 输入 部署池名称 > TestDeployPools
  16. 输入 代理名称 (对于 WANGPENGLIANG 按 Enter) > TestDeployAgent01
  17. 正在扫描工具功能。
  18. 正在连接到服务器。
  19. 已成功添加代理
  20. 正在测试代理连接。
  21. 输入 工作文件夹 (对于 _work 按 Enter) >
  22. 2021-04-10 10:39:02Z: 设置已保存。
  23. 输入 是否将代理作为服务运行? (Y/N) (对于 N 按 Enter) > y
  24. 输入 要用于服务的用户帐户 (对于 NT AUTHORITY\SYSTEM 按 Enter) >
  25. 将文件权限授予“NT AUTHORITY\SYSTEM”。
  26. 已成功安装服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01
  27. 已成功设置服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01 的恢复选项
  28. 服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01 已成功设置为延迟自动启动
  29. 已成功配置服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01
  30. 已成功启动服务 vstsagent.localhost.TestDeployPools.TestDeployAgent01
  31. PS D:\AzureDevopsServer\install\CDAgents\CDAgent01>

image.png