Chef 12.5风格的自定义资源:安装load_current_value块所需的gem?

时间:2016-11-04 01:32:21

标签: chef

我有一个Chef 12.5风格的自定义资源,需要在load_current_value块中“需要”它之前安装gem。我尝试使用chef_gem资源,但是当我在那里使用它时,我在chef_gem上得到NoM​​ethodError。这有效:

load_current_value do
  Chef::Resource::ChefGem.new 'inifile' do
    compile_time true
  end
  require 'inifile'
  # ... load_current_value code
end

...但是明确地调用Chef::Resource::ChefGem.new似乎是错误的,或者至少是“不优雅的”。

这使得gem可用于操作,这很方便。但是我想知道是否有更合适的方法在load_current_value块中(或者在load_current_value块之前)安装chef_gem?

1 个答案:

答案 0 :(得分:2)

如果我从厨师12.8回忆正确,可以specify gems in metadata.rb(寻找宝石关键字):

Specifies a gem dependency to be installed via the chef_gem resource after
all cookbooks are synchronized, but before any other cookbook loading is
done. Use this attribute once per gem dependency.

我认为这是你正在寻找的“事物”。