Я настраиваю виртуальную машину Vagrant с помощью Chef, и это потрясающе, но я не уверен, где мне разместить код для настройки программного обеспечения, установленного по сторонним рецептам шеф-повара.
Например, я устанавливаю NGINX с этот рецепт но мне нужно настроить виртуальный хост по умолчанию для обслуживания контента из /vagrant/public
вместо того /var/www/nginx-default
.
Следует ли мне изменить шаблон стороннего рецепта или создать другой рецепт, который меняет его конфигурацию?
Пара вещей:
С момента написания этого вопроса Opscode разделила структуру своего репозитория на одно репозиторий на поваренную книгу, чтобы сделать проект более понятным.
Обновленную и стабильную поваренную книгу nginx можно найти здесь: http://community.opscode.com/cookbooks/nginx
Что касается обслуживания веб-страниц из альтернативного контейнера:
По соглашению, можно написать более простую кулинарную книгу, в которой используются nginx
поваренная книга, но дает вам возможность «делать то, что вы хотите».
Поскольку установка nginx по умолчанию удаляет файл конфигурации и устанавливает исходный каталог, я бы сделал это в кулинарной книге "оболочки":
depends 'nginx'
в metadata.rb
В моей кулинарной книге attributes/default.rb
установите для следующего атрибута значение false:
default['nginx']['default_site_enabled'] = false
В моем recipes/default.rb
, иметь:
include_recipe 'nginx'
cookbook_file '/etc/nginx/sites-available/mycustomwebapp'
nginx_site 'mycustomwebapp' do
action :enable
end
Создайте файл конфигурации nginx, который выглядит так в files/default/mycustomwebapp
:
server {
root /vagrant/public;
index index.html index.htm;
blah blah...
}
Тогда вам должно быть хорошо!