Chef Solo — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
(Примеры Использования=)
Строка 65: Строка 65:
 
или следующем образом в  Ruby DSL
 
или следующем образом в  Ruby DSL
  
==Примеры Использования===
+
===Примеры Использования===

Версия 00:43, 14 мая 2016

Chef
Chef IO Regular.png
Разработчики: Chef
Постоянный выпуск: 7 July 2015 года; 4 years ago (2015-07-07)
Написана на: Ruby и Erlang
Операционная система: кроссплатформенное программное обеспечение
Тип ПО: Управление конфигурацией, системное администрирование
Лицензия: Apache License 2.0
Веб-сайт https://www.chef.io/chef/


Chef — система управления конфигурациями серверов. Chef имеет клиент-серверную архитектуру. На Chef-сервере хранятся сведения о подключенных Chef-клиентах и наборы «рецептов» для их «приготовления» (то есть для приведения их в требуемое состояние).

Chef Solo — это open-source версия Chef-клиента, которая позволяет использовать рецепты без Chef-сервера (рецепты должны быть физически расположены на этой же машине). Chef Solo бесплатен, но имеет ряд ограничений по сравнению с клиент-серверным Chef'ом. Например, нет возможности использовать в рецептах поиск серверов по условиям.

Chef Solo также не поддерживает:

  • Хранилище данных в нодах
  • Индексы для поиска
  • Централизованное хранение рецептов
  • Централизованное API, которое объединяет компоненты инфраструктуры
  • Авторизация и Аутентификация

Рецепты

Chef Solo поддерживает 2 места откуда могут быть запущены рецепты:

  • Локальная директория
  • Ссылка (URL) на tar.gz архив

Наиболее распространен вариант с использованием архивов. $ tar zcvf chef-solo.tar.gz ./cookbooks

Если используется несколько директорий рецептов, то в архиве должна быть реализована следующая структура данных:

Атрибуты

По скольку Chef Solo не взаимодействует с Chef-сервером, специфичные для каждой ноды атрибуты должны храниться в JSON файле непосредственно на сервере, в удалённом хранилище ( таком как Amazon Simple Storage Service (S3)) или на веб-сервере в локальной сети.

JSON файл также должен указывать рецепты входящие в run-list:

Data Bags

Data Bag определяется JSON файлом. По умолчанию Chef Solo будет искать все Data Bags в директории /var/chef/data_bags, но эту локацию можно изменить в файле настроек solo.rb.

Создание Data Bag

Роли

Роль также определяется с использованием JSON или Ruby DSL. По умолчанию Chef Solo будет искать роли в /var/chef/roles, но эту локацию можно изменить в файле настроек solo.rb.

Настройка роли

Рабочее окружение

Роль также определяется с использованием JSON или Ruby DSL. По умолчанию Chef Solo будет искать роли в /var/chef/environments, но эту локацию можно изменить в файле настроек solo.rb.

Описание окружения задается в JSON следующем образом: или следующем образом в Ruby DSL

Примеры Использования