พ่อครัว - บทบาท
บทบาทในเชฟเป็นวิธีการจัดกลุ่มโหนดอย่างมีเหตุผล กรณีทั่วไปจะมีบทบาทสำหรับเว็บเซิร์ฟเวอร์เซิร์ฟเวอร์ฐานข้อมูลและอื่น ๆ หนึ่งสามารถตั้งค่ารายการรันที่กำหนดเองสำหรับโหนดทั้งหมดและแทนที่ค่าแอตทริบิวต์ภายในบทบาท
สร้างบทบาท
vipin@laptop:~/chef-repo $ subl roles/web_servers.rb
name "web_servers"
description "This role contains nodes, which act as web servers"
run_list "recipe[ntp]"
default_attributes 'ntp' => {
'ntpdate' => {
'disable' => true
}
}
เมื่อเราสร้างบทบาทได้แล้วเราจำเป็นต้องอัปโหลดไปยังเซิร์ฟเวอร์ Chef
อัปโหลดบทบาทไปยังเซิร์ฟเวอร์เชฟ
vipin@laptop:~/chef-repo $ knife role from file web_servers.rb
ตอนนี้เราต้องกำหนดบทบาทให้กับโหนดที่เรียกว่าเซิร์ฟเวอร์
กำหนดบทบาทให้กับโหนด
vipin@laptop:~/chef-repo $ knife node edit server
"run_list": [
"role[web_servers]"
]
Saving updated run_list on node server
เรียกใช้ Chef-Client
user@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
[2013-07-25T13:28:24+00:00] INFO: Run List is [role[web_servers]]
[2013-07-25T13:28:24+00:00] INFO: Run List expands to [ntp]
...TRUNCATED OUTPUT...
มันทำงานอย่างไร
กำหนดบทบาทในไฟล์ Ruby ภายในโฟลเดอร์ role ของที่เก็บ Chef
บทบาทประกอบด้วยชื่อและแอตทริบิวต์คำอธิบาย
บทบาทประกอบด้วยรายการรันเฉพาะบทบาทและการตั้งค่าแอ็ตทริบิวต์เฉพาะบทบาท
ทุกโหนดที่มีบทบาทในรายการที่เรียกใช้จะมีรายการเรียกใช้ของบทบาทที่กำหนดไว้เป็นของตัวเอง
สูตรอาหารทั้งหมดในรายการเรียกใช้ของบทบาทจะดำเนินการบนโหนด
บทบาทจะถูกอัปโหลดไปยังเซิร์ฟเวอร์ Chef โดยใช้บทบาทมีดจากคำสั่งไฟล์
บทบาทจะถูกเพิ่มลงในรายการรันโหนด
การรันไคลเอ็นต์ Chef บนโหนดที่มีบทบาทในรายการรันจะดำเนินการตามสูตรอาหารทั้งหมดที่ระบุไว้ในบทบาท