ruby – 亚马逊OpsWorks定制食谱RVM
我正在尝试使用以下食谱
https://github.com/fnichol/chef-rvm在Amazon OpsWorks上安装RVM.我希望rvm在用户tomcat6下运行,所以我将配方rvm :: user包含在正确的属性中.
我得到的错误是:
提出异常的代码是: 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 如果这对您有用,请告诉我! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |