Рецепт шеф-повара не выполняется при первом схождении

У меня базовая поваренная книга и один из рецептов не сходится с первого раза.

Поваренная книга шеф-повара: https://github.com/linaksa/linaksa_infra

Когда я запускаю kitchen test, рецепт linaksa_infra::hosts вообще не сходится. Также, когда я запускаю kitchen setup, он не сходится, но если я запускаю kitchen converge после этого, он сходится. Я не уверен, что я делаю неправильно?

Вот результат kitchen test kitchen setup и kitchen converge: https://gist.github.com/linaksa/76607bbfd15e471dfa67

Я использую Chef DK 0.10.0. Любая помощь будет высоко оценен.


person Community    schedule 08.01.2016    source источник


Ответы (1)


Не волнуйтесь, рецепт выполняется в обоих случаях.

Проблема в том, что рецепт печатается на экране только если внутри него хотя бы содержится ресурс.

Глядя на код рецепта:

nodes = search(:node, 'ipaddress:*')
nodes.each do |n|
  hostsfile_entry n['ipaddress'] do
    # [...]
  end
end

Причина в том, что в первый раз поиск не возвращает узлов (мы используем кухню). Таким образом, при первом запуске этот рецепт не создаст никаких ресурсов. Поэтому рецепт не будет отображаться на экране как выполненный.

Во второй раз, если вы используете chef_zero provisioner, поиск вернет локальный компьютер, потому что он был сохранен в конце предыдущего запуска шеф-повара.

Вы можете попробовать запустить кухню с помощью -l debug, чтобы убедиться, что происходит.

person zuazo    schedule 08.01.2016