Шеф-повар — Обзор
Chef — это технология с открытым исходным кодом, разработанная Opscode. Адам Джейкоб, соучредитель Opscode, известен как основатель Chef. Эта технология использует кодирование Ruby для разработки основных строительных блоков, таких как рецепты и поваренные книги. Chef используется для автоматизации инфраструктуры и помогает сократить количество ручных и повторяющихся задач по управлению инфраструктурой.
У Chef есть собственное соглашение для различных строительных блоков, которые необходимы для управления и автоматизации инфраструктуры.
Почему Шеф?
Chef — это технология управления конфигурацией, используемая для автоматизации подготовки инфраструктуры. Он разработан на основе языка Ruby DSL. Он используется для упрощения задачи настройки и управления сервером компании. Он имеет возможность интеграции с любой облачной технологией.
В DevOps мы используем Chef для развертывания и управления серверами и приложениями внутри компании и в облаке.
Особенности шеф-повара
Ниже приведены наиболее характерные особенности Chef —
- Chef использует популярный язык Ruby для создания предметно-ориентированного языка.
- Chef не делает предположений о текущем состоянии узла.Он использует свои механизмы для получения текущего состояния машины.
- Chef идеально подходит для развертывания и управления облачным сервером, хранилищем и программным обеспечением.
Преимущества шеф-повара
Шеф-повар предлагает следующие преимущества —
- Нижний барьер для входа − Поскольку Chef использует для настройки родной язык Ruby, стандартный язык конфигурации, его может легко освоить любой, имеющий некоторый опыт разработки.
- Отличная интеграция с облаком − С помощью утилиты Knife легко интегрируется с любой из облачных технологий. Это лучший инструмент для организации, которая хочет разместить свою инфраструктуру в многооблачной среде.
Недостатки шеф-повара.
Вот некоторые из основных недостатков Chef:
- Одним из огромных недостатков Chef является то, как контролируются поваренные книги. Он нуждается в постоянном присмотре, чтобы люди, которые работают, не испортили чужие кулинарные книги.
- Доступно только соло шеф-повара.
- В текущей ситуации он подходит только для облака AWS.
- Не очень легко научиться, если человек не знаком с Ruby.
- Документации по-прежнему не хватает.
Ключевые строительные блоки шеф-повара
Рецепт
Его можно определить как набор атрибутов, которые используются для управления инфраструктурой. Эти атрибуты, присутствующие в рецепте, используются для изменения существующего состояния или настройки конкретного узла инфраструктуры. Они загружаются во время запуска клиента Chef и сравниваются с существующим атрибутом узла (машины). Затем он переходит в состояние, определенное в ресурсе узла рецепта. Это главная рабочая лошадка кулинарной книги.
Кулинарная книга
Кулинарная книга – это сборник рецептов. Это основные строительные блоки, которые загружаются на сервер Chef. Когда запускается Chef, он гарантирует, что присутствующие в нем рецепты переводят заданную инфраструктуру в желаемое состояние, как указано в рецепте.
Ресурс
Это базовый компонент рецепта, используемого для управления инфраструктурой с различными состояниями.В рецепте может быть несколько ресурсов, что поможет в настройке и управлении инфраструктурой. Например —
- упаковка − Управляет пакетами на узле
- оказание услуг − Управляет услугами на узле
- пользователь − Управляет пользователями на узле
- группа − Управляет группами
- шаблон − Управляет файлами со встроенным шаблоном Ruby.
- файл_поваренной_книги − Переносит файлы из подкаталога files в поваренной книге в расположение на узле
- файл − Управляет содержимым файла на узле
- каталог − Управляет каталогами на узле
- выполнять − Выполняет команду на узле
- хрон − Редактирует существующий файл cron на узле
Атрибут
В основном это настройки. Их можно рассматривать как пару ключ-значение всего, что нужно использовать в поваренной книге. Существует несколько различных типов атрибутов, которые можно применять с разным уровнем приоритета по сравнению с окончательными настройками, с которыми работает узел.
Файл
Это подкаталог в поваренной книге, содержащий любой статический файл, который будет размещен на узлах, использующих поваренные книги. Затем рецепт может быть объявлен как ресурс, который перемещает файлы из этого каталога в конечный узел.
Шаблоны
Они похожи на файлы, но не статичны. Файлы шаблонов заканчиваются расширением .ebr, что означает, что они содержат встроенный Ruby. В основном они используются для подстановки значения атрибута в файлы для создания окончательной версии файла, которая будет размещена на узле.
Метаданные.rb
Он используется для управления метаданными о пакете. Это включает в себя такие детали, как имя и сведения о пакете. Он также включает такие вещи, как информация о зависимостях, которая сообщает, какие книги рецептов должны работать с этой книгой рецептов. Это позволяет серверу Chef правильно построить список выполнения узла и гарантирует, что все части будут переданы правильно.
Структура поваренной книги по умолчанию
C:chefcookbooksnginx>tree Список папок PATH для тома. Серийный номер тома локального диска: BE8B-6427. ─библиотеки ├───провайдеры ├───рецепты ├───ресурсы └───шаблоны └───по умолчанию
Шеф-повар — Связанные технологии
Ниже приведен список технологий, связанных с Chef.
Марионетка
Puppet предоставляет стандартный способ доставки и эксплуатации программного обеспечения, независимо от того, где оно работает. Это автоматизированный механизм администрирования для систем Linux, Unix и Windows, который выполняет административные задачи на основе централизованной спецификации.
Главная особенности кукольного следующие:
- Внедрение новых систем с единой конфигурацией.
- Обновление систем и обновление пакетов безопасности и программного обеспечения.
- Включение новых функций и добавление ловких возможностей.
- Настройка конфигураций для обеспечения доступности источников данных.
- Оптимизация имеющихся ресурсов и минимизация затрат.
- Упрощение ролей и предоставление команде возможности сосредоточиться на основных и продуктивных вопросах.
- Взгляд с высоты птичьего полета на доступную инфраструктуру.
Ансибль
Ansible — это чрезвычайно простая платформа автоматизации ИТ, упрощающая развертывание ваших приложений и систем. Избегайте написания сценариев или пользовательского кода для развертывания и обновления ваших приложений — автоматизируйте на языке, близком к простому английскому, используя SSH, без установки агентов на удаленных системах.
Главная особенности Ansible следующие:
- Простой и легкий в освоении
- Написано на Питоне
- Без агента
- Плейбуки на основе YAML
- Ансибл галактика
стек соли
SaltStack используется для конфигурации, управляемой данными. Это новый подход к управлению инфраструктурой, построенный на динамической коммуникационной шине. Он используется для оркестровки на основе данных, удаленного выполнения для любой инфраструктуры и управления конфигурацией для любого стека приложений.
Ткань
Ткань — это язык программирования на основе Python, разработанный как API Python, который необходимо импортировать в код Python для настройки и управления инфраструктурой.