Azure DevOps Windows自托管Agent运行Pipeline报找不到databricks可执行文件
错误根因
Unable to locate executable file: 'databricks' 报错的核心原因是Windows自托管代理的运行环境里,无法通过系统PATH变量找到Databricks CLI的可执行文件,和流水线YAML语法、Databricks侧权限没有直接关系。
可落地的解决步骤
- 登录运行自托管代理的Windows服务器,先做本地验证:打开PowerShell或者命令提示符,直接执行
databricks -v。如果本地执行都提示找不到命令,说明要么CLI没安装成功,要么安装路径没有加入环境变量。Windows版Databricks CLI默认安装路径是%LOCALAPPDATA%\Programs\Databricks\bin,先手动进入该路径确认databricks.exe存在。 - 配置系统级环境变量:找到
此电脑-属性-高级系统设置-环境变量,在系统变量的Path条目里新增上面的Databricks CLI安装路径,不要只加在当前登录用户的用户变量里——自托管代理默认以NETWORK SERVICE或者自定义服务账号运行,读不到用户级的环境变量配置。 - 重启自托管代理服务:修改完系统环境变量后,已经运行的代理进程不会自动加载新的PATH配置,打开Windows服务管理器,找到名称格式为
Azure Pipelines Agent (代理池名.代理实例名)的对应服务,右键执行重启操作。重启后回到Azure DevOps的代理池页面,刷新对应代理的功能列表,确认能识别到databricks命令。 - 兜底验证方案:如果上述操作后还是报错,可以直接在流水线的脚本里写
databricks.exe的完整绝对路径调用,不要直接写databricks短命令,比如把原命令替换为"C:\Program Files\Databricks\bin\databricks.exe" workspace deploy,先跑通流程再排查路径配置问题。 - 权限校验:如果代理使用自定义服务账号运行,确认该账号对Databricks CLI的安装目录有读取、执行权限,不要把CLI装在只有当前管理员账号能访问的个人加密目录下。
常见踩坑点:很多人在服务器上装CLI时用自己的个人账号登录,安装时默认把路径加在了当前用户的PATH下,代理服务用其他账号运行时自然找不到命令,这是Windows自托管代理环境类问题的最高发原因。
内容的提问来源于stack exchange,提问作者Pallavi
相关产品推荐
相关产品推荐

