xingyu655 发表于 2015-11-26 11:31:45

salt-minion 端执行来自salt-master端的cmd.script命令报错的解决方案

  最近又开始弄salt了,作为集群的管理工具。salt的介绍现在比较多了,不懂的可以谷歌下,推荐看下灿哥的blog,他们也在维护一个群,很活跃的。
  新的节点上直接使用yum安装salt-minion,默认安装的是最新的版本(2014.1.0);而salt-master的版本则是比较旧的0.17.4。
  安装完成后,更改minion端的配置文件,指定master和id,然后发现minion和master可以正常的通信。使用简单的测试命令,如test.ping,cmd.run 'ls /tmp/'等也可以正常使用。这样以为就安装完成了,打算收工做其他事情了。
  后来,由于需要在salt-master端为minion端推送脚本,并在minion端执行,便在master端向新装minion端的节点,推送了脚本,如下所示:
  salt '*' cmd.script salt://scripts/testWriteTime.sh
  观察来自minion端的返回,发现了如下问题:有的minion可以执行成功,有的不可以。
  不可以成功执行的输出信息如下:
  
  
  可以成功执行的输入信息如下:
  
  观察来自minion端的日志可以看到,命令已经成功的被传递到minion端了,只是在解析的时候发生了问题,如下:
  
  通过分析发现,应该是由于salt的版本更新,里面的解析函数发生了变化,导致master端和minion端不能正常解析的。所以最简单的方法是在新装minion端的节点卸载了salt-minion,并下载0.17.4版本的salt重新安装。
  具体操作如下:
  yum remove salt-minion -y
  cd ~/Downloads/
  wget https://codeload.github.com/saltstack/salt/zip/0.17
  unzip 0.17 && cd salt-0.17
  python setup.py bulid && python setup.py intall
  然后更改minion端的配置文件,指定master和id,启动salt-minion即可。
  
页: [1]
查看完整版本: salt-minion 端执行来自salt-master端的cmd.script命令报错的解决方案