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

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

Chef recipe дает возможность получить необходимые драгоценные камни Ruby, чтобы использовать их в том же рецепте.

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

Step 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}")

Step 2 - Загрузите измененную кулинарную книгу на сервер Chef.

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

Step 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 запускает поставщиков ресурсов, чтобы привести узел к желаемому состоянию. Если вам нужен какой-либо конкретный драгоценный камень Ruby в кулинарной книге, его необходимо установить на этапе усложнения.

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