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