Chef — это технология с открытым исходным кодом, разработанная Opscode. Адам Джейкоб, соучредитель Opscode, известен как основатель Chef. Эта технология использует кодирование Ruby для разработки основных строительных блоков, таких как рецепты и кулинарные книги. Chef используется для автоматизации инфраструктуры и помогает сократить количество ручных и повторяющихся задач для управления инфраструктурой.
У Chef есть своя конвенция для разных строительных блоков, которые необходимы для управления и автоматизации инфраструктуры.
Почему повар?
Chef — это технология управления конфигурацией, используемая для автоматизации предоставления инфраструктуры. Он разработан на основе языка Ruby DSL. Он используется для упрощения задачи настройки и управления сервером компании. Он имеет возможность интегрироваться с любой облачной технологией.
В DevOps мы используем Chef для развертывания и управления серверами и приложениями внутри компании и в облаке.
Особенности шеф-повара
Ниже приведены наиболее характерные черты шеф-повара.
-
Chef использует популярный язык Ruby для создания предметно-ориентированного языка.
-
Шеф-повар не делает предположений о текущем состоянии узла. Он использует свои механизмы для получения текущего состояния машины.
-
Chef идеально подходит для развертывания и управления облачным сервером, хранилищем и программным обеспечением.
Chef использует популярный язык Ruby для создания предметно-ориентированного языка.
Шеф-повар не делает предположений о текущем состоянии узла. Он использует свои механизмы для получения текущего состояния машины.
Chef идеально подходит для развертывания и управления облачным сервером, хранилищем и программным обеспечением.
Преимущества шеф-повара
Шеф-повар предлагает следующие преимущества —
-
Нижний барьер для входа — поскольку Chef использует для настройки собственный язык Ruby, стандартный язык конфигурации, его может легко выбрать любой, имеющий опыт разработки.
-
Отличная интеграция с облаком. С помощью утилиты ножа ее можно легко интегрировать с любой облачной технологией. Это лучший инструмент для организации, которая хочет распределить свою инфраструктуру в мультиоблачной среде.
Нижний барьер для входа — поскольку Chef использует для настройки собственный язык Ruby, стандартный язык конфигурации, его может легко выбрать любой, имеющий опыт разработки.
Отличная интеграция с облаком. С помощью утилиты ножа ее можно легко интегрировать с любой облачной технологией. Это лучший инструмент для организации, которая хочет распределить свою инфраструктуру в мультиоблачной среде.
Недостатки шеф-повара
Некоторые из основных недостатков шеф-повара заключаются в следующем —
-
Одним из огромных недостатков шеф-повара является то, как поваренные книги контролируются. Требуется постоянное детство, чтобы работающие люди не вмешивались в другие кулинарные книги.
-
Доступен только Chef Solo.
-
В нынешней ситуации он подходит только для облака AWS.
-
Это не очень легко узнать, если человек не знаком с Руби.
-
Документация по-прежнему отсутствует.
Одним из огромных недостатков шеф-повара является то, как поваренные книги контролируются. Требуется постоянное детство, чтобы работающие люди не вмешивались в другие кулинарные книги.
Доступен только Chef Solo.
В нынешней ситуации он подходит только для облака AWS.
Это не очень легко узнать, если человек не знаком с Руби.
Документация по-прежнему отсутствует.
Ключевые строительные блоки от шеф-повара
Рецепт
Его можно определить как набор атрибутов, которые используются для управления инфраструктурой. Эти атрибуты, которые присутствуют в рецепте, используются для изменения существующего состояния или установки определенного узла инфраструктуры. Они загружаются во время работы клиента Chef и сравниваются с существующим атрибутом узла (машины). Затем он получает статус, определенный в ресурсе узла рецепта. Это главная рабочая лошадка поваренной книги.
Поваренная книга
Кулинарная книга представляет собой сборник рецептов. Они являются основными строительными блоками, которые загружаются на сервер Chef. Когда выполняется шеф-повар, он гарантирует, что рецепты, присутствующие в нем, переводят данную инфраструктуру в желаемое состояние, как указано в рецепте.
Ресурс
Это основной компонент рецепта, используемый для управления инфраструктурой с различными типами состояний. В рецепте может быть несколько ресурсов, которые помогут в настройке и управлении инфраструктурой. Например —
-
package — управляет пакетами на узле
-
сервис — управляет сервисами на узле
-
user — управляет пользователями на узле
-
группа — управляет группами
-
template — управляет файлами со встроенным шаблоном Ruby
-
cookbook_file — переносит файлы из подкаталога files в cookbook в местоположение на узле
-
file — управляет содержимым файла на узле
-
каталог — управляет каталогами на узле
-
execute — выполняет команду на узле
-
cron — редактирует существующий файл cron на узле
package — управляет пакетами на узле
сервис — управляет сервисами на узле
user — управляет пользователями на узле
группа — управляет группами
template — управляет файлами со встроенным шаблоном Ruby
cookbook_file — переносит файлы из подкаталога files в cookbook в местоположение на узле
file — управляет содержимым файла на узле
каталог — управляет каталогами на узле
execute — выполняет команду на узле
cron — редактирует существующий файл cron на узле
атрибут
Они в основном настройки. Их можно рассматривать как пару «ключ-значение» всего, что вы хотите использовать в кулинарной книге. Существует несколько различных типов атрибутов, которые могут быть применены, с другим уровнем приоритета над окончательными настройками, под которыми работает узел.
файл
Это подкаталог в кулинарной книге, который содержит любой статический файл, который будет размещен на узлах, использующих кулинарные книги. Затем рецепт может быть объявлен как ресурс, который перемещает файлы из этого каталога в конечный узел.
Шаблоны
Они похожи на файлы, но они не являются статичными. Файлы шаблонов заканчиваются расширением .ebr, что означает, что они содержат встроенный Ruby. Они в основном используются для подстановки значения атрибута в файлы для создания окончательной версии файла, которая будет размещена на узле.
Metadata.rb
Он используется для управления метаданными о пакете. Это включает в себя такие детали, как имя и детали пакета. Он также включает в себя такие вещи, как информация о зависимостях, которая указывает, какие поваренные книги нужна этой поваренной книге. Это позволяет серверу Chef правильно построить список выполнения узла и гарантирует, что все части передаются правильно.
Структура поваренной книги по умолчанию
C:\chef\cookbooks\nginx>tree Folder PATH listing for volume Local Disk Volume serial number is BE8B-6427 C: ├───attributes ├───definitions ├───files │ └───default ├───libraries ├───providers ├───recipes ├───resources └───templates └───default
Шеф-повар — Связанные технологии
Ниже приведен список технологий, связанных с шеф-поваром.
Марионетка
Puppet предоставляет стандартный способ доставки и работы с программным обеспечением, где бы он ни работал. Это автоматизированный механизм администрирования для систем Linux, Unix и Windows, который выполняет административные задачи на основе централизованной спецификации.
Основные черты Puppet следующие:
- Внедрение новых систем с единой конфигурацией.
- Обновление систем и обновление пакетов безопасности и программного обеспечения.
- Включение новых функций и добавление ловких возможностей.
- Настройка конфигураций для обеспечения доступности источников данных.
- Оптимизация доступных ресурсов и минимизация затрат.
- Упрощение ролей и предоставление возможности команде сосредоточиться на основных и продуктивных проблемах.
- Получение с высоты птичьего полета доступной инфраструктуры.
анзибль
Ansible — это радикально простая платформа для автоматизации ИТ, которая упрощает развертывание ваших приложений и систем. Избегайте написания сценариев или пользовательского кода для развертывания и обновления ваших приложений — автоматизируйте на языке, который приближается к простому английскому, используя SSH, без агентов для установки на удаленных системах.
Основные характеристики Ansible следующие:
- Простой и легкий в освоении
- Написано на Python
- Безагентное
- Основанные на YAML Playbooks
- Галактика
SaltStack
SaltStack используется для конфигурации, управляемой данными. Это новый подход к управлению инфраструктурой, основанный на динамической коммуникационной шине. Он используется для управляемой данными оркестровки, удаленного выполнения для любой инфраструктуры и управления конфигурацией для любого стека приложений.
ткань
Fabric — это язык программирования на основе Python, разработанный как API-интерфейс Python, который необходимо импортировать в код Python для настройки и управления инфраструктурой.