Salt-SSH执行test.ping命令报错,主从节点Python版本一致仍异常
解决salt-ssh test.ping时报Python版本不匹配的问题
我之前也踩过这个一模一样的坑!明明控制节点和目标节点的Python版本完全一致,执行salt-ssh '*' test.ping时却弹出这个错误:
_error: Failed to return clean data retcode: 10 stderr: ERROR: Unable to locate appropriate python command stdout: ERROR: salt requires python 2.6 or newer on target hosts, must have same major version as origin host
给你几个亲测有效的排查和解决方向:
指定目标节点的Python可执行路径
salt-ssh可能默认调用了目标节点上的旧版本Python(比如系统里同时装了Python2和Python3),你可以手动指定正确的路径:- 临时在命令行指定:
salt-ssh '*' test.ping --python-shell=/usr/bin/python3 - 永久配置在roster文件里(通常是
/etc/salt/roster),给目标节点添加配置项:target-host: host: 192.168.1.100 user: root python_shell: /usr/bin/python3
- 临时在命令行指定:
验证目标节点的Python环境
手动登录目标节点,执行python -V(或对应版本的python3 -V)确认版本和控制节点完全一致。同时检查环境变量PATH,确保正确的Python路径排在最前面,避免salt-ssh调用到错误的版本。清理salt-ssh缓存
缓存的旧节点信息可能导致误判,执行以下命令清理后重试:salt-ssh '*' saltutil.clear_cache检查Salt版本兼容性
如果控制节点和目标节点的Salt版本差异较大,也可能触发这种误报。尽量保证两边的Salt(包括salt-ssh和相关组件)在同一大版本,比如都用3006.x系列的稳定版。
内容的提问来源于stack exchange,提问作者amine
相关产品推荐
相关产品推荐

