2012-01-18 24 views
6

Đây là tác vụ siêu cơ bản, nhưng tôi không thể tìm thấy tài liệu về nó. Tôi đang khởi động máy EC2 bằng đầu bếp-máy chủ và đầu bếp. Nếu điều đó không thành công tôi muốn sửa chữa các công thức nấu ăn và sau đó cài đặt lại vai trò và công thức nấu ăn trên máy đó mà không cần lấy nút ra và tạo lại nó. Tôi không thể tìm thấy lệnh thực hiện điều đó.Tải lại công thức nấu ăn đầu bếp nếu không cài đặt hoặc cập nhật có sẵn

Nếu tôi chạy đầu bếp-client trên máy tính này tôi nhận được:

chef-client 
[Wed, 18 Jan 2012 11:23:58 +0000] INFO: *** Chef 0.10.0 *** 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List is [] 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List expands to [] 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Starting Chef Run for gidsy-staging-web 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Loading cookbooks [] 
[Wed, 18 Jan 2012 11:23:59 +0000] WARN: Node gidsy-staging-web has an empty run list. 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Chef Run complete in 0.508629 seconds 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Running report handlers 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Report handlers complete 

Cảm ơn

+0

Mô tả sự cố của bạn không rõ ràng, giữa EC2 và Đầu bếp có một số thuật ngữ trùng lặp. Không rõ ý bạn là gì "không lấy nút ra và tạo lại nó" (nút đầu bếp hoặc nút EC2?) Đầu ra của lần chạy không thành công của bạn là gì? Tại sao Danh sách chạy của bạn trống? Tôi đã không nhìn thấy một dịp mà một đầu bếp thất bại chạy sẽ làm rỗng danh sách chạy của một nút. – lhagemann

Trả lời

8

Tôi đã gặp phải vấn đề tương tự và đây là cách tôi đã giải quyết được vấn đề này.

Trước tiên, tôi áp dụng các vai trò (s) trong câu hỏi để các trường hợp sử dụng dao:

$ knife node run_list add [NODE] [ENTRY] 

Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]"). 

Khi vai trò này đã được áp dụng cho các trường hợp EC2, tôi sau đó gọi đầu bếp-client trên dụ trong câu hỏi .

$ sudo chef-client 

Điều này sẽ đẩy nhanh chu kỳ phát triển của bạn một cách đáng kể.

+0

có, hoạt động. cảm ơn! điều đó sẽ giúp tôi tiết kiệm rất nhiều thời gian. –

+0

Bạn được chào đón nhiều nhất Philipp! –

2

Câu trả lời của Jordan thực sự đã giúp tôi nhưng đối với những người bắt đầu đầu bếp như tôi, tôi sẽ giải thích chi tiết hơn một chút.

Tôi đang chạy trên EC2 và đã gặp phải lỗi ở trên. Đây là những gì tôi đã làm để giải quyết nó:

  1. Trên máy tính địa phương của tôi, hãy chạy: knife ec2 server list để có được nút lưu trữ trên máy chủ EC2
  2. Thêm danh sách thực thi để nút đó từ máy dev địa phương của tôi: knife node run_list add i-xxxxx "role[aws-db-deploy]" nơi i-xxxxx là tên nút của bạn
  3. ssh vào AWS của bạn Ví dụ eC2 và chạy lệnh: sudo chef-client

Hope this helps

0

bạn có thể chạy thứ e chef-client với danh sách chạy:

$ sudo chef-client --runlist <role> 
Các vấn đề liên quan