标签:就是 com 遇到 echo 2.7.5 ima roc script 解答
saltstack在windows客户端远程执行脚本提示路径不对的问题环境:
salt-master ==2018.3.0
salt-minion ==2018.3.0
python== 2.7.5
centos==7
问题描述:
salt有个远程执行命令的模块cmd.script,在使用该模块时,出现错误:
salt ‘minion-id’ cmd.script salt://test.ps1 shell=powershell
其中salt://为/etc/salt.conf定义的base路径,其下存放了test.ps1的脚本
# vim test.ps1
echo test
返回错误信息:
查看windows客户端日志c:\salt\var\log\salt\minion:
查看目录确实minion已从master下载到window临时目录且随机重命名
经查,系因为2018.3.0版本salt有bug,该bug是把执行的脚本进过转换成python的列表list,然后又重新转换回字符串string类型,期间会加上单引号“’”,但是windows无法识别带单引号的脚本名称路径格式,从而导致问题,具体可见python源代码。
其实从2017.4版本就有,2017.7版本修复,但是因为开了另一个版本分支,因此2018.3.0没有修复该bug,只有2018.3.1才修复了。
https://github.com/saltstack/salt/pull/45716
https://github.com/saltstack/salt/pull/45716
解决办法:
升级salt-master到2018.3.1版本,升级salt-minion到2018.3.1版本与master保持一致。
成功重新执行命令并获取返回结果:
经验:
在选择工具的版本时,还是要多注意官网上的release note 说明,选择较正常和稳定的版本避免后续遇到更多奇葩问题。
在提问或者帮助asker解决问题时,也要注意check版本信息,否则总会有些情况:为什么我明明follow正确解决方法来做就是不行?!
在解决的过程中,不知不觉就能掌握很多东西。
多看官网和社区,国内没人能解答。
saltstack在windows客户端远程执行脚本提示路径不对的问题
标签:就是 com 遇到 echo 2.7.5 ima roc script 解答
原文地址:http://blog.51cto.com/hooden/2131415