You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure VMSS虚拟机加入VSTS部署组及相关技术问题问询

关于Azure VMSS与VSTS部署组的几个问题解答

1. 能否将VMSS中的虚拟机加入VSTS部署组?

完全可以!你有两种主流实现方式:

  • 自定义脚本扩展:在VMSS的配置中添加自定义脚本扩展,当新实例启动时自动下载并执行VSTS代理的安装和注册脚本,将实例加入指定的部署组。
  • Azure DevOps内置支持:Azure DevOps本身就支持将VMSS作为代理池,但如果是部署组场景,自定义脚本扩展更灵活,能精准控制实例加入的部署组。

2. 用已加入部署组的VM做镜像创建VMSS,代理认证是否正常?

直接用已注册好代理的VM做镜像不推荐,核心问题出在PAT和代理标识上:

  • 每个VSTS代理都有唯一的agentId和注册信息,镜像中的代理配置会带着旧的标识,新实例启动后会和VSTS服务器产生冲突(比如出现重复的代理名称)。
  • PAT是和特定用户/权限绑定的,而且有过期时间,镜像里的PAT一旦过期,新实例的代理就无法正常连接VSTS。

正确的做法是:

  • 镜像中只预装VSTS代理的安装包,但不要执行注册步骤。
  • 在VMSS的启动脚本中动态完成代理注册:
    1. 从Azure Key Vault(推荐,更安全)中获取有效的PAT。
    2. 用VM的实例ID或主机名作为代理的唯一名称(比如agent-vmss-${instanceId})。
    3. 执行注册命令加入部署组,示例命令:
      ./config.sh --unattended --agent "$(hostname)" --url "https://dev.azure.com/your-org" --auth pat --token "$PAT_TOKEN" --pool "your-deployment-group" --work "_work"
      

3. 横向扩展时如何让新VM获取最新构建?

有两种靠谱的方案:

  • 触发部署组重新部署:当VMSS横向扩展后,手动或自动触发Azure DevOps中部署组的部署任务,选择“部署到所有目标”,新加入的实例会自动接收最新的构建版本。你也可以在部署组的设置中开启“自动部署到新实例”(部分场景支持)。
  • 启动脚本中拉取最新构建:在VM启动的自定义脚本里,完成代理注册后,直接从Azure DevOps的构建工件库中拉取最新的构建包,执行本地部署脚本。这种方式能让实例启动后立即拥有最新版本,无需等待部署任务触发。

内容的提问来源于stack exchange,提问作者smoyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:11:28