เชฟ - อัญมณีทับทิมพร้อมสูตรอาหาร
สูตรอาหารเป็นส่วนประกอบสำคัญของตำราอาหารซึ่งโดยพื้นฐานแล้วคือรหัสทับทิม เป็นไปได้ที่จะใช้คุณลักษณะภาษา Ruby ทั้งหมดในสูตรอาหารของเชฟ เวลาส่วนใหญ่ของ Ruby ที่สร้างขึ้นในการทำงานนั้นเพียงพอ แต่บางครั้งอาจต้องใช้อัญมณี Ruby เพิ่มเติม ตัวอย่างเช่นหากต้องการเข้าถึงฐานข้อมูล MySQL จากสูตรอาหารเอง
สูตรอาหารของเชฟมีความสามารถในการรับอัญมณีทับทิมที่ต้องการเพื่อใช้ในสูตรเดียวกัน
ใช้ 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 เรียกใช้ผู้ให้บริการทรัพยากรเพื่อรวมโหนดไปยังสถานะที่ต้องการ หากใครต้องการอัญมณีทับทิมชนิดใดชนิดหนึ่งในตำราอาหารจำเป็นต้องติดตั้งอัญมณีในช่วงภาวะแทรกซ้อน
ทรัพยากร chef_gem จะทำเหมือนกันทุกประการและใน Chef นั้นรถโดยสารเป็นวิธีเดียวในการทำงาน หน้าที่หลักของมันคือการสร้างอัญมณีให้กับเชฟเอง