我正在写一些取决于chef-cookbooks/ohai
食谱的ohai插件,该食谱要求厨师版本> = 12.7。
我们的基础架构要求能够从我的插件食谱的节点上添加配方,这些配方可以一直追溯到12.4。配方不需要运行,只需在标准化的run_list中即可。
无论如何,我是否可以仅在元数据.rb中的Chef版本> = 12.7时才需要ohai
食谱?或者,如果Chef版本太旧,则应忽略整个食谱及其食谱。
答案 0 :(得分:-1)
我认为您可以将include_recipe
与metadata.rb
结合使用
# recipes/default.rb
include_recipe 'foo' if Gem::Version.new(Gem.loaded_specs['chef'].version.to_s) >= Gem::Version.new('12.4')
# metadata.rb
depends 'foo' if Gem::Version.new(Gem.loaded_specs['chef'].version.to_s) >= Gem::Version.new('12.4')
我从没有尝试过,但是感觉它值得检查。
我还记得过去,我可以在食谱中使用Chef::VERSION
。