Şef - Tariflerle Ruby Gems
Tarifler, temelde Ruby kodu olan yemek kitabının temel yapı taşlarıdır. Şef tarifinde tüm Ruby dili özelliklerini kullanmak mümkündür. Çoğu zaman Ruby işlevselliği oluşturmak yeterlidir, ancak bazen ek Ruby mücevherleri kullanmak gerekebilir. Örneğin, MySQL veritabanına tarifin kendisinden erişilmesi gerekiyorsa.
Şef tarifi, aynı tarifte kullanmak için gerekli Ruby mücevherlerini alma yeteneğine sahiptir.
Verilen Tarifte iptable Gem Kullanımı
Step 1 - Yemek kitabının varsayılan tarifini düzenleyin ve tarifin içinde kullanılacak cevheri yükleyin.
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 - Değiştirilmiş yemek kitabını Şef sunucusuna yükleyin.
vipin@laptop:~/chef-repo $ knife cookbook upload my_cookbook
Uploading my_cookbook [0.1.0]
Step 3 - Çıkışı görmek için Chef istemcisini çalıştırma.
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...
Çalışma yöntemi
Şef çalıştırma adımları, tüm kaynakları derlediği derleme aşamasından ve Şefin düğümü istenen duruma yakınlaştırmak için kaynak sağlayıcıları çalıştırdığı bir yürütme aşamasından oluşur. Yemek kitabının içinde herhangi bir Ruby cevherine ihtiyaç duyulursa, karmaşıklık aşamasında cevherin yüklenmesi gerekir.
Chef_gem kaynağı tam olarak aynı şeyi yapacak ve Chef'de Omnibus çalışmanın tek yoludur. Başlıca işlevi, değerli taşları Şefin kendisine ulaştırmaktır.