2012-10-09 13 views
5

Tôi đang chạy một thiết lập máy chủ phức tạp cho một dịch vụ khả dụng cao của defacto. Cho đến nay tôi mất khoảng hai ngày để thiết lập mọi thứ nên tôi muốn tự động hóa việc cung cấp.Sử dụng Chef/Puppet và quản lý các thay đổi được thực hiện bằng tay

Tuy nhiên, tôi thực hiện khá nhiều thay đổi thủ công đối với (máy chủ) đang chạy. Một ví dụ điển hình là thay đổi cấu hình tường lửa để đối phó với các nỗ lực hack khác nhau, lũ lụt gói vv Có thể hoạt động trên các nút hoạt động nhanh chóng là điều quan trọng. Ngoài ra các máy chủ duy trì rất nhiều kết nối TCP đang hoạt động và mất những người cho một thay đổi cấu hình đơn giản là ra câu hỏi.

Tôi không hiểu liệu Chef hoặc Puppet có được thiết kế để giải quyết vấn đề này hay không. Một khi tôi thay đổi một số cấu hình hệ thống, tôi muốn lưu trữ nó ở đâu đó và sử dụng nó trong khi trường hợp tiếp theo đang được cấp phép. Tôi có nên gắn bó với một trong những công cụ đó hoặc chọn một công cụ khác không?

Trả lời

4

Thay đổi và cấp phép được thực hiện bằng tay không mất tay. Họ thậm chí không uống trà với nhau.

Tại nơi làm việc chúng tôi sử dụng con rối để quản lý tất cả arquitecture, và như bạn chúng ta cần phải làm tay thực hiện thay đổi trong một vội vàng do tắc nghẽn hiệu suất, các cuộc tấn công, vv

Những gì chúng ta làm là trước tiên hãy chắc chắn rằng con rối có thể để thiết lập mọi phần của arquitecture sẵn sàng để được phân phối mà không có bất kỳ điều chỉnh cụ thể nào.

Sau đó, khi chúng ta cần phải thực hiện các thay đổi thủ công, nếu bạn vội vã với các tập tin được quản lý bởi con rối không có rủi ro, nếu đó là một tập tin được quản lý con rối thì chúng ta cần thay đổi đại lý và làm bất cứ điều gì chúng ta cần.

Sau khi vội vàng kết thúc, chúng tôi tiến hành như sau:

Những thay đổi này sẽ được áp dụng cho tất cả các máy chủ với các triệu chứng giống nhau không?

Nếu có, bạn có thể phát triển những gì con rối gọi là 'sự kiện' là mã mà nó chạy trên tác nhân trên mỗi lần chạy và lưu kết quả trong các biến có sẵn trong tất cả các mô-đun con rối của bạn, vì vậy nếu bạn thay đổi ip conntrack Giá trị tối đa bởi vì tường lửa không thể xử lý tất cả các kết nối, bạn có thể dễ dàng (mười dòng mã) bị rối trên mỗi lần chạy biến với giá trị conntrack hiện tại, và vì vậy hãy nói với con rối để đặt giá trị tối đa liên quan đến việc sử dụng hiện tại . Sau đó, tất cả các máy chủ khác sẽ có lợi cho việc điều chỉnh này và có khả năng bạn sẽ không bao giờ phải đối phó với các vấn đề conntrack nữa (miễn là bạn tiếp tục chạy con rối với tần suất ngắn là mặc định)

Những thay đổi này phải luôn được áp dụng bằng tay trên trường hợp khẩn cấp nhất định?

Nếu cấu hình được quản lý bởi con rối, hãy tìm cách tạo cấu hình bao gồm tệp khác và yêu cầu con rối bỏ qua nó. Đây là cách dễ nhất, tuy nhiên không phải lúc nào cũng có thể (ví dụ:/etc/network/interfaces không hỗ trợ bao gồm). Nếu không thể, thì bạn sẽ phải ngăn chặn tác nhân rối trong trường hợp khẩn cấp để có thể thay đổi các tập tin rối mà không có nguy cơ bị loại bỏ trong lần chạy con rối tiếp theo.

Chỉ những thay đổi này cho máy chủ lưu trữ này và không có máy chủ lưu trữ nào khác cần đến nó?

Hãy thêm nó vào con rối! Đặt một ngọt nếu $ fqdn == my.very.specific.host và đặt bên trong bất cứ điều gì bạn cần. Ngay cả đối với một trường hợp duy nhất, nó luôn mang lại lợi ích (và mất thời gian) để di chuyển tất cả thay đổi bạn thực hiện cho máy chủ, vì sẽ cho phép bạn khôi phục toàn bộ cài đặt máy chủ nếu vì lý do nào đó máy chủ của bạn gặp sự cố không thể khôi phục được (ví dụ:các vấn đề phần cứng)

Nói tóm lại:

Đối với tôi lừa trong việc đối phó với bàn tay thực hiện thay đổi nó đặt rất nhiều nỗ lực trong lý luận làm thế nào bạn quyết định thực hiện sự thay đổi và sau khi tình trạng khẩn cấp đã qua di chuyển logic đó vào con rối. Nếu bạn cảm thấy có điều gì đó sai vì tất cả các khe cắm phần mềm đã được sử dụng nhưng bộ nhớ miễn phí vẫn có sẵn trên máy chủ để xử lý với mức lưu lượng truy cập hợp lý để cho phép nhiều khe hơn, sau đó dành chút thời gian để chuyển logic đó thành con rối . Rất cẩn thận tất nhiên, và tốn thời gian như số lượng kịch bản khác nhau trên kiến ​​trúc của bạn mà bạn muốn kiểm tra nó, nhưng cuối cùng nó rất, VERY bổ ích.

+2

Khá giống với Chef. _______ Ps. Bạn có thể đưa vào/etc/network/interfaces :) (tìm "nguồn" trong http://manpages.ubuntu.com/manpages/oneiric/man5/interfaces.5.html) hoặc thêm cấu hình của bạn vào/etc/network /if-(up|down).d/ thư mục :) –

2

Tôi muốn hoàn thành câu trả lời tuyệt vời của Valor.

con rối là công cụ để thực thi cấu hình. Vì vậy, bạn phải suy nghĩ về nó theo cách này:

  • trên máy tôi chạy rối lên ...
  • tôi hỏi khách hàng múa rối ...
  • để đảm bảo rằng cấu hình của máy hiện tại ...
  • được như quy định trong cấu hình con rối ...
  • mà được lấy từ một máy chủ con rối, hoặc trực tiếp từ một loạt các file con rối (dễ dàng hơn)

vì vậy, để trả lời một trong những nhiệm vụ của bạn ion, con rối không yêu cầu máy hoặc khởi động lại dịch vụ. Nhưng nếu thay đổi trong tệp cấu hình bạn đặt bằng con rối yêu cầu khởi động lại dịch vụ/ứng dụng/ứng dụng tương ứng, thì không có cách nào để tránh nó. Có phương pháp trong con rối để nói rằng một dịch vụ cần phải được khởi động lại trong trường hợp thay đổi cấu hình. Tất nhiên, con rối sẽ không khởi động lại dịch vụ nếu nó thấy rằng không có gì thay đổi.

Valor giả sử bạn sử dụng con rối theo cách của khách hàng/máy chủ, với (ví dụ) khách hàng bù nhìn thăm dò một máy chủ con rối để định cấu hình mỗi giờ. Nhưng nó cũng có thể di chuyển các tập tin rối của bạn từ máy này sang máy khác, ví dụ với git, và khởi động con rối bằng tay. Bằng cách này là:

  1. đơn giản hơn nhiều so với các khách hàng kỹ thuật/máy chủ (authentication là một nhức đầu)
  2. chỉ thực thi thay đổi cấu hình khi bạn explicitely yêu cầu nó, như vậy tránh được bất kỳ ghi đè của handmade của bạn thay đổi

Điều này rõ ràng không phải là cách tốt nhất để sử dụng con rối nếu bạn quản lý rất nhiều máy móc, nhưng nó có thể là một khởi đầu tốt hoặc một sự chuyển đổi tốt.

Và cũng vậy, con rối là rất khó để tìm hiểu ở cấp độ thú vị. Tôi mất 2 tuần để có thể tự động cài đặt máy chủ AWS từ đầu. Tôi không hối tiếc, nhưng bạn có thể muốn biết rằng thực tế nếu bạn phải thuyết phục một ông chủ để phân bổ thời gian của bạn.