Puppet找不到bundler命令

时间:2013-07-05 05:05:01

标签: puppet

我正在使用Vagrant的puppet但是在使用rbenv来设置Ruby安装方面存在一些问题。

Ruby安装正常(我正在使用插件:https://forge.puppetlabs.com/jdowning/rbenv来安装ruby + gems:

rbenv::plugin { 'sstephenson/ruby-build': } ->
rbenv::build { '1.9.3-p392': global => true } ->
rbenv::gem { 'bundler': ruby_version => '1.9.3-p392' } ->

但是在运行之后,Puppet在rbenvs shim文件夹下找不到bundler命令。我可以看到rbenv rehash事件并检查插件的清单显示它应该在运行和gem安装等之后重新运行二进制文件。

如果我ssh到机器,“哪个捆绑器”找到二进制文件的路径。同样,重新运行puppet脚本也能正常运行并安装一切正常。

目前我正在使用以下命令:

exec { "bundle install":
    user => $app_user,
    group => $app_group,
    command => "bundle install",
    path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/', "/home/${app_user}/.rbenv/bin/", "/home/${app_user}/.rbenv/shims/" ],
    cwd => $app_root,
} ->

我知道这条道路有点过头了。

关于我接下来可以尝试的任何想法?我没有想法。

1 个答案:

答案 0 :(得分:0)

在尝试执行捆绑程序之前确保所有gem设置完成非常重要,例如

exec { "bundle install": require => Rbenv::Gem["..."], ... }

否则,可能会在exec之后评估rehash资源。