Почему рецепт 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