Chef — система управления конфигурациями, написанная на Ruby (клиентская часть) и Erlang (серверная часть), с использованием предметно-ориентированного языка для описания конфигураций. Используется для упрощения задач настройки и поддержки множества серверов и может интегрироваться в облачные платформы, такие как Rackspace и Amazon EC2, для автоматизации управления текущими процессами настройки новых серверов.

Chef
Логотип программы Chef
Тип Управление конфигурацией, системное администрирование
Разработчик Chef[d]
Написана на Ruby и Erlang
Операционная система кроссплатформенное программное обеспечение
Первый выпуск 15 января 2009
Последняя версия
Репозиторий github.com/chef/chef-ser…
github.com/chef/chef
Лицензия Apache License 2.0[2]
Сайт chef.io/chef/

Пользователь Chef создаёт определенные «рецепты» с описанием того, как управлять серверными приложениями (например, Apache, MySQL или Hadoop) и их настроек.

«Рецепт» — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы. Chef проверяет, что каждый из ресурсов системы настроен правильно и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.

Chef может работать как в режиме клиент-сервер, так и в режиме автономной конфигурации, называемом «chef-solo». В режиме клиент-сервер клиент посылает на сервер различные свойства хоста, на котором он расположен. На стороне сервера используется Solr для индексирования свойств и предоставления API для запроса информации клиентом. «Рецепты» могут запрашивать эти свойства и использовать полученные данные для настройки хоста.

Обычно используется для управления Linux-узлами, но последние версии поддерживают Windows[3].

Наряду с CFEngine, Bcfg2 и Puppet считается одной из наиболее популярных систем управления конфигурациями для Linux[4][5]. Другими примерами являются Ansible, SaltStack, а также Desired State Configuration для Windows[6].

Примечания править

  1. Release 16.0.0 — 2023.
  2. https://github.com/chef/chef-server/blob/master/LICENSE
  3. "Chef & Puppet", Wired, 2011, Архивировано из оригинала 24 марта 2014, Дата обращения: 28 сентября 2017 {{citation}}: Неизвестный параметр |month= игнорируется (справка).
  4. "Puppet vs Chef battle wages", Script rock.
  5. Ошибка Lua в Модуль:Citation/CS1 на строке 3802: bad argument #2 to '?' (string expected, got nil).
  6. Taylor, Vargo, 2014, What Is Configuration Management?.

Литература править

  • Stephen Nelson-Smith. Test-Driven Infrastructure with Chef. — 2nd Edition. — O'Reilly Media, Inc., 2013. — 308 p. — ISBN 978-1-4493-7220-0.
  • Matthias Marschall. Chef Infrastructure Automation Cookbook. — Packt Publishing, 2013. — 276 p. — ISBN 978-1-84951-922-9.
  • Matthew Helmke; Andrew Hudson; Paul Hudson. Chapter 35. Managing Sets of Servers, Chef // Ubuntu Unleashed 2014 Edition: Covering 13.10 and 14.04. — Ninth Edition. — Sams, 2013. — 900 p. — ISBN 978-0-672-33693-5.
  • Mischa Taylor, Seth Vargo. Learning Chef. — O'Reilly Media, Inc., 2014. — 366 с. — ISBN 978-1-4919-4493-6.

Ссылки править