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

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 9: Строка 9:
 
$ rake new_cookbook COOKBOOK=nginx
 
$ rake new_cookbook COOKBOOK=nginx
 
</PRE>
 
</PRE>
  +
===Пример рецепта===
  +
В результате будет создана вся необходимая структура. Внутри каталога Cookbooks содержится несколько файлов и подкаталогов имеющих определенное назначение. Все тонкости Cookbooks разбирать не будем, именно этот вопрос в документации освещено более менее хорошо. Основной файл называется metadata.rb содержит описание, данные мантайнера, лицензию, список поддерживаемых ОС, зависимости, конфликты и атрибуты. Например:
  +
<PRE>
  +
# список поддерживаемых ОС
  +
%w{ ubuntu debian }.each do |os|
  +
supports os
  +
end
  +
  +
# зависимости
  +
  +
%w{ build-essential runit }.each do |cb|
  +
depends cb
  +
end
  +
</PRE>
  +
Даже если вы ни разу не писали в Ruby, смысл должен быть понятен. Параметр %w описывает строковый массив, а свойство .each перебирает элементы этого массива, do-end для каждого элемента выполняет выбранное действие. То есть в первом примере мы «получаем»:
  +
<PRE>
  +
support ubuntu
  +
support debian
  +
</PRE>
  +
 
==Ссылки==
 
==Ссылки==
 
* http://www.tux.in.ua/articles/2678
 
* http://www.tux.in.ua/articles/2678

Версия 17:06, 30 октября 2012

Chef

Рецепты

$ sudo apt-get install git-core
$ git clone git://github.com/opscode/cookbooks.git
Для создании новой Cookboks используется команда “rake new_cookbook”, с указанием ее названия.
$ rake new_cookbook COOKBOOK=nginx

Пример рецепта

В результате будет создана вся необходимая структура. Внутри каталога Cookbooks содержится несколько файлов и подкаталогов имеющих определенное назначение. Все тонкости Cookbooks разбирать не будем, именно этот вопрос в документации освещено более менее хорошо. Основной файл называется metadata.rb содержит описание, данные мантайнера, лицензию, список поддерживаемых ОС, зависимости, конфликты и атрибуты. Например:

# список поддерживаемых ОС
%w{ ubuntu debian }.each do |os|
  supports os
end
 
# зависимости
 
%w{ build-essential runit }.each do |cb|
  depends cb
end

Даже если вы ни разу не писали в Ruby, смысл должен быть понятен. Параметр %w описывает строковый массив, а свойство .each перебирает элементы этого массива, do-end для каждого элемента выполняет выбранное действие. То есть в первом примере мы «получаем»:

support ubuntu
support debian

Ссылки