我有一个Chef 12.5风格的自定义资源,需要在load_current_value块中“需要”它之前安装gem。我尝试使用chef_gem
资源,但是当我在那里使用它时,我在chef_gem上得到NoMethodError。这有效:
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?
答案 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.
我认为这是你正在寻找的“事物”。