Quản lý nâng cấp trên hàng trăm máy chủ Debian


20

Bạn nghĩ gì về các thực tiễn tốt nhất để duy trì hàng chục (nếu không phải hàng trăm) máy chủ debian cập nhật? Hãy ghi nhớ rằng:

  • Có các nhóm máy chủ (ví dụ: máy chủ web giống hệt nhau, Máy chủ DB, ...)
  • Có thể có một số vấn đề về Debian (lenny, etch)
  • Chạy một vòng lặp trên tất cả các máy chủ và thực hiện cập nhật apt-get && nâng cấp là không thể chấp nhận được (vì đó là những gì tôi đang làm vào lúc này :)) Nó sẽ tốt hơn thế này!

Hiện tại, khi cuối cùng tôi hoàn thành tất cả các nâng cấp, một bản cập nhật bảo mật mới được đăng lên và tôi phải làm lại từ đầu.

Cảm ơn cộng đồng serverfault trước!


1
Có một máy chủ cục bộ để lưu trữ các gói mới nhất và sử dụng nó làm kho lưu trữ apt, điều này sẽ giúp bạn tiết kiệm băng thông và thời gian, sử dụng kho lưu trữ cục bộ của bạn để phân phối các bản cập nhật cho các máy chủ cục bộ. Oh, và sử dụng năng khiếu thay vì apt-get.
Karolis T.

3
Có cho gương và không cho năng khiếu. Không có lợi trong những ngày này. Nó thậm chí không có siêu năng lực.
David Pashley

Câu trả lời:


12

Tôi sử dụng apt-dater để quản lý nâng cấp tất cả các hộp Debian của mình. Có vẻ để làm các thủ thuật đủ tốt. Mặc dù vậy, họ đã không cố gắng mở rộng quy mô lên tới hàng trăm máy chủ.


1
Sản phẩm thú vị, mặc dù tôi chưa bao giờ nghe nói về nó.
wzzrd

Nó rất tốt ! Tôi sẽ quảng bá câu trả lời này nếu apt-dater không có gói địa phương để cài đặt trên mỗi máy chủ ... và tôi không hiểu tại sao nó lại cần thiết.
Falken

Sau khi thử nghiệm, công cụ này là tuyệt vời! Nhưng nó hoạt động cho hàng tá máy chủ, không phải hàng trăm. Khi xử lý nhiều máy móc, nó trở nên dễ vỡ và chậm ... quá tệ.
Falken

1
Tôi quảng bá câu trả lời này vì cuối cùng tôi cũng có thể sử dụng nó, nhưng các giải pháp khác cũng khá tốt, tùy thuộc vào sở thích / môi trường của bạn!
Falken

2
Đó là tác nhân ssh mặc định trên ubfox đã khiến tất cả sai. Tôi chỉ cần gỡ bỏ nó và sử dụng "ssh-add" dễ dàng. Tất cả sự chậm chạp tan biến!
Falken


3

Chúng tôi đã thử nghiệm sử dụng con rối để nâng cấp sửa lỗi bảo mật trên các gói không cần thiết. Chúng tôi sẽ chạy apticron để gửi email danh sách các bản cập nhật cho mọi máy chủ, sau đó hàng ngày chạy một kịch bản hợp nhất các bản cập nhật này thành một tệp kê khai con rối cung cấp gói và phiên bản cho mỗi bản phân phối. Điều này sau đó sẽ cập nhật một loạt các tệp trên các máy chủ riêng lẻ và khởi động một tập lệnh nâng cấp khi gói cần nâng cấp. Điều này hoạt động tốt hợp lý, nhưng chúng tôi đã không thử nghiệm nó nhiều như tôi muốn. Lược đồ này đã vượt qua giới hạn của Puppet về việc không có cùng một tài nguyên được xác định ở nhiều nơi.

Tôi cũng không thoải mái khi thực hiện nâng cấp tự động những thứ như MySQL hoặc PostgreSQL, trong đó một bản cập nhật ngẫu nhiên sẽ đóng cửa một dịch vụ, có thể vào giữa ngày. Chúng vẫn sẽ yêu cầu cập nhật thủ công.

Spacewalk và Debmarshall trông giống như những lựa chọn thay thế phù hợp cho sơ đồ bù nhìn của chúng tôi.


Không có bình luận về câu trả lời, chỉ là một tiếng "hạnh phúc 10 ngày" muộn màng.
Evan Anderson

1

Rõ ràng, Spacewalk hiện đã hỗ trợ sơ bộ cho Debian. Điều đó, cùng nhau, có lẽ, với Puppet, sẽ là điểm khởi đầu của tôi. Tôi khá chắc chắn rằng anh chàng phát triển hỗ trợ Debian cho Spacewalk sẽ yêu bạn vì đã hợp tác với anh ấy để đưa hỗ trợ Debian lên cấp cao hơn.


1

Theo cách của các hệ thống cấu hình dựa trên kéo như Puppet, cũng có bcfg2 và cfengine. Một hoặc những người khác có thể phù hợp với nhu cầu của bạn. Tôi đang triển khai bcfg2 trong phòng thí nghiệm của mình ngay bây giờ.


1

Một giải pháp có thể được đưa ra bởi func


Tôi sẽ không làm func. Đó là cách chưa trưởng thành để sử dụng sản xuất, mặc dù tôi thừa nhận nó không hứa hẹn.
wzzrd

func được sử dụng bởi cobbler, nó không phải là IMHO chưa trưởng thành. cobbler được người dùng rất nhiều bởi các chuyên gia của RH và những công nghệ này sẽ được đưa vào phiên bản tiếp theo của RHEL. Nó không phải là "chính thức" sản xuất đã sẵn sàng, có thể, nhưng nó khá gần với thực tế.
drAlberT

