Chef — свободная система управления конфигурациями, написанная на Ruby и Erlang, с использованием предметно-ориентированного языка для описания конфигураций. Chef используется для упрощения задач настройки и поддержки множества серверов и может интегрироваться в облачные платформы, такие как Rackspace и Amazon EC2, для автоматизации управления текущими и автоматизации процесса настройки новых серверов.
Пользователь Chef создаёт определённые «рецепты» с описанием того, как управлять серверными приложениями (например, Apache HTTP Server, MySQL или Hadoop) и их настроек.
«Рецепт» — это описание состояния ресурсов системы, в котором она должна находится в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы. Chef проверяет, что каждый из ресурсов системы настроен правильно и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.
Chef может работать как в режиме клиент-сервер, так и в режиме автономной конфигурации, называемом «chef-solo». В режиме клиент-сервер клиент посылает на сервер различные свойства хоста, на котором он расположен. На стороне сервера используется Apache Solr для индексирования свойств и предоставления API для запроса информации клиентом. «Рецепты» могут запрашивать эти свойства и использовать полученные данные для настройки хоста.
Обычно Chef используется для управления GNU/Linux, но последние версии поддерживают Microsoft Windows.
Chef является из наиболее известных систем управления конфигурациями в Linux, среди таких как CFEngine, Bcfg2, и Puppet.
Ссылки