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

2021-04-03 00:25

阅读:539

标签:就是   com   遇到   echo   2.7.5   ima   roc   script   解答   

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. 多看官网和社区,国内没人能解答。

 

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

标签:就是   com   遇到   echo   2.7.5   ima   roc   script   解答   

原文地址:http://blog.51cto.com/hooden/2131415


评论


亲,登录后才可以留言!