加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 亚马逊OpsWorks定制食谱RVM

发布时间:2020-12-17 02:34:00 所属栏目:百科 来源:网络整理
导读:我正在尝试使用以下食谱 https://github.com/fnichol/chef-rvm在Amazon OpsWorks上安装RVM.我希望rvm在用户tomcat6下运行,所以我将配方rvm :: user包含在正确的属性中. 我得到的错误是: Wed,06 Mar 2013 20:05:05 +0000 ERROR: Running exception handlers
我正在尝试使用以下食谱 https://github.com/fnichol/chef-rvm在Amazon OpsWorks上安装RVM.我希望rvm在用户tomcat6下运行,所以我将配方rvm :: user包含在正确的属性中.

我得到的错误是:

Wed,06 Mar 2013 20:05:05 +0000 ERROR: Running exception handlers
Wed,06 Mar 2013 20:05:05 +0000 ERROR: Exception handlers complete
Wed,06 Mar 2013 20:05:05 +0000 DEBUG: Re-raising exception: LoadError – no such file to load — rvm
/opt/aws/opsworks/current/site-cookbooks/rvm/recipes/default.rb:29:in require'
/opt/aws/opsworks/current/site-cookbooks/rvm/recipes/default.rb:29:in
from_file’

提出异常的代码是:

chef_gem 'rvm' do
action :install
version '>= 1.11.3.6'
end

ruby_block "require rvm" do
    block do
        require 'rvm'
        create_rvm_shell_chef_wrapper
        create_rvm_chef_user_environment
     end
     action :create
end

收到错误后,我使用ssh登录了实例,并检查是否安装了rvm gem.我看不到在* LOCAL GEMS *下列出的rvm.

然后我用gem_package替换了方法chef_gem,但仍然遇到了同样的错误.但是这次我检查了宝石列表rvm被列出了.

有帮助吗?提前致谢.

解决方法

这里突出显示的问题是: https://forums.aws.amazon.com/thread.jspa?threadID=118646

OpsWorks的主厨实施受亚马逊的限制.当chef在节点上运行时,它实际上是通过bundle运行的.由于rvm cookbook正在将新的gem(rvm)安装到系统中并且正在尝试使用它,因此它失败了,因为rvm gem还不是bundle的一部分(在Gemfile中列出).

在撰写本文时,目前的解决方法是opsworks已经实现了一种方法来支持自定义gem的使用.

我已经能够更新你提到的行:

if defined?(OpsWorks) && defined?(OpsWorks::InternalGems)
  OpsWorks::InternalGems.internal_gem_package('rvm',:version => node['rvm']['chef_internal_rvm_gem_version'])
else
  chef_gem 'rvm' do
    action :install
    version '>= 1.11.3.6'
  end
end

如果这对您有用,请告诉我!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读