【发布时间】:2014-04-13 09:02:51
【问题描述】:
我想像这样通过主厨的execute 资源运行一个 ruby 脚本。
execute "my_prog deamon" do
command %Q{bash -c 'export PATH="/usr/local/rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd /opt/my_prog; ruby /opt/my_prog/my_prog_deamon.rb start'}
end
我收到这样的错误消息。
---- Begin output of bash -c 'export PATH="/usr/local/rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd /opt/my_prog; ruby /opt/my_prog/my_prog_deamon.rb start' ----
STDOUT:
STDERR: /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- daemons (LoadError)
from /opt/chef/embedded/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /opt/my_prog/my_prog_deamon.rb:2:in `<main>'
---- End output of bash -c 'export PATH="/usr/local/rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd /opt/my_prog; ruby /opt/my_prog/my_prog_deamon.rb start' ----
看起来错误是因为调用了来自chef 的ruby 而不是来自rbenv 的ruby。
我在配方中将ruby 重写为/usr/local/rbenv/shims/ruby,但我得到了同样的错误。
如何使用 chef 运行 ruby 脚本? rbenv 安装在系统范围内。
【问题讨论】:
标签: ruby chef-infra rbenv