Chef infra 厨师安装一系列预包装的宝石
我正在尝试安装我的食谱所需的一系列gem,但我不希望在我的生产机器上安装开发工具(如gcc、gcc-c++、ruby-devel.see以了解更多上下文),因此我将相关gem文件作为参考资料包含在我的食谱中 我正在使用这个代码Chef infra 厨师安装一系列预包装的宝石,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我正在尝试安装我的食谱所需的一系列gem,但我不希望在我的生产机器上安装开发工具(如gcc、gcc-c++、ruby-devel.see以了解更多上下文),因此我将相关gem文件作为参考资料包含在我的食谱中 我正在使用这个代码 node["chef_gems"].each do |pkg, attrs| gem_file = "#{pkg}-#{attrs["version"]}.gem" dest_gem_file = "#{Chef::Config['file_cache_path'
node["chef_gems"].each do |pkg, attrs|
gem_file = "#{pkg}-#{attrs["version"]}.gem"
dest_gem_file = "#{Chef::Config['file_cache_path']}/#{gem_file}"
cookbook_file "#{dest_gem_file}" do
source "gems/#{gem_file}"
end
if File.exist?("#{dest_gem_file}")
chef_gem pkg do
source "#{dest_gem_file}"
action :install
end
end
end
我遇到的问题
Starting Chef Client, version 11.4.0
resolving cookbooks for run list: ["cis-rhel", "ec2-hostname-rhel", "chef-client", "cassandra"]
Synchronizing Cookbooks:
<REDACTED>
Compiling Cookbooks...
[2013-10-16T18:45:01-04:00] WARN: Cloning resource attributes for user[<REDACTED>] from prior resource (CHEF-3694)
<REDACTED>
[2013-10-16T18:45:01-04:00] WARN: Current user[cassandra]: /var/chef/cache/cookbooks/cassandra/recipes/user.rb:23:in `from_file'
Recipe: cassandra::packages
* chef_gem[cassandra-cql] action install
================================================================================
Error executing action `install` on resource 'chef_gem[cassandra-cql]'
================================================================================
Gem::Exception
--------------
Cannot load gem at [/var/chef/cache/cassandra-cql-1.1.4.gem] in /
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in `block in from_file'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in `each'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in `from_file'
/var/chef/cache/cookbooks/cassandra/recipes/default.rb:23:in `from_file'
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/cassandra/recipes/packages.rb
36: chef_gem pkg do
37: source "#{dest_gem_file}"
38: action :install
39: end
40: # end
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in `block in from_file'
chef_gem("cassandra-cql") do
provider Chef::Provider::Package::Rubygems
action [:install]
retries 0
retry_delay 2
package_name "cassandra-cql"
source "/var/chef/cache/cassandra-cql-1.1.4.gem"
cookbook_name "cassandra"
recipe_name "packages"
end
================================================================================
Recipe Compile Error in /var/chef/cache/cookbooks/cassandra/recipes/default.rb
================================================================================
Gem::Exception
--------------
chef_gem[cassandra-cql] (cassandra::packages line 36) had an error: Gem::Exception: Cannot load gem at [/var/chef/cache/cassandra-cql-1.1.4.gem] in /
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in `block in from_file'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in `each'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in `from_file'
/var/chef/cache/cookbooks/cassandra/recipes/default.rb:23:in `from_file'
Relevant File Content:
----------------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:
29: node["cassandra"]["chef_gems"].each do |pkg, attrs|
30: gem_file = "#{pkg}-#{attrs["version"]}.gem"
31: dest_gem_file = "#{Chef::Config['file_cache_path']}/#{gem_file}"
32: cookbook_file "#{dest_gem_file}" do
33: source "gems/#{gem_file}"
34: end
35: # if File.exist?("#{dest_gem_file}")
36>> chef_gem pkg do
37: source "#{dest_gem_file}"
38: action :install
39: end
40: # end
41: end
42:
43: # Some distributed packages of Cassandra start the service in their
44: # postinstall; keep them all equal and a restart can be done after the configs
45: # are written on the first run. Added difficulty: they also come with init
[2013-10-16T18:45:01-04:00] ERROR: Running exception handlers
[2013-10-16T18:45:02-04:00] FATAL: Saving node information to /var/chef/cache/failed-run-data.json
[2013-10-16T18:45:02-04:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated
[2013-10-16T18:45:02-04:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2013-10-16T18:45:02-04:00] FATAL: Gem::Exception: chef_gem[cassandra-cql] (cassandra::packages line 36) had an error: Gem::Exception: Cannot load gem at [/var/chef/cache/cassandra-cql-1.1.4.gem] in /
启动Chef客户端,版本11.4.0
解析运行列表的烹饪书:[“cis rhel”、“ec2主机名rhel”、“厨师客户端”、“cassandra”]
同步食谱:
编辑食谱。。。
[2013-10-16T18:45:01-04:00]警告:正在从以前的资源(CHEF-3694)中克隆用户[]的资源属性
[2013-10-16T18:45:01-04:00]警告:当前用户[cassandra]:/var/chef/cache/cookbooks/cassandra/recipes/user.rb:23:in“from_file”
配方:卡桑德拉::包装
*chef_gem[cassandra cql]动作安装
================================================================================
在资源“chef_gem[cassandra cql]”上执行操作“install”时出错
================================================================================
Gem::异常
--------------
无法在中的[/var/chef/cache/cassandra-cql-1.1.4.gem]处加载gem/
食谱跟踪:
---------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in'block in from_file'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in'each'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in'from_file'
/var/chef/cache/cookbooks/cassandra/recipes/default.rb:23:in'from_file'
资源声明:
---------------------
#在/var/chef/cache/cookbooks/cassandra/recipes/packages.rb中
36:chef_gem包装店
37:源“#{dest_gem_file}”
38:操作:安装
39:完
40:#完
汇编资源:
------------------
#在/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in‘block in from_file’中声明
厨师长(cassandra cql)做什么
提供者厨师::提供者::包::Rubygems
操作[:安装]
重试0次
重试\u延迟2
包装名称“cassandra cql”
来源“/var/chef/cache/cassandra-cql-1.1.4.gem”
食谱名称“卡桑德拉”
配方名称“包装”
结束
================================================================================
/var/chef/cache/cookbooks/cassandra/recipes/default.rb中的配方编译错误
================================================================================
Gem::异常
--------------
chef_gem[cassandra cql](cassandra::packages第36行)出现错误:gem::Exception:无法在中的[/var/chef/cache/cassandra-cql-1.1.4.gem]处加载gem/
食谱跟踪:
---------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:36:in'block in from_file'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in'each'
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:29:in'from_file'
/var/chef/cache/cookbooks/cassandra/recipes/default.rb:23:in'from_file'
相关文件内容:
----------------------
/var/chef/cache/cookbooks/cassandra/recipes/packages.rb:
29:node[“cassandra”][“chef_gems”]。每个do|pkg,属性|
30:gem_file=“#{pkg}-#{attrs[“version”]}.gem”
31:dest#u gem_file=“#{Chef::Config['file_cache_path']}/#{gem_file}”
32:cookbook_file“#{dest_gem_file}”do
33:来源“gems/#{gem_文件}”
34:完
35:#if File.exist?(“#{dest_gem_File}”)
36>>厨师长(gem pkg do)
37:源“#{dest_gem_file}”
38:操作:安装
39:完
40:#完
41:完
42:
43:#Cassandra的一些分布式软件包在它们的
44:#安装后;保持它们都相等,在配置之后可以重新启动
45:#在第一次运行时写入。增加的困难:它们还附带init
[2013-10-16T18:45:01-04:00]错误:正在运行异常处理程序
[2013-10-16T18:45:02-04:00]致命:将节点信息保存到/var/chef/cache/failed-run-data.json
[2013-10-16T18:45:02-04:00]错误:异常处理程序已完成
Chef客户端失败。0资源已更新
[2013-10-16T18:45:02-04:00]致命:Stacktrace转储到/var/chef/cache/chef-Stacktrace.out
[2013-10-16T18:45:02-04:00]致命:Gem::异常:chef_Gem[cassandra cql](cassandra::packages第36行)出现错误:Gem::异常:无法在中的[/var/chef/cache/cassandra-cql-1.1.4.Gem]加载Gem/
if File.exist?(“#{dest_gem_File}”)
段,因为前面的资源将始终创建文件或引发异常if File.exist?(“#{dest_gem_File}”)
段,因为前面的资源将始终创建文件或引发异常rubygems
包管理器,则可以