Учебники

Шеф-повар — рубиновые самоцветы с рецептами

Рецепты — это основные строительные блоки поваренной книги, которая в основном представляет собой код Ruby. В рецепте шеф-повара можно использовать все возможности языка Ruby. В большинстве случаев достаточно встроенной функциональности Ruby, но иногда может понадобиться использовать дополнительные гемы Ruby. Например, если нужно получить доступ к базе данных MySQL из самого рецепта.

У рецепта шеф-повара есть возможность получить необходимые рубиновые камни, чтобы использовать их в том же рецепте.

Использование iptable Gem в данном рецепте

Шаг 1 — Отредактируйте рецепт по умолчанию из поваренной книги и установите драгоценный камень, который будет использоваться внутри рецепта.

vipin@laptop:~/chef-repo $ subl 
cookbooks/my_cookbook/recipes/default.rb 
chef_gem 'ipaddress' 
require 'ipaddress' 
ip = IPAddress("192.168.0.1/24") 
Chef::Log.info("Netmask of #{ip}: #{ip.netmask}")

Шаг 2 — Загрузите измененную поваренную книгу на сервер Chef.

vipin@laptop:~/chef-repo $ knife cookbook upload my_cookbook 
Uploading my_cookbook [0.1.0] 

Шаг 3 — Запуск клиента Chef, чтобы увидеть результат.

user@server $ sudo chef-client 
...TRUNCATED OUTPUT... 
[2013-01-18T14:02:02+00:00] INFO: Netmask of 192.168.0.1: 
255.255.255.0 
...TRUNCATED OUTPUT...

Метод работы

Этапы запуска Chef состоят из фазы компиляции, где он компилирует все ресурсы, и фазы выполнения, где Chef запускает провайдеров ресурсов, чтобы привести узел в нужное состояние. Если в кулинарной книге нужен какой-то конкретный рубиновый драгоценный камень, нужно установить драгоценный камень на этапе усложнения.

Ресурс chef_gem будет делать то же самое, и в Chef Omnibus — единственный способ работы. Его основная функция — сделать самоцветы доступными для самого шеф-повара.