Назад | Перейти на главную страницу

Где мне настроить программное обеспечение, установленное по сторонним рецептам шеф-повара?

Я настраиваю виртуальную машину Vagrant с помощью Chef, и это потрясающе, но я не уверен, где мне разместить код для настройки программного обеспечения, установленного по сторонним рецептам шеф-повара.

Например, я устанавливаю NGINX с этот рецепт но мне нужно настроить виртуальный хост по умолчанию для обслуживания контента из /vagrant/public вместо того /var/www/nginx-default.

Следует ли мне изменить шаблон стороннего рецепта или создать другой рецепт, который меняет его конфигурацию?

Пара вещей:

С момента написания этого вопроса Opscode разделила структуру своего репозитория на одно репозиторий на поваренную книгу, чтобы сделать проект более понятным.

Обновленную и стабильную поваренную книгу nginx можно найти здесь: http://community.opscode.com/cookbooks/nginx

Что касается обслуживания веб-страниц из альтернативного контейнера:

По соглашению, можно написать более простую кулинарную книгу, в которой используются nginx поваренная книга, но дает вам возможность «делать то, что вы хотите».

Поскольку установка nginx по умолчанию удаляет файл конфигурации и устанавливает исходный каталог, я бы сделал это в кулинарной книге "оболочки":

  1. Создать мою кулинарную книгу
  2. Объявить depends 'nginx' в metadata.rb
  3. В моей кулинарной книге attributes/default.rbустановите для следующего атрибута значение false:

    default['nginx']['default_site_enabled'] = false
    
  4. В моем recipes/default.rb, иметь:

    include_recipe 'nginx'
    
    cookbook_file '/etc/nginx/sites-available/mycustomwebapp'
    
    nginx_site 'mycustomwebapp' do
      action :enable
    end
    
  5. Создайте файл конфигурации nginx, который выглядит так в files/default/mycustomwebapp:

    server {
        root /vagrant/public;
        index index.html index.htm;
            blah blah...
    }
    

Тогда вам должно быть хорошо!