Chef - Penyedia Sumber Daya Ringan

Lightweight resource provider (LWRP) menyediakan opsi untuk memperluas daftar sumber daya yang tersedia dengan memperluas fiturnya dan memungkinkan pengguna Chef untuk membuat sumber daya kustom.

Dengan membuat sumber daya kustom, seseorang dapat dengan mudah menulis buku masak karena ia dapat memiliki sumber daya kustom yang diperkaya menggunakan Chef DSL yang membantu membuat kode resep lebih ekspresif.

Dalam komunitas Chef, banyak sumber daya kustom diimplementasikan menggunakan LWRP. Ada banyak contoh kerja LWRP sepertiiptables_rules dan apt_repository.

Metode Kerja

Pastikan salah satu memiliki nama buku masak Testing_resource dan run_list node yang berisi buku masak Testing_resource.

Membangun LWRP

Step 1 - Buat sumber daya khusus di buku masak 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 - Buat penyedia sumber daya di buku masak 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 - Gunakan sumber daya baru dengan mengedit resep default Testing_resource.

vipin@laptop:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb 
greeting "Ohai" do 
   title "Chef" 
   action :create 
end

Step 4 - Unggah buku masak yang dimodifikasi ke server Chef.

vipin@laptop:~/chef-repo $ knife cookbook upload greeting 
Uploading greeting [0.1.0]

Step 5 - Jalankan Chef-Client di node.

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 - Validasi konten file yang dihasilkan.

user@server:~$ cat /tmp/greeting.txt 
Ohai, Chef!

Skrip Alur Kerja

LWRP ada di buku masak. Sumber daya khusus ada di dalam buku masak, dan akan tersedia di bawah nama buku masak. Dalam alur kerja, pertama kita mendefinisikan definisi dan kemudian meneruskan atribut ke sumber daya yang akan digunakan di buku resep. Akhirnya, kami menggunakan tindakan dan atribut tersebut dalam resep kami.