VSTS部署组通过PowerShell脚本添加机器失败求助
我来帮你排查这个VSTS部署组脚本卡住的问题,结合我自己踩过的坑,给你几个实用的排查方向:
检查脚本运行的基础环境
首先确认Azure VM上的PowerShell版本是否达标,VSTS部署脚本通常要求PowerShell 5.1及以上,你可以在终端运行$PSVersionTable.PSVersion查看当前版本。另外要确保VM能正常访问VSTS的服务地址(比如https://dev.azure.com或者你的组织专属域名),试试直接在浏览器打开这个地址,排查是否有防火墙、代理或者网络策略拦截了请求。开启详细日志定位卡住的步骤
不要直接双击运行自动生成的脚本,而是把脚本内容保存到本地文件(比如vsts-deploy-agent.ps1),然后用命令powershell.exe -ExecutionPolicy Bypass -File .\vsts-deploy-agent.ps1 -Verbose执行,这样能看到每一步的执行日志,就能精准定位到脚本到底卡在哪个环节了。同时也可以打开Windows事件查看器,看看应用程序日志里有没有相关的错误提示,说不定能找到隐藏的权限或组件缺失问题。验证个人令牌(PAT)的有效性
虽然你有管理员权限,但要确认PAT的权限范围是否正确——必须勾选*Agent Pools (Read & manage)和Deployment Groups (Read & manage)*这两项,而且令牌不能过期。你可以用这个PAT测试一下VSTS API:运行Invoke-RestMethod -Uri "https://dev.azure.com/{你的组织名}/_apis/distributedtask/deploymentgroups?api-version=6.0" -Headers @{Authorization = "Bearer {你的PAT}"},如果能正常返回部署组信息,说明PAT是有效的;如果报错,就需要重新生成权限正确的令牌。尝试手动安装部署代理
如果脚本一直卡住,可以跳过自动脚本,试试手动安装:- 从VSTS部署组的“添加机器”界面下载代理安装包(是zip压缩包,不是脚本);
- 解压到VM的某个目录(比如
C:\vsts-agent); - 运行
config.cmd(Windows系统),按照提示手动输入组织URL、PAT、部署组名称等信息,看看能不能完成配置。
检查VM的资源占用情况
脚本执行时打开任务管理器,观察CPU、内存、磁盘IO的占用率,如果某个资源被占满,也会导致脚本无响应。比如磁盘空间不足、内存耗尽,都可能让脚本卡在某个步骤无法继续。
内容的提问来源于stack exchange,提问作者Farzad J

