Chef - Попытка добавить псевдоним apache2 в файл vhost

Я новичок в Chef, использую среду AWS OpsWorks и развертываю код через Chef 11.10. Я пытаюсь создать две строки alias в файле vhost на экземпляре, на котором работает apache2:

alias /foo /my/dir/name/
alias /bar /another/my/dir/name

У меня есть специальная кулинарная книга в корзине S3, которую OpsWorks успешно извлекает и распространяет на все экземпляры. В этой пользовательской поваренной книге у меня есть рецепт под названием vhosts.rb:

include_recipe "apache2"

web_app "Test1" do
  server_name "Web1.com"
  server_aliases ["www.Web1.com"]
  allow_override "all"
  docroot "/srv/www/web_test/current/sites/"
end

Это прекрасно создает файл vhost, но я не могу понять, как добавить строки псевдонима. Я просмотрел кулинарную книгу OpsCode по умолчанию для apache2 и не могу найти ссылки на общие команды/параметры alias в default.rb, mod_alias, web_app или web_app.conf.erb.

Как я могу добавить эти строки псевдонимов? Я уверен, что это легко, но я тону, пытаясь понять это. Любая помощь будет принята с благодарностью.


person HeavyObjectLifter    schedule 08.07.2014    source источник


Ответы (1)


Поставщик web_app кулинарной книги apache2 не поддерживает добавление директив Alias в сгенерированный файл конфигурации. Самый простой способ выполнить то, что вы собираетесь, — это расширить файл шаблона по адресу templates/default/web_app.conf.erb и добавить блок, подобный следующему:

<% if @aliases -%>
   <% @aliases.each do |alias| -%>
     Alias <%= alias %>
   <% end -%>
<% end -%>

Затем измените свой вызов web_app на:

web_app "Test1" do
  server_name "Web1.com"
  server_aliases ["www.Web1.com"]
  allow_override "all"
  docroot "/srv/www/web_test/current/sites/"
  aliases ["/foo /bar", "/baz /meh"]
end

Определение web_app будет передавать шаблону любые дополнительные параметры, делая их доступными в качестве переменных экземпляра.

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

person Dave S.    schedule 09.07.2014
comment
Это идеально! Благодарю вас! Работал как шарм! - person HeavyObjectLifter; 16.07.2014