2013-02-15 30 views
5

Tôi hiểu rằng Chef được kéo theo nghĩa là nó phát hiện bất kỳ thay đổi nào trong công thức nấu ăn và sử dụng trình khách đầu bếp để cài đặt các thay đổi. Chúng tôi sử dụng đầu bếp để đưa ra trường hợp EC2 nhưng đầu bếp-khách hàng chạy như một daemon mỗi 30 phút và chạy tất cả các công thức nấu ăn một lần nữa gây ra những thay đổi không mong muốn đối với một số dịch vụ. Tôi muốn biết những tùy chọn nào để thay đổi điều này và điều hành khách hàng đầu bếp theo yêu cầu.Đầu bếp daemon chạy cứ sau 30 phút

Sau đây là các tùy chọn Tôi đã nghĩ đến việc cho đến nay,

  1. Thay đổi khoảng thời gian trên sách dạy nấu ăn đầu bếp-client để thời gian rất cao để các daemon làm không chạy thường xuyên.
  2. Sau khi phiên bản EC2 được triển khai, hãy giết sạp da đầu bếp hoặc thậm chí có thể là công thức nấu ăn.

Ngoài ra tôi tin rằng đầu bếp-khách hàng có đăng nhập xoay vòng theo lịch hàng tuần, điều này một lần nữa sẽ khởi động lại đầu bếp-khách hàng. Bất kỳ ý tưởng nào về cách tránh hành vi kéo theo này?

+0

Empty_list trống của nút đó. Hãy để đầu bếp-khách hàng chạy mỗi 30 phút không làm gì và "theo yêu cầu" $ dao nút your_node chỉnh sửa và cập nhật run_list. – karthik

Trả lời

10

Trước hết:

Công thức nấu ăn đầu bếp của bạn nên đặt nút ở 1 và cùng cấu hình, bất kể số lần đầu bếp được chạy. Bạn cũng không bao giờ nên tự khởi động lại bất kỳ dịch vụ nào. Hành vi này sẽ được thông báo bởi các tập tin cấu hình, nếu chúng được thay đổi. Ví dụ:

service 'apache2' do 
    action [:enable, :start] 
end 

template '/etc/apache2/httpd.conf' do 
    action :create 
    [...] 
    notifies, :restart, 'service[apache2]' #this notification will launch, only if the file has changed 
end 

Bạn cũng có thể tắt daemon đầu bếp-khách hàng bằng cách chạy chef-client --once. Cách này đầu bếp sẽ cung cấp các nút và sẽ loại bỏ tự từ cron. Do đó trong tương lai nó sẽ chỉ chạy theo cách thủ công theo yêu cầu.

Nhưng vấn đề lớn hơn của bạn thực sự là hoạt động đầu bếp-khách hàng của bạn gây ra những thay đổi đối với một số dịch vụ của bạn với mọi lần chạy. Bạn nên giải quyết nó trước.

+0

Cảm ơn Draco. Bạn là như những gì vấn đề lớn hơn là và nó cần phải được giải quyết. Nhưng cho đến khi được giải quyết, chúng ta cần vô hiệu hóa máy khách trên các cá thể EC2. Sử dụng tùy chọn --once sẽ yêu cầu thay đổi tất cả các mẫu trong công thức? – pup784

+0

Tôi có nghĩa là sách dạy nấu ăn trong bình luận trước. – pup784

+2

Nó không yêu cầu bất kỳ thay đổi trong sách dạy nấu ăn. Chỉ cần đăng nhập vào nút EC2 của bạn và chạy 'sudo chef-client --once'. Hoặc 'sudo service chef-client stop'. Hoặc tạo một công thức dừng dịch vụ: 'service 'chef-client' {action [: stop,: disable]}'. Có rất nhiều khả năng. –

0

Tôi đồng ý với những gì Draco nói về cách khắc phục sự cố cơ bản, nhưng nếu bạn muốn dừng đầu bếp-khách hàng chạy 30 phút một lần, bạn có thể chỉ cần xóa công thức dịch vụ đầu bếp-khách hàng :: danh sách. Xem số chef-client README.

0

Nếu bạn đang xây dựng tập tin cấu hình từ databags Chef, bạn sẽ muốn sắp xếp kết quả tìm kiếm từ vì chúng sẽ không được trả lại theo đúng thứ tự trong lần chạy khác nhau. Nếu bạn không sắp xếp kết quả, bạn sẽ có các dịch vụ Apache khởi động lại quá thường xuyên mà không có lý do rõ ràng.

Đảm bảo đầu bếp-khách hàng của bạn chạy không cần thiết với cùng một dữ liệu. Không thể nhấn mạnh điều này đủ.

Các vấn đề liên quan