gpt4 book ai didi

ruby - Amazon OpsWorks 自定义说明书 RVM

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:26 25 4
gpt4 key购买 nike

我正在尝试使用以下说明书 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。

然后我将 chef_gem 方法替换为 gem_package,但仍然出现相同的错误。但是这次当我检查 gem list rvm 时列出了。

有什么帮助吗?提前致谢。

最佳答案

此处突出显示问题:https://forums.aws.amazon.com/thread.jspa?threadID=118646

OpsWorks 的 Chef 实现受到 Amazon 的相当大的限制。当 chef 在节点上运行时,它实际上是通过 bundle 运行的。由于 rvm cookbook 正在系统中安装一个新的 gem (rvm) 并试图使用它,它失败了,因为 rvm gem already 不是包的一部分(在 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

让我知道这是否适合您!

关于ruby - Amazon OpsWorks 自定义说明书 RVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com