Игнорирование рецептов в run_list, если версия клиента Chef слишком старая - PullRequest
0 голосов
/ 26 июня 2019

Я пишу некоторые плагины ohai, которые зависят от поваренной книги chef-cookbooks/ohai, для которой требуется версия шеф-повара> = 12.7.

Наша инфраструктура требует возможности добавления рецептов из моего плагинаповаренные книги на узлах, которые идут вплоть до 12.4Рецепты не должны запускаться, только для того, чтобы быть в стандартизированном run_list.

Есть ли в любом случае, я могу указать, что поваренная книга ohai должна требоваться, только если версия Chef> = 12.7 в метаданных.Р.Б.?Или что всю поваренную книгу и ее рецепты следует игнорировать, если версия Chef слишком старая.

1 Ответ

0 голосов
/ 27 июня 2019

я думаю, вы можете достичь этого, используя 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 в рецептах.

...