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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:saltvarlogsaltminion

技术分享图片

查看目录确实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客户端远程执行脚本提示路径不对的问题的主要内容,如果未能解决你的问题,请参考以下文章

2.8-saltstack远程执行shell脚本

安全风险通告SaltStack漏洞搭配可远程命令执行,SaltStack多个高危漏洞安全风险通告

通告更新SaltStack远程命令执行漏洞安全风险通告第二次更新

SaltStack 远程执行

SaltStack实战之远程执行-Targeting

SaltStack