Chef - Định nghĩa

Định nghĩa có thể được định nghĩa là một phương pháp hợp lý để nhóm các tài nguyên, được sử dụng lặp đi lặp lại. Trong quy trình này, chúng tôi nhóm các tài nguyên và đặt tên cho chúng để lấy lại khả năng đọc của các sách nấu ăn đã xác định.

Để làm được điều này, chúng ta nên có một công thức. Trong trường hợp này, chúng tôi đang sử dụng test_cookbook và danh sách các nút đang chạy, bao gồm sách nấu ăn.

Tạo định nghĩa

Step 1 - Tạo một tệp định nghĩa mới trong thư mục định nghĩa sách nấu ăn.

vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/definitions/ 
capistrano_deploy_dirs.rb 
define :capistrano_deploy_dirs, :deploy_to => '' do 
   directory "#{params[:deploy_to]}/releases" 
   directory "#{params[:deploy_to]}/shared" 
   directory "#{params[:deploy_to]}/shared/system" 
end

Step 2 - Sử dụng một định nghĩa bên trong công thức nấu ăn mặc định.

vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb 
capistrano_deploy_dirs do 
   deploy_to "/srv" 
end

Step 3 - Tải sách nấu ăn lên máy chủ đầu bếp.

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

Step 4 - Chạy ứng dụng khách Chef trên nút mong muốn.

vipin@laptop:~/chef-repuser@server $ sudo chef-client 
...TRUNCATED OUTPUT... 
[2013-01-18T16:31:11+00:00] INFO: Processing directory[/srv/ 
releases] action create (my_cookbook::default line 2) 
[2013-01-18T16:31:11+00:00] INFO: directory[/srv/releases] created 
directory /srv/releases 
[2013-01-18T16:31:11+00:00] INFO: Processing directory[/srv/ 
shared] action create (my_cookbook::default line 3) 
[2013-01-18T16:31:11+00:00] INFO: directory[/srv/shared] created 
directory /srv/shared 
[2013-01-18T16:31:11+00:00] INFO: Processing directory[/srv/ 
shared/system] action create (my_cookbook::default line 4) 
[2013-01-18T16:31:11+00:00] INFO: directory[/srv/shared/system]

Định nghĩa trong sách dạy nấu ăn giống như micro, nhóm các tài nguyên và đặt tên cho chúng. Một định nghĩa có một cái tên mà người ta có thể biết chúng từ đó có thể được gọi bên trong công thức và nó có một danh sách các chu vi.

Trong định nghĩa, chúng ta có các tham số trong mã của chúng ta trông giống như sau.

….. 
directory "#{params[:deploy_to]}/releases" 
directory "#{params[:deploy_to]}/shared" 
directory "#{params[:deploy_to]}/shared/system” 
……

Nó có thể được sử dụng bên trong công thức mặc định như sau.

capistrano_deploy_dirs do 
   deploy_to "/srv"` 
end