Đối với các máy chủ chúng tôi quản lý, ông chủ của tôi có tầm nhìn về quản lý cấu hình thông qua các gói được phiên bản (trong trường hợp cụ thể của chúng tôi, các gói debian do fpm xây dựng). Đây là để thực hiện:
- triển khai máy chủ dễ dàng hơn
- dễ dàng hơn để theo dõi những thay đổi cục bộ
- làm cho việc theo dõi lỗi dễ dàng hơn vì trong hầu hết các trường hợp, chúng ta có thể gắn thẻ phiên bản phần mềm vào lỗi, cho dù đó là lỗi chức năng hay cấu hình.
Một lựa chọn khác là quản lý cấu hình thông qua Ansible, với bố cục được đề xuất như trong hướng dẫn sử dụng mà chúng tôi hiện đang sử dụng. Chúng tôi cài đặt các gói phần mềm được phiên bản (gần như tất cả các dịch vụ web), sẽ chịu trách nhiệm cho cấu hình dành riêng cho gói của nó và để lại cấu hình cho toàn hệ thống. Cập nhật phần mềm máy chủ chỉ đơn giản là vấn đề va chạm số phiên bản và chạy lại các tập lệnh. Chúng tôi phụ thuộc rất nhiều vào chức năng "var_prompts" của Ansible để đảm bảo chúng tôi tách biệt thông tin nhạy cảm khỏi cấu hình.
Trong trường hợp "quản lý cấu hình thông qua các gói phiên bản":
Để triển khai, chúng tôi chỉ cần đưa lên một máy chủ tối thiểu (proxy, v.v.) và sử dụng trình quản lý gói (apt trong trường hợp của chúng tôi) để cài đặt một gói ô duy nhất, sẽ cài đặt tất cả các gói phụ thuộc. Thực hiện thay đổi đối với bất kỳ gói phụ thuộc nào chỉ đơn giản là nâng cấp phiên bản gói hàng đầu nhất, giúp cập nhật các triển khai hiện có dễ dàng hơn.
Đối với cấu hình, mỗi gói phần mềm sẽ có gói "cấu hình" đi kèm, để chỉ cho phép thay đổi cấu hình. Mỗi gói sẽ có các tệp cấu hình độc lập để ngăn xung đột giữa các gói khi chúng tôi xác minh các thay đổi cục bộ trên máy chủ. Thay vì chạy các lệnh tạo cấu hình, chúng tôi sẽ đảm bảo rằng chúng tôi sẽ có các tệp được tạo như một phần của gói, nhưng vẫn cho phép chạy các lệnh thông qua các tập lệnh cài đặt trước / sau. AFAIK, không có nhiều trường hợp chúng tôi có các gói sẽ dựa trên cùng một tệp cấu hình, nhưng nếu đó là trường hợp (đó là trường hợp cho cấu hình hệ thống), chúng tôi sẽ có một gói khác có một gói phụ thuộc vào cả hai. Tôi có thể thấy trường hợp đặc biệt này vượt khỏi tầm kiểm soát, nhưng điều này có thể được kiểm soát bằng cách luôn đảm bảo các tệp cấu hình độc lập. Cuối cùng, mỗi máy chủ sẽ có gói cấu hình riêng. Rõ ràng, tất cả các tệp này sẽ nằm dưới sự kiểm soát nguồn và chúng tôi có thể tạo ra hệ thống tạo khuôn mẫu đơn giản của riêng mình, để chúng tôi cũng có thể có sự linh hoạt của các vai trò Ansible.
Tôi tò mò tại sao tôi không thể tìm thấy bất kỳ thông tin / phân tích nào về loại quy trình công việc này để định cấu hình và triển khai máy chủ. Tôi có thiếu một cái gì đó về cơ bản thiếu sót với cách tiếp cận như vậy, so với các công cụ quản lý cấu hình hiện có?