[英]Amazon OpsWorks custom cookbook RVM
我正在嘗試使用以下食譜https://github.com/fnichol/chef-rvm在Amazon OpsWorks上安裝RVM。 我希望rvm在用戶tomcat6下運行,所以我將配方rvm :: user包含在正確的屬性中。
我得到的錯誤是:
2013年3月6日星期三20:05:05 +0000錯誤:運行異常處理程序2013年3月6日星期三20:05:05 +0000錯誤:異常處理程序完成2013年3月6日星期三20:05:05 +0000調試:重新引發異常:LoadError - 沒有要加載的文件 - 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食譜正在安裝新的寶石(RVM)進入系統,並試圖利用它,因為它的RVM創業板是不是已經捆(在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
如果這對您有用,請告訴我!
你確定你使用過最新的rvm食譜嗎? 查看給出錯誤的recipes / default.rb - 此文件的內容與您在說明中發布的內容不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.