Chúng tôi đã thiết lập một máy chủ chạy cơ sở hạ tầng cho một hiệp hội nhỏ. Cho đến nay, chúng tôi đã cố gắng quản lý cấu hình với Ansible, nhưng đó không phải là một thành công lớn. Có lẽ chúng ta đang làm sai.
Về nguyên tắc, ý tưởng là máy chủ này sẽ bị bỏ lại một mình trong hầu hết thời gian, với việc mọi người thêm hoặc thay đổi mọi thứ một lần trong một mặt trăng xanh. Điều này làm cho điều quan trọng là bất cứ điều gì được cấu hình và chạy trên máy chủ đều được ghi lại rõ ràng và rõ ràng, vì những người không quản trị hệ thống thường bị ràng buộc để mất tổng quan (hãy để ý các chi tiết). Ngoài ra, theo thời gian, thành phần của nhóm người sẽ quản trị máy chủ này sẽ thay đổi (khi mọi người rời khỏi và tham gia 'ủy ban').
Chúng tôi bắt đầu với một bản cài đặt sạch sẽ, thêm các vai trò trong ansible bất cứ khi nào chúng tôi muốn thiết lập một cái gì đó (nginx, phpfpm, postfix, tường lửa, sftp, munin, ..). Có lẽ do thiếu kinh nghiệm của chúng tôi, tất nhiên chúng tôi không bao giờ có thể loại ra một tập hợp các nhiệm vụ có thể tìm thấy chính xác theo cách chúng tôi cần trong một lần, vì cấu hình là một quá trình thử và sai. Điều đó có nghĩa là trong thực tế, trước tiên chúng ta thường định cấu hình bất kỳ dịch vụ nào chúng ta muốn chạy trên máy chủ , sau đó chuyển sang các tác vụ có thể tìm thấy. Bạn có thể thấy nơi này sẽ đi. Mọi người quên sau đó kiểm tra nhiệm vụ, hoặc sợ làm như vậy có nguy cơ phá vỡ mọi thứ, hoặc tệ hơn: chúng ta quên hoặc bỏ bê để thêm mọi thứ vào ansible.
Ngày nay, chúng ta có rất ít niềm tin rằng cấu hình ansible thực sự phản ánh những gì được cấu hình trên máy chủ.
Hiện tại tôi thấy ba vấn đề chính:
- Thật khó để (đọc: chúng tôi không có cách nào tốt) để kiểm tra các nhiệm vụ khả thi mà không có nguy cơ phá vỡ mọi thứ.
- Nó bổ sung thêm công việc để tìm ra cấu hình mong muốn và sau đó tìm ra cách dịch nó sang các tác vụ có thể tìm thấy.
- (Lý tưởng nhất), chúng tôi không sử dụng nó thường xuyên đủ để xây dựng sự quen thuộc và thói quen.
Một cân nhắc quan trọng ở đây là đối với bất cứ điều gì chúng ta kết thúc, sẽ dễ dàng cho những người mới học các sợi dây mà không cần một tấn thực hành.
Có một sự thay thế khả thi nào vẫn cung cấp một số đảm bảo và kiểm tra (có thể so sánh với việc hợp nhất các tệp Ansible với một số master
) mà "cấu hình mọi thứ và ghi lại những gì bạn đã làm" không cung cấp?
EDIT: Chúng tôi đã xem xét cam kết /etc
git. Có cách nào hợp lý để bảo vệ bí mật (khóa riêng, v.v.) theo cách đó, nhưng vẫn có kho lưu trữ cấu hình có sẵn bên ngoài máy chủ không?