Учебники

Шеф-повар — Обзор

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 для настройки и управления инфраструктурой.