0

Tôi không chắc chắn loại giải pháp bạn đang mong đợi. Bạn có thể biết về công việc định kỳ, nhưng tôi sẽ không cập nhật hệ thống cho người mù vì cần có sự can thiệp của con người (và đó là lý do tại sao họ trả tiền cho bạn để làm việc này, phải không?)

Nếu bạn có các hệ thống hoàn toàn giống hệt nhau, bạn có thể cân nhắc sử dụng một cái gì đó như rsync để mang đến sự khác biệt, nhưng việc tìm ra các tệp không phải rsync có thể khó khăn và tôi sẽ không làm điều này trong khi các dịch vụ đang chạy. Ít nhất các tập lệnh cập nhật được thiết lập để quản lý khởi động lại các dịch vụ và hợp nhất các khác biệt về tệp cấu hình.

Có lẽ nếu bạn giải thích vấn đề là gì khi thực hiện các lệnh apt-get, chúng ta có thể thấy những gì bạn muốn tránh.

Nếu vấn đề là băng thông và thời gian tải xuống, có lẽ bạn nên thiết lập một hộp để hoạt động như kho lưu trữ Debian cục bộ của mình. Có hướng dẫn Debian về cách làm điều đó.

Dưới đây là một số mẹo về cách giảm thiểu số lượng những thứ bạn cần cập nhật.

Khi bạn cài đặt Debian, đừng cài đặt Desktop trừ khi bạn thực sự cần sử dụng X trên bàn điều khiển đó. Hầu hết các máy chủ không cần cài đặt X. Điều này có thể làm giảm đáng kể số lượng gói trên hệ thống và sau đó bạn không cần cập nhật nhiều gói.

Kiểm tra xem nguồn.list chỉ bao gồm các kho bạn thực sự cần. Nếu bạn đã thử nghiệm với một số kho lưu trữ và quên mất điều đó, bạn có thể mang đến các bản cập nhật mà bạn không cần hoặc không muốn.

Nếu bạn gặp rắc rối với việc cập nhật một cách mù quáng trên máy chủ sản xuất, hãy cẩn thận tham khảo hướng dẫn nâng cấp Debian khi có bản cập nhật lớn (4.0 đến 5.0). Những điều này sẽ đi qua rất tốt nếu bạn làm theo các hướng dẫn nâng cấp. Nó không dễ như chạy apt-get dist-nâng cấp và bỏ đi. Đôi khi trong các hướng dẫn thậm chí còn có các con trỏ về thời điểm chạy apt apt chứ không phải apt-get - có những khác biệt nhỏ trong chúng.



-1

CụmSSH. Bạn đăng nhập vào tất cả các máy chủ và cung cấp cho chúng các lệnh chính xác giống nhau, vì vậy bạn cũng có thể phản ứng với các hộp thoại. Nếu một máy chủ nhận được một câu hỏi thêm, chỉ cần nhấp vào câu hỏi đó và đó sẽ là câu hỏi duy nhất trả lời.

Tôi đã sử dụng nó để nâng cấp 25 máy chủ web từ etch lên lenny. Làm việc như người ở.

http://sourceforge.net/projects/cl clustersh/


Tác nhân SSH thực sự chết nếu bạn thử và làm những điều kỳ lạ như kết nối với ~ 50 máy cùng một lúc. Mặt khác, tôi thích ClusterSSH, mặc dù nó cần một nhóm khác.
LapTop006

-1

Cụm ssh là một gợi ý tốt.

debmarshal chưa phải là một phần của debian - tôi thậm chí không chắc nó sẽ là một gói - dường như là một hệ thống hoàn toàn khác với một kho lưu trữ chuyên dụng. Như diễn giả đã nói, đây hiện là người dùng thù địch, không thân thiện với người dùng.

Spacewalk dường như là một bản sao của Redhat Network, ít nhất là trong giao diện web. Tôi đã có kết quả xấu từ việc sử dụng Redhat Network để cập nhật hệ thống. Một lần nó bị treo, không có lý do gì để thông báo và gây ra sự cố ngừng dịch vụ. Tôi đã thực hiện một bản cập nhật yum ngay sau đó và nó đã xử lý tốt, vì vậy tôi chỉ có thể giả sử vấn đề là từ một thứ gì đó bị chặn ở phía RHN. Một điều khác tôi không thích về các bản cập nhật của RHN là bạn không biết khi nào bản cập nhật sẽ xảy ra, để theo dõi các vấn đề.


-1 Không đúng: Các cập nhật của RHN không tự động trừ khi bạn thực hiện chúng tự động. Ngoài ra: là một người sử dụng RHN hàng ngày, tôi vẫn chưa thấy nó xuất hiện trên tôi.
wzzrd

Tôi đã không nói rằng RHN là tự động. Nhưng nếu bạn thiết lập các bản cập nhật từ RHN, sẽ không có thông báo khi nào chúng sẽ xảy ra, vì vậy nó cũng cảm thấy như vậy. Sự may mắn rõ ràng của bạn không hoàn tác trải nghiệm thực sự của tôi với nó thất bại và khiến người dùng không có dịch vụ. Ngay cả cập nhật yum cũng có thể thất bại. Bất cứ ai nghĩ rằng bạn chỉ có thể cập nhật và bỏ đi là không cẩn thận hoặc không quan tâm vì đó không phải là máy chủ sản xuất (sản xuất = có những khách hàng phụ thuộc vào dịch vụ).
labradort
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.