Ş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.