Chef - Nhà cung cấp tài nguyên nhẹ
Lightweight resource provider (LWRP) cung cấp tùy chọn mở rộng danh sách các tài nguyên có sẵn bằng cách mở rộng các tính năng của nó và cho phép người dùng Chef tạo các tài nguyên tùy chỉnh.
Bằng cách tạo tài nguyên tùy chỉnh, người ta có thể chỉ cần viết sách dạy nấu ăn vì người ta có thể sở hữu các tài nguyên tùy chỉnh phong phú bằng cách sử dụng Chef DSL, giúp làm cho mã công thức trở nên biểu cảm hơn.
Trong cộng đồng Chef, nhiều tài nguyên tùy chỉnh được triển khai bằng LWRP. Có rất nhiều ví dụ hoạt động của LWRP nhưiptables_rules và apt_repository.
Phương pháp làm việc
Đảm bảo rằng một trong số đó có tên sách dạy nấu ăn Testing_resource và danh sách nút chạy có chứa sách dạy nấu ăn Testing_resource.
Xây dựng LWRP
Step 1 - Tạo tài nguyên tùy chỉnh trong sách dạy nấu ăn 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 - Tạo nhà cung cấp cho các tài nguyên trong sách dạy nấu ăn 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 - Sử dụng một tài nguyên mới bằng cách chỉnh sửa công thức mặc định của Testing_resource.
vipin@laptop:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb
greeting "Ohai" do
title "Chef"
action :create
end
Step 4 - Tải sách nấu ăn đã sửa đổi lên máy chủ Chef.
vipin@laptop:~/chef-repo $ knife cookbook upload greeting
Uploading greeting [0.1.0]
Step 5 - Chạy Chef-Client trên nút.
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 - Xác thực nội dung của tệp được tạo.
user@server:~$ cat /tmp/greeting.txt
Ohai, Chef!
Tập lệnh quy trình làm việc
LWRP có trong sách dạy nấu ăn. Một tài nguyên tùy chỉnh nằm bên trong sách nấu ăn và sẽ có sẵn dưới tên sách nấu ăn. Trong quy trình làm việc, đầu tiên chúng tôi xác định các định nghĩa và sau đó chuyển các thuộc tính cho các tài nguyên sẽ được sử dụng trong sách dạy nấu ăn. Cuối cùng, chúng tôi sử dụng các hành động và thuộc tính đó trong công thức của mình.