Đầu bếp-khách hàng không cập nhật sách nấu ăn từ máy chủ


9

Tôi có một cuốn sách nấu ăn đầu bếp (cho apache2). Nó không hoạt động trên một nút. Vì vậy, tôi đang cố gắng tinh chỉnh nó và cập nhật nó, nhưng nút dường như không tải xuống phiên bản mới. Tôi đã có thể tải mọi thứ lên máy chủ đầu bếp từ máy cục bộ của mình knife upload ., điều đó thành công và in ra rằng nó đã tải lên các bit sách dạy nấu ăn apache2 mà tôi đã thay đổi.

Khi tôi chạy thủ công (với quyền root) chef-clienttrên nút, tôi có thể thấy nó liên lạc với máy chủ, lấy danh sách chạy, v.v. Tuy nhiên, các tệp công thức trong /var/cache/chef/cookbooks/apache2là các tệp cũ. Và công thức thất bại (vì nó không có những thay đổi tôi đã thực hiện).

Làm cách nào để có được ứng dụng đầu bếp trên nút để sử dụng phiên bản cập nhật mới của sách nấu ăn apache2? Tôi có cần tăng số phiên bản trong sách dạy nấu ăn không (tôi chưa làm điều này)?

chef-client -l debug đầu ra:

[2015-01-30T10:51:31+01:00] DEBUG: Synchronizing cookbook apache2
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_ldap.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_xsendfile.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_auth_openid.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_setenvif.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_python.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_authz_host.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_proxy_ajp.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_expires.rb, as the cache is up to date.
(lots of this for all files)

Tôi mới làm đầu bếp, vì vậy tôi có thể đã phạm sai lầm mới bắt đầu.


Chuyển đến giao diện web Chef-server và kiểm tra xem có thay đổi nào trong sách dạy nấu ăn không.
Draco Ater

1
Hãy chắc chắn rằng bạn đã chạy knife cookbook upload <cookbook_name>. Nếu điều đó không giải quyết được, hãy thử trả lại phiên bản và sau đó chạy knife cookbook list <cookbook_name>để đảm bảo bạn thực sự tải nó lên đúng cách. Thay phiên, chạy knife cookbook download(trong thư mục khác) để kéo xuống những gì máy chủ cho là đúng mã.
Tejay Cardon

Câu trả lời:


6

Có một vài điều tôi có thể nghĩ ra có thể giúp bạn hiểu.

  1. Xác minh rằng phiên bản sách nấu ăn bạn đang tải lên là phiên bản mới nhất

    Một vấn đề phổ biến với phiên bản sách nấu ăn là bạn có thể sửa đổi phiên bản cookbook 1.0.0 tại địa phương và tải lên, nhưng Chef Server có phiên bản sách nấu ăn 1.0.1 đã được tải lên. Trong trường hợp đó, Đầu bếp khách hàng thường sẽ truy xuất phiên bản mới nhất (trừ khi được nói khác) và các thay đổi của bạn sẽ không bao giờ đồng bộ hóa với bộ đệm cục bộ.

    Bạn có thể xem tất cả các phiên bản hiện tại của sách nấu ăn trên Chef Server thông qua: knife cookbook show apache2

    Một giải pháp cho vấn đề này là giải pháp bạn đã đề cập - tăng số phiên bản của bạn ngoài số lượng tồn tại trên Chef Server, tức là 1.0.2 và tải lên.

    Một phương pháp khác là xóa mọi sách dạy nấu ăn apache2 khác khỏi Chef Server và tải lên lại cuốn sách bạn muốn. Điều này không cần bất kỳ cập nhật số phiên bản nào và kết quả cuối cùng là Chef Server sẽ có một cuốn sách nấu ăn apache2 duy nhất.

  2. Xác thực rằng các thay đổi của bạn thực sự được thực hiện cho Chef Server

    Sử dụng knife cookbook show apache2 <cookbook version> recipes default.rb Thay thế phiên bản, đường dẫn và tên tệp - ví dụ: nếu bạn muốn xem một mẫu có tên foo.erb:knife cookbook show apache2 0.1.0 templates foo.erb

    Lệnh này sẽ yêu cầu tệp từ Máy chủ đầu bếp và hiển thị đầu ra trong thiết bị đầu cuối của bạn. Đây là một cách đơn giản để xác định rằng những thay đổi bạn đã thực hiện đang được tải lên thông qua knife cookbook upload.

Ngoài ra, nếu điều này không giúp được gì, việc thêm các chi tiết về knifephiên bản, chef-serverphiên bản, chef-clientphiên bản cũng như nhật ký gỡ lỗi knife cookbook upload apache2 -VVsẽ hữu ích trong việc gỡ lỗi thêm.


1
Cảm ơn bạn rất nhiều vì câu trả lời này ... nó khiến tôi thấy rằng chúng tôi có những hạn chế về sách dạy nấu ăn trong môi trường sản xuất của chúng tôi, không phải trong môi trường / sản xuất của chúng tôi mà là do berkshelf thiết lập! Tôi thậm chí không biết nó có thể làm điều đó. Dù sao, sau khi tải lên lại môi trường sản xuất của chúng tôi, một đầu bếp mới đã chọn cuốn sách nấu ăn ứng dụng mới nhất của chúng tôi.
Colin Curtin

2

Trước tiên, gỡ lỗi tất cả các phiên bản sách nấu ăn trên máy chủ và sau đó kiểm tra phiên bản sách nấu ăn nào mà khách hàng đang tải xuống. nếu nó cũ, chỉ cần kiểm tra xem máy chủ có phiên bản cập nhật không. nếu nó cũng có, vui lòng vào UI máy chủ đầu bếp và kiểm tra env. bạn có thể đã thiết lập một môi trường trong đó ràng buộc sách nấu ăn được chỉ định. Vui lòng cập nhật phiên bản ở đó và nó sẽ bắt đầu hoạt động trở lại.


1

Một nguyên nhân khác của điều này có thể là không phải tất cả các phụ thuộc của sách dạy nấu ăn đều có trên máy chủ đầu bếp. Tôi vừa mới bắt đầu và phiên bản mới của cuốn sách nấu ăn của tôi đã xuất hiện knife cookbooks listnhưng khách hàng của tôi không sử dụng phiên bản mới. Sau khi gỡ lỗi, tôi phát hiện ra rằng Berkshelf, cũng không phải con dao đã tải lên sự phụ thuộc mới cho cuốn sách nấu ăn của tôi. Sau khi tôi tải lên, máy khách bắt đầu sử dụng phiên bản mới hơn.


Đảm bảo bạn đã chạy tải lên sách dạy nấu ăn bằng dao <cookbook_name>
Người chạy Net
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.