เชฟ - เชฟ - เชลล์
การเขียนตำราเชฟเป็นเรื่องยากเสมอ ทำให้ยากยิ่งขึ้นเนื่องจากรอบการตอบรับที่ยาวนานในการอัปโหลดไปยังเซิร์ฟเวอร์ Chef การจัดเตรียม VM เร่ร่อนตรวจสอบว่าล้มเหลวที่นั่นล้างและทำซ้ำได้อย่างไร มันจะง่ายกว่าถ้าเราลองทดสอบชิ้นส่วนหรือสูตรอาหารก่อนที่จะทำการยกของหนักทั้งหมดนี้ในคราวเดียว
Chef มาพร้อมกับ Chef-Shell ซึ่งเป็นเซสชั่น Ruby แบบโต้ตอบกับ Chef ใน Chef-Shell เราสามารถสร้าง -
- Attributes
- เขียนสูตรอาหาร
- การเริ่มต้นใช้งาน Chef
ใช้เพื่อประเมินบางส่วนของสูตรอาหารได้ทันทีก่อนที่จะอัปโหลดไปยังเซิร์ฟเวอร์ Chef และดำเนินการตำราอาหารที่สมบูรณ์บนโหนด
วิ่งเชลล์
Step 1 - เรียกใช้ Chef-Shell ในโหมดสแตนด์อโลน
mma@laptop:~/chef-repo $ chef-shell
loading configuration: none (standalone chef-shell session)
Session type: standalone
Loading...[2017-01-12T20:48:01+01:00] INFO: Run List is []
[2017-01-12T20:48:01+01:00] INFO: Run List expands to []
done.
This is chef-shell, the Chef Shell.
Chef Version: 11.0.0
http://www.opscode.com/chef
http://wiki.opscode.com/display/chef/Home
run `help' for help, `exit' or ^D to quit.
Ohai2u mma@laptop!
chef >
Step 2 - เปลี่ยนเป็นโหมดแอตทริบิวต์ใน Chef-Shell
chef > attributes_mode
Step 3 - การตั้งค่าแอตทริบิวต์
chef:attributes > set[:title] = "Chef Cookbook"
“ ตำราเชฟ”
chef:attributes > quit
:attributes
chef >
Step 4 - เปลี่ยนเป็นโหมดสูตรอาหาร
chef > recipe_mode
Step 5 - สร้างทรัพยากรไฟล์
chef:recipe > file "/tmp/book.txt" do
chef:recipe > content node.title
chef:recipe ?> end
=> <file[/tmp/book.txt] @name: "/tmp/book.txt" @noop: nil @
before: nil @params: {} @provider: Chef::Provider::File @allowed_
actions: [:nothing, :create, :delete, :touch, :create_if_missing]
@action: "create" @updated: false @updated_by_last_action: false
@supports: {} @ignore_failure: false @retries: 0 @retry_delay:
2 @source_line: "(irb#1):1:in `irb_binding'" @elapsed_time: 0 @
resource_name: :file @path: "/tmp/book.txt" @backup: 5 @diff: nil
@cookbook_name: nil @recipe_name: nil @content: "Chef Cookbook">
chef:recipe >
Step 6 - เริ่มต้น Chef ทำงานเพื่อสร้างไฟล์ที่มีเนื้อหาที่กำหนด
chef:recipe > run_chef
[2017-01-12T21:07:49+01:00] INFO: Processing file[/tmp/book.txt]
action create ((irb#1) line 1)
--- /var/folders/1r/_35fx24d0y5g08qs131c33nw0000gn/T/cheftempfile20121212-
11348-dwp1zs 2012-12-12 21:07:49.000000000
+0100
+++ /var/folders/1r/_35fx24d0y5g08qs131c33nw0000gn/T/chefdiff20121212-
11348-hdzcp1 2012-12-12 21:07:49.000000000 +0100
@@ -0,0 +1 @@
+Chef Cookbook
\ No newline at end of file
[2017-01-12T21:07:49+01:00] INFO: entered create
[2017-01-12T21:07:49+01:00] INFO: file[/tmp/book.txt] created file
/tmp/book.txt
มันทำงานอย่างไร
Chef-Shell เริ่มต้นด้วยเซสชัน Interactive Ruby (IRB) ที่ปรับปรุงด้วยคุณสมบัติเฉพาะบางอย่าง
มีโหมดต่างๆเช่น attributes_mode และ interactive_mode
ช่วยในการเขียนคำสั่งซึ่งเขียนไว้ในสูตรอาหารหรือตำราอาหาร
มันทำงานทุกอย่างในโหมดโต้ตอบ
เราสามารถเรียกใช้ Chef-Shell ในสามโหมดที่แตกต่างกัน: Standalone mode, Client modeและ Solo mode.
Standalone mode- เป็นโหมดเริ่มต้น ไม่มีการโหลดตำราอาหารและรายการที่รันว่างเปล่า
Client mode - ที่นี่เชฟเชลล์ทำหน้าที่เป็นพ่อครัว - ลูกค้า
Solo mode - ที่นี่เชฟเชลล์ทำหน้าที่เป็นลูกค้าเดี่ยวของเชฟ