Spec-Zone.ru › Chef 16

Chef Supermarket

[править на GitHub]

Chef Supermarket — это сайт для кулинарных книг сообщества. Он предоставляет легко ищущийся репозиторий кулинарных книг и удобный веб-интерфейс. Кулинарные книги, которые являются частью Chef Supermarket, доступны для любого пользователя Chef.

Существует два способа использования Chef Supermarket:

  • Общедоступный Chef Supermarket размещается компанией Chef Software и находится по адресу Chef Supermarket.
  • Частный Chef Supermarket может быть установлен локально за брандмауэром во внутренней сети. Получение кулинарных книг из частного Chef Supermarket часто быстрее, чем из общедоступного, благодаря близости и меньшему количеству кулинарных книг для разрешения. Частный Chef Supermarket также может помочь формализовать внутренние процессы управления выпуском кулинарных книг (например, «кулинарная книга не выпускается, пока она не будет опубликована в частном Chef Supermarket»).

Общедоступный Supermarket

Общедоступный Chef Supermarket, размещённый компанией Chef Software, находится по адресу Chef Supermarket.

Для взаимодействия с общедоступным Chef Supermarket используйте команды knife supermarket.

image

Частный Supermarket

Частный Chef Supermarket устанавливается за брандмауэром во внутренней сети. Помимо изменения места хранения кулинарных книг сообщества, он ведёт себя так же, как и общедоступный Chef Supermarket.

Примечание

Исходный код Chef Supermarket находится по следующим URL-адресам:

  • Сам приложение: https://github.com/chef/supermarket. Сообщайте о проблемах по адресу: https://github.com/chef/supermarket/issues.
  • Кулинарная книга, которая запускается командой supermarket-ctl reconfigure: https://github.com/chef/supermarket/tree/master/omnibus/cookbooks/omnibus-supermarket

Рекомендуемые инструменты

Для использования с частным Chef Supermarket рекомендуются следующие инструменты:

  • Berkshelf
  • Stove

Berkshelf

Berkshelf может включать несколько экземпляров Chef Supermarket для разрешения зависимостей. Разрешение зависимостей кулинарных книг выполняется сверху вниз. Первый источник, определённый в Berksfile, будет просмотрен на предмет кулинарной книги перед вторым источником.

Berksfile сначала ищет кулинарную книгу в частном Chef Supermarket, а если её там нет, то ищет в общедоступном.

source 'https://your_private_supermarket_url'
source 'https://supermarket.chef.io'

Stove

Stove — это утилита для упаковки и выпуска кулинарных книг Chef: https://github.com/chef/stove.

Установка и обновление частного Supermarket

Установите частный Supermarket, используя эти инструкции.

Обновите частный Supermarket, используя эти инструкции.

Настройка Workstation

Настройка config.rb

Файл config.rb на рабочей станции должен быть настроен для работы с частным Chef Supermarket.

Для настройки config.rb для частного Chef Supermarket выполните следующие действия:

  1. Откройте файл config.rb в редакторе.

  2. Добавьте следующее значение:

    knife[:supermarket_site] = 'https://your-private-supermarket'
    
  3. Сохраните и закройте файл.

Создание кулинарной книги

Следующие примеры показывают, как создать простую кулинарную книгу с помощью команды chef, встроенной в Chef Workstation.

Генерация chef-repo

Для генерации chef-repo выполните команду, аналогичную:

chef generate repo my_chef_repo

Доступ к chef-repo с помощью команды cd:

cd my_chef_repo

Генерация кулинарной книги

Примечание

Дублирование имён кулинарных книг в Chef Supermarket запрещено. Поэтому сначала убедитесь, что имя кулинарной книги доступно.

Для создания кулинарной книги my_apache2_cookbook выполните следующую команду:

chef generate cookbook cookbooks/my_apache2_cookbook

Генерация шаблона

Для генерации шаблона выполните команду, аналогичную:

chef generate template cookbooks/my_apache2_cookbook index.html

Это создаст файл с именем index.html.etb в каталоге /cookbooks/my_apache2_cookbook. Откройте файл с помощью текстового редактора, чтобы добавить содержимое. Например, немного HTML:

<html>
  <body>
    <h1>Chef Love!</h1>
  </body>
</html>

Сохраните и закройте файл.

Создание рецепта

Рецепт default.rb создаётся при генерации кулинарной книги. Рецепт обновляется с помощью текстового редактора. Например:

package 'apache2' # Installs the apache2 package

service 'apache2' do
  action [:start, :enable] # Starts and enables the apache2 service on boot
end

template '/var/www/html/index.html' do
  source 'index.html.erb' # Template for /var/www/html/index.html
end

Загрузка кулинарной книги

Для загрузки кулинарной книги в Chef Supermarket выполните следующие действия:

  1. Добавьте настройку для Chef Supermarket в файл config.rb:

    knife[:supermarket_site] = 'https://your-private-supermarket'
    
  2. Устраните ошибки SSL, извлекая и затем проверяя сертификат SSL для Chef Supermarket:

    knife ssl fetch https://your-private-supermarket
    

    и затем:

    knife ssl check https://your-private-supermarket
    
  3. Загрузите кулинарную книгу в Chef Supermarket:

    knife supermarket share mycookbook "Other"
    

Обмен кулинарной книгой

knife supermarket share 'my_cookbook'

Устранение ошибок SSL

Если возвращается ошибка SSL, подобная:

ERROR: Error uploading cookbook my_cookbook to the Opscode Cookbook Site: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. Increase log verbosity (-VV) for more information.

это означает, что сервер Chef версии 12.0 (и выше) по умолчанию применяет SSL при обмене кулинарными книгами. Частный Chef Supermarket по умолчанию использует самоподписанные сертификаты. Используйте команды knife ssl fetch и knife ssl check для устранения этой ошибки.

Сначала извлеките сертификат SSL для частного Chef Supermarket:

knife ssl fetch https://your-private-supermarket

и затем:

knife ssl check https://your-private-supermarket

Повторно поделите кулинарную книгу. На этот раз возвращаемое сообщение должно быть похоже на:

Generating metadata for my_cookbook from (...)
Making tarball my_cookbook.tgz
Upload complete!

supermarket-ctl (утилита)

Установка Chef Supermarket, выполняемая с помощью установщика Chef, включает утилиту командной строки supermarket-ctl. Эта утилита командной строки используется для запуска и остановки отдельных служб, переконфигурации сервера Chef Supermarket, запуска тестов совместимости и просмотра журналов Chef Supermarket.

Дополнительную информацию об утилите командной строки supermarket-ctl см. в разделе supermarket-ctl.

supermarket.rb

Файл supermarket.rb содержит все нестандартные параметры конфигурации, используемые Chef Supermarket. Значения по умолчанию встроены в конфигурацию Chef Supermarket и должны добавляться в файл supermarket.rb только для применения нестандартных значений. Эти параметры конфигурации обрабатываются при выполнении команды supermarket-ctl reconfigure. Файл supermarket.rb — это файл Ruby, что означает, что в файле конфигурации можно использовать условные операторы.

Дополнительную информацию о файле supermarket.rb см. в разделе supermarket.rb.

API Supermarket

API Supermarket используется для предоставления доступа к кулинарным книгам, инструментам и пользователям в Chef Supermarket. Все кулинарные книги, инструменты и пользователи в Supermarket доступны через RESTful API с доступом к supermarket.chef.io/api/v1/ через поддерживаемые конечные точки. В большинстве случаев knife — лучший способ взаимодействия с Supermarket, но в некоторых случаях прямой доступ к API Supermarket необходим.

Дополнительную информацию об API Supermarket см. в разделе API Supermarket.

fieri

Fieri — это необязательная служба, которая проверяет версии кулинарных книг по определённым метрикам для определения качества кулинарной книги.

Если вы используете частный Chef Supermarket, вы можете активировать службу Fieri следующим образом:

  1. Добавьте Fieri в атрибут features.

    ['supermarket_omnibus']['config']['features'] = "tools,github,announcement,fieri"
    
  2. Добавьте следующие атрибуты Fieri:

    ['supermarket_omnibus']['config']['fieri_key'] = "#{random string you generate}"
    ['supermarket_omnibus']['config']['fieri_supermarket_endpoint'] = "#{your_supermarket_url}"
    
  3. Переконфигурируйте свой Supermarket.

    (your-supermarket-node) sudo supermarket-ctl reconfigure
    (your-supermarket-node) sudo supermarket-ctl restart
    

После выполнения этих шагов вы должны увидеть вкладку «Качество» при просмотре кулинарной книги через интерфейс Supermarket. Нажмите на эту вкладку, и вы увидите результаты метрик, запущенных Fieri.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/supermarket/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API