saltstack在windows客户端远程执行脚本提示路径不对的问题

前端之家收集整理的这篇文章主要介绍了saltstack在windows客户端远程执行脚本提示路径不对的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

saltstackwindows客户端远程执行脚本提示路径不对的问题

环境:

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版本saltbug,该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-master2018.3.1版本,升级salt-minion2018.3.1版本与master保持一致。

成功重新执行命令并获取返回结果:

经验:

  1. 在选择工具的版本时,还是要多注意官网上的release note 说明,选择较正常和稳定的版本避免后续遇到更多奇葩问题。

  2. 在提问或者帮助asker解决问题时,也要注意check版本信息,否则总会有些情况:为什么我明明follow正确解决方法来做就是不行?!

  3. 解决的过程中,不知不觉就能掌握很多东西。

  4. 多看官网和社区,国内没人能解答。

猜你在找的Windows相关文章