เชฟ - อัญมณีทับทิมพร้อมสูตรอาหาร

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