我正在使用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,
} ->
我知道这条道路有点过头了。
关于我接下来可以尝试的任何想法?我没有想法。
答案 0 :(得分:0)
在尝试执行捆绑程序之前确保所有gem设置完成非常重要,例如
exec { "bundle install": require => Rbenv::Gem["..."], ... }
否则,可能会在exec之后评估rehash资源。