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 แล้ว