Почему рецепт apache::default выполняется, когда я использую только рецепт apache::mod_jk?

Это единственная строка в моем рецепте

include_recipe "apache2::mod_jk"

Это вызывает рецепт mod_jk, который можно найти в кулинарной книге opscode apache2, для простоты я напишу здесь:

package 'libapache2-mod-jk' do
  case node['platform_family']
  when 'rhel', 'fedora', 'suse'
    package_name 'mod_jk'
  else
    package_name 'libapache2-mod-jk'
  end
end

apache_module 'jk'

Насколько я понимаю, это будет устанавливать только mod_jk и apache, но apache не будет настроен с помощью chef, потому что я не использую apache2::default... Однако этого не происходит, apache2 устанавливается и настраивается с использованием шаблонов Chef.

Как это работает? Я что-то пропустил?

1 ответ

Решение

Это потому, что определение apache_module 'jk' вызывает apache:: default здесь: https://github.com/opscode-cookbooks/apache2/blob/master/definitions/apache_module.rb#L21

Вы можете сделать свой собственный рецепт, который устанавливает пакет.

Больше информации об определениях поваренной книги: http://docs.opscode.com/essentials_cookbook_definitions.html

Другие вопросы по тегам