Могу ли я ссылаться на несколько версий кулинарной книги Chef?

Можно ли ссылаться на несколько версий поваренной книги Chef в рецепте, как показано ниже, где рецепт в одной поваренной книге (foo) ссылается на несколько версий рецепта в другой поваренной книге (bar), где переменная версии заполняется перед этим блоком?

begin
    case version
    when ""
        include_recipe "cookbook-bar"
    when "1.0.0"
        include_recipe "[email protected]"
    when "1.0.1"
        include_recipe "[email protected]"
    else
        raise "Invalid Version: " + version
    end
rescue Chef::Exceptions::CookbookNotFound
    raise "The Specified Cookbook Was Not Found: cookbook-foo-bar@" + version
end

В файле metadata.rb я установил следующую зависимость, чтобы, надеюсь, получить версии 1.0.0, 1.0.1 и 1.0.2 из cookbook-bar.

depends          "cookbook-bar", "<= 1.0.2"

Но когда я запускаю его, я все еще получаю ошибку CookbookNotFound для версий 1.0.0 и 1.0.1 из cookbook-bar.


person bdoughan    schedule 08.06.2015    source источник


Ответы (1)


Вы не можете, только одна версия поваренной книги будет загружена на узел, самая высокая из которых соответствует ограничению зависимости.

Если вам нужно несколько версий кулинарной книги в рамках одного прогона, у вас где-то проблема.

person Tensibai    schedule 08.06.2015
comment
Одним из вариантов использования может быть рецепт очистки, когда я хочу выполнить очистку на основе последней запущенной версии поваренной книги, прежде чем продолжить. Является ли единственным вариантом в этом случае, чтобы последняя версия рецепта очистки знала, как очистить все предыдущие версии? - person bdoughan; 08.06.2015
comment
Нет, есть много способов, без реального варианта использования трудно сказать, какой из них лучше подходит. Основной консенсус заключается в том, чтобы избегать такого рода изменений и создавать цель с нуля. - person Tensibai; 08.06.2015