Tôi đang tìm kiếm giải thích về cách cơ chế khởi động lại của đầu bếp hoạt động sau hậu trường. Tôi không thể tìm thấy bất kỳ tài liệu nào cho nó trực tuyến, và tôi đã bị mắc kẹt cố gắng để theo dõi mã (kích hoạt là ma quái hành động-at-a-distance).Cơ chế khởi động lại dịch vụ trong đầu bếp
Hãy xem cụ thể tại nginx
và giả sử chúng tôi đang sử dụng máy chủ đầu bếp chứ không phải chef-solo
(Tôi không biết điều đó có tạo nên sự khác biệt hay không).
Tôi có điều này (ví dụ) trong một công thức:
template '/etc/nginx/nginx.conf' do
source 'nginx.cfg.erb'
owner "root"
group "root"
mode 00755
notifies :reload, "service[nginx]", :delayed
end
Bit notifies :reload
nghĩa là nó gây ra một tải lại, và :delayed
có nghĩa là nó sẽ xảy ra vào cuối của chef-client
chạy. Làm thế nào mà làm việc đằng sau hậu trường? Tôi đang gặp sự cố sau chuỗi thực hiện.
Một nơi nào đó chef-client
phải chạy service nginx reload
hoặc gì đó dọc theo các dòng đó. Nó được xác định ở đâu và như thế nào?
Bạn cũng có thể sử dụng 'restart_command 'service nginx reload'', nhưng tôi thấy' nhà cung cấp ...'ít xâm phạm hơn. Tài liệu: http://docs.opscode.com/resource_service.html – alanjds
Anh ấy cần tải lại, do đó, 'reload_command' nên được sử dụng thay thế. – sekrett
@sekrett 'reload_command' sẽ phải được nhà cung cấp' dịch vụ' xác định. Nó sử dụng 'restart_command' để ghi đè lên những gì hoạt động bình thường sẽ xảy ra khi': restart', do đó việc đặt tên không hoàn toàn tạo nên sự khác biệt. –