Chef - ไฟล์และแพ็คเกจ
ใน Chef การสร้างไฟล์คอนฟิกูเรชันและการย้ายแพ็คเกจเป็นองค์ประกอบหลัก มีหลายวิธีที่เชฟจัดการเหมือนกัน มีหลายวิธีที่ Chef สนับสนุนในการจัดการกับไฟล์และแพ็คเกจซอฟต์แวร์
การติดตั้งแพ็คเกจจาก Repo ของบุคคลที่สาม
Step 1 - แก้ไขสูตรเริ่มต้นของตำราอาหาร
vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb
include_recipe "apt"
apt_repository "s3tools" do
uri "http://s3tools.org/repo/deb-all"
components ["stable/"]
key "http://s3tools.org/repo/deb-all/stable/s3tools.key"
action :add
end
package "s3cmd"
Step 2 - แก้ไขข้อมูลเมตาเพื่อเพิ่มการพึ่งพาในตำราอาหาร apt
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb
...
depends "apt"
Step 3 - อัปโหลดตำราอาหารที่แก้ไขไปยังเซิร์ฟเวอร์ Chef
Step 4 - ตรวจสอบว่าแพคเกจที่คุณพยายามติดตั้งยังไม่ได้ติดตั้ง
Step 5 - ตรวจสอบ repo เริ่มต้น
Step 6 - เรียกใช้ Chef-Client บนโหนด
Step 7 - ตรวจสอบว่าติดตั้งแพ็คเกจที่ต้องการแล้ว
การติดตั้งซอฟต์แวร์จาก Source
หากจำเป็นต้องติดตั้งซอฟต์แวร์ที่ไม่สามารถใช้เป็นแพ็กเกจสำหรับแพลตฟอร์มใดแพลตฟอร์มหนึ่งจำเป็นต้องรวบรวมด้วยตนเอง ใน Chef เราสามารถทำได้โดยใช้ทรัพยากรสคริปต์
Step 1 - แก้ไขสูตรเริ่มต้น
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/
default.rb
version = "1.3.9"
bash "install_nginx_from_source" do
cwd Chef::Config['file_cache_path']
code ≪-EOH
wget http://nginx.org/download/nginx-#{version}.tar.gz
tar zxf nginx-#{version}.tar.gz &&
cd nginx-#{version} &&
./configure && make && make install
EOH
Step 2 - อัปโหลดตำราอาหารที่แก้ไขไปยังเซิร์ฟเวอร์ Chef
Step 3 - เรียกใช้ Chef-Client บนโหนด
Step 4 - ตรวจสอบว่าติดตั้ง nginx แล้ว