เชฟ - ผู้ให้บริการทรัพยากรน้ำหนักเบา
Lightweight resource provider (LWRP) ให้ตัวเลือกในการขยายรายการทรัพยากรที่มีอยู่โดยการขยายคุณสมบัติและอนุญาตให้ผู้ใช้ Chef สร้างทรัพยากรที่กำหนดเอง
ด้วยการสร้างทรัพยากรที่กำหนดเองคุณสามารถเขียนตำราอาหารได้เพราะสามารถเป็นเจ้าของทรัพยากรแบบกำหนดเองที่เพิ่มขึ้นโดยใช้ Chef DSL ซึ่งช่วยในการทำให้รหัสสูตรสามารถแสดงออกได้มากขึ้น
ในชุมชน Chef มีการนำทรัพยากรแบบกำหนดเองจำนวนมากมาใช้โดยใช้ LWRP ตัวอย่างการทำงานของ LWRP มีมากมายเช่นiptables_rules และ apt_repository.
วิธีการทำงาน
ตรวจสอบว่ามีชื่อตำราอาหาร Testing_resource และ run_list ของโหนดซึ่งมีตำราอาหาร Testing_resource
อาคาร LWRP
Step 1 - สร้างทรัพยากรที่กำหนดเองในตำราอาหาร Testing_resource
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/resources/default.rb
actions :create, :remove
attribute :title, kind_of: String, default: "World"
attribute :path, kind_of: String, default: "/tmp/greeting.txt"
Step 2 - สร้างผู้ให้บริการทรัพยากรในตำราอาหาร Tesing_resource
vipin@laptop:~/chef-repo $ subl cookbooks/Testing_resource/provider/default.rb
action :create do
log "Adding '#{new_resource.name}' greeting as #{new_resource.
path}"
file new_resource.path do
content "#{new_resource.name}, #{new_resource.title}!"
action :create
end
action :remove do
Chef::Log.info "Removing '#{new_resource.name}' greeting #{new_resource.path}"
file new_resource.path do
action :delete
end
end
Step 3 - ใช้ทรัพยากรใหม่โดยแก้ไขสูตรเริ่มต้นของ Testing_resource
vipin@laptop:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb
greeting "Ohai" do
title "Chef"
action :create
end
Step 4 - อัปโหลดตำราอาหารที่แก้ไขไปยังเซิร์ฟเวอร์ Chef
vipin@laptop:~/chef-repo $ knife cookbook upload greeting
Uploading greeting [0.1.0]
Step 5 - เรียกใช้ Chef-Client บนโหนด
vipin@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
2013-06-28T21:32:54+00:00] INFO: Processing greeting[Ohai] action
create (greeting::default line 9)
[2013-06-28T21:32:54+00:00] INFO: Adding 'Ohai' greeting as /tmp/
greeting.txt
[2013-06-28T21:32:54+00:00] INFO: Processing file[/tmp/greeting.
txt] action create (/srv/chef/file_store/cookbooks/greeting/
providers/default.rb line 7)
[2013-06-28T21:32:54+00:00] INFO: entered create
[2013-06-28T21:32:54+00:00] INFO: file[/tmp/greeting.txt] created
file /tmp/greeting.txt
...TRUNCATED OUTPUT...
Step 6 - ตรวจสอบเนื้อหาของไฟล์ที่สร้างขึ้น
user@server:~$ cat /tmp/greeting.txt
Ohai, Chef!
สคริปต์เวิร์กโฟลว์
LWRP อยู่ในตำราอาหาร ทรัพยากรที่กำหนดเองอาศัยอยู่ในตำราอาหารและจะพร้อมใช้งานภายใต้ชื่อตำราอาหาร ในเวิร์กโฟลว์อันดับแรกเรากำหนดคำจำกัดความจากนั้นส่งแอตทริบิวต์ไปยังทรัพยากรที่จะใช้ในตำราอาหาร สุดท้ายเราใช้การกระทำและคุณลักษณะเหล่านั้นในสูตรของเรา