Tôi chưa bao giờ hoàn toàn hài lòng với hệ thống cổng trong một môi trường rộng lớn - Có vẻ như bạn luôn cần áp dụng một số quản lý bên ngoài để làm cho nó hoạt động tốt.
Lời khuyên tốt nhất của tôi (theo thứ tự ưu tiên tăng dần, giải pháp "tệ nhất" cho giải pháp "tốt nhất"):
Nếu bạn đang xây dựng trên mỗi máy chủ, đừng .
Nếu bạn phải, đừng làm điều đó qua NFS với các giá trị đọc ghi như bạn mô tả: Bạn thường có thể tin tưởng các cổng để thực hiện đúng và không dậm chân trên cây cổng nếu bạn cung cấp các thư mục công việc thay thế, nhưng luôn tốt hơn an toàn hơn xin lỗi: Chạy một gương CVS / csup cục bộ và csup tất cả các máy chủ của bạn từ hộp đó, sau đó xây dựng cục bộ như bạn muốn nếu chúng là các máy riêng lẻ.
Vâng, tôi biết điều này có nghĩa là có nhiều không gian đĩa trên máy chủ và thêm một bước. Nó cũng gần như được đảm bảo là không có vấn đề.
Hãy cẩn thận: Bạn có thể muốn đồng bộ hóa các tệp cấu hình gói (rsync hoặc tương tự) từ một "máy chủ cấu hình" được chỉ định để đảm bảo tính nhất quán trên mỗi máy (thậm chí bạn có thể rsync toàn bộ cây cổng nếu muốn, thay vì sử dụng csup trên mỗi nút).
Sử dụng Build Host, tạo các gói và cài đặt chúng.
Một giải pháp tốt hơn nhiều so với xây dựng trên từng máy riêng lẻ: Sử dụng máy chủ lưu trữ để tạo các gói và trỏ các công cụ của bạn vào các gói đó.
Điều này có nghĩa là giữ một máy chủ xây dựng xung quanh cho mọi kiến trúc bạn chạy (hoặc biên dịch chéo), nhưng cuối cùng nó sẽ đẹp hơn cho các máy mục tiêu của bạn (không có công việc biên dịch lớn, đảm bảo tính nhất quán)
Sử dụng một công cụ quản lý cấu hình / hệ thống.
Đây là giải pháp tôi sử dụng - Tôi xây dựng hình ảnh máy chủ tiêu chuẩn và triển khai nó xung quanh môi trường của mình bằng cách sử dụng radmind
. Bạn có thể làm những điều tương tự với Puppet hoặc Chef . Điều này có tất cả các lợi thế của việc sử dụng máy chủ xây dựng (tính nhất quán, tải ít hơn trên các máy chủ riêng lẻ) và thêm lợi ích của việc quản lý cấu hình.
Hãy cẩn thận: Điều này chỉ hoạt động thực sự tốt nếu máy của bạn "giống hệt nhau" - Đó là bạn có thể cài đặt cùng một bộ cổng trên tất cả chúng. Nó có thể hoạt động nếu bạn có các bộ cổng khác nhau, nhưng điều đó làm tăng đáng kể chi phí quản trị.
Tuyên bố miễn trừ trách nhiệm: Tôi là người duy trì cổng sysutils/radmind
. Vâng, tôi thích nó rất nhiều mà tôi đã chấp nhận nó.
Tất cả điều này dựa trên kinh nghiệm của tôi khi quản lý các môi trường FreeBSD có kích thước khác nhau (từ 1-2 máy đến hơn 100). Các công cụ quản lý cấu hình / hệ thống đẩy và duy trì hình ảnh chuẩn hóa thực sự là cách tốt nhất để xử lý vấn đề này theo kinh nghiệm của tôi.