Spec-Zone.ru › Chef 16

О кулинарных книгах

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

Кулинарная книга является основной единицей конфигурации и распространения политики. Кулинарная книга определяет сценарий и содержит все необходимое для поддержки этого сценария:

  • Рецепты, которые определяют используемые ресурсы и порядок их применения
  • Значения атрибутов
  • Распределение файлов
  • Шаблоны
  • Расширения Chef, такие как пользовательские ресурсы и библиотеки

Chef Infra Client использует Ruby в качестве языка для создания кулинарных книг и определения рецептов, с расширенным DSL для определенных ресурсов. Chef Infra Client предоставляет разумный набор ресурсов, достаточный для поддержки многих распространённых сценариев автоматизации инфраструктуры; однако, этот DSL также может быть расширен, когда требуются дополнительные ресурсы и возможности.

Chef Infra Client выполнит рецепт только по запросу. Когда Chef Infra Client выполняет тот же рецепт более одного раза, результат каждый раз будет одинаковым состоянием системы. Когда рецепт выполняется на системе, но ничего не изменилось ни на системе, ни в рецепте, Chef Infra Client ничего не изменит.

Компоненты

Кулинарная книга состоит из рецептов и других необязательных компонентов, таких как файлы или каталоги.

Компонент Имя файла/каталога Описание
Рецепты recipes/

Рецепт является наиболее фундаментальным элементом конфигурации. Рецепт:

  • Написан на Ruby, языке программирования, предназначенном для чтения и предсказуемого поведения
  • В основном представляет собой набор ресурсов, определенных с помощью шаблонов (имена ресурсов, пары атрибут-значение и действия); вспомогательный код добавляется вокруг этого с использованием Ruby, при необходимости
  • Должен определять все необходимое для конфигурации части системы
  • Должен храниться в кулинарной книге
  • Может включаться в другой рецепт
  • Может использовать результаты запроса поиска и читать содержимое пакета данных (включая зашифрованный пакет данных)
  • Может зависеть от одного (или нескольких) рецептов
  • Должен быть добавлен в список выполнения перед использованием Chef Infra Client
  • Всегда выполняется в том же порядке, что и в списке выполнения
Атрибуты attributes/ Атрибут может быть определен в кулинарной книге (или рецепте) и затем использован для переопределения значений по умолчанию на узле. Когда кулинарная книга загружается во время выполнения Chef Infra Client, эти атрибуты сравниваются с атрибутами, уже существующими на узле. Атрибуты, определенные в файлах атрибутов, сначала загружаются в соответствии с порядком кулинарных книг. Для каждой кулинарной книги атрибуты в файле default.rb загружаются первыми, а затем дополнительные файлы атрибутов (если они есть) загружаются в лексикографическом порядке. Когда атрибуты кулинарной книги имеют приоритет над атрибутами по умолчанию, Chef Infra Client применяет эти новые настройки и значения во время выполнения Chef Infra Client на узле.
Файлы files/ Распространение файлов — это особый тип ресурса, который сообщает кулинарной книге, как распространять файлы, включая по узлам, по платформам или по версиям файлов.
Библиотеки libraries/ Библиотека позволяет использовать произвольный Ruby-код в кулинарной книге, либо как способ расширения языка Chef Infra Client, либо для реализации нового класса.
Пользовательские ресурсы resources/ Пользовательский ресурс — это абстрактный подход к определению набора действий и (для каждого действия) набора свойств и параметров валидации.
Шаблоны templates/ Шаблон — это файл, написанный на языке разметки, который использует Ruby-выражения для решения сложных сценариев конфигурации.
Плагины Ohai ohai/ Можно написать пользовательские плагины Ohai для загрузки дополнительной информации о ваших узлах, которая будет использоваться в рецептах. Это требует Chef Infra Server 12.18.14 или более поздней версии.
Метаданные metadata.rb Этот файл содержит информацию о кулинарной книге, такую как имя кулинарной книги, описание и версия.

Кулинарные книги сообщества

Chef поддерживает большой набор кулинарных книг. Кроме того, существуют тысячи кулинарных книг, созданных и поддерживаемых сообществом:

Компоненты Описание
Кулинарные книги, поддерживаемые Chef Chef поддерживает коллекцию кулинарных книг, которые широко используются сообществом.
Кулинарные книги, поддерживаемые сообществом Сообщество создало тысячи кулинарных книг, начиная от узкоспециализированных, используемых только несколькими организациями, до очень популярных, используемых почти всеми.

© 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/cookbooks/

Spec-Zone.ru

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