我如何告诉 mcollective 服务器使用不同的 ruby 路径,或者以其他方式控制 ruby 环境?
我在 Centos 6.5 上运行,并已在服务器和客户端上安装了 ruby193 集合。我正在尝试使用 puppetlabs 'shell' 代理(https://github.com/puppetlabs/mcollective-shell-agent),需要 Ruby 1.9。
当我尝试如下简单的“ls”命令时:
mco shell run ls
我得到的是:
* [ ================> ] 1/1
The shell application failed to run: undefined method `sort_by!' for #<Array:blahblahblah>
在我看来,这似乎 mcollective 默认使用系统安装的 Ruby 1.8(位于)/usr/bin/ruby
,而不是使用位于 /opt/rh/ruby193 下某处的 PATH ruby。
当我安装 ruby193 集合时,它会将一大堆文件放在 /opt/rh/ruby193 中,并要求提供脚本进行设置。我已将脚本放入/etc/profile.d
,但我猜 mcollective 没有使用它?
任何能给我指点的想法/回答过的 SF 问题都会非常有帮助!或者一个可以工作的 mcollective 的“shell”代理,也可以 :)。我只是想在特定(但动态)的一组盒子上运行 shell 命令!
答案1
最后,这比它本身的麻烦还要多——我决定安装右心室作为多用户安装,并让它为我处理所有相关路径/gemset。我不得不重新安装一些 gem 才能让 Puppet 再次工作,但最终这比与 SCL 斗争的工作量要少。