Chef: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (→Chef) |
Sirmax (обсуждение | вклад) |
||
Строка 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