如果Chef客户端版本太旧,则忽略run_list中的配方

时间:2019-06-26 15:14:26

标签: chef

我正在写一些取决于chef-cookbooks/ohai食谱的ohai插件,该食谱要求厨师版本> = 12.7。

我们的基础架构要求能够从我的插件食谱的节点上添加配方,这些配方可以一直追溯到12.4。配方不需要运行,只需在标准化的run_list中即可。

无论如何,我是否可以仅在元数据.rb中的Chef版本> = 12.7时才需要ohai食谱?或者,如果Chef版本太旧,则应忽略整个食谱及其食谱。

1 个答案:

答案 0 :(得分:-1)

我认为您可以将include_recipemetadata.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