簡體   English   中英

亞馬遜OpsWorks定制食譜RVM

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM