Đây là cách tôi đã tiếp cận khu vực này trong khi mặc vai trò muốn sysadmin / devops. Hầu hết những điều sau đây sẽ chỉ là những nguyên tắc chung mà tôi cố gắng tuân theo và không phải là Chef cụ thể.
Cuối cùng tôi đã đi với Puppet vì tôi thấy ở đó có nhiều tài nguyên hơn và cảm thấy dễ dàng hơn để nhận cho tôi.
Tôi đã xem xét các mô-đun dựng sẵn khác nhau có sẵn cho những thứ như apache, php5, v.v. Nhiều người trong số họ dường như làm nhiều hơn tôi cần và không quen thuộc với nền tảng mà tôi không tin những gì đang diễn ra. Tôi quyết định sẽ đơn giản hơn đối với tôi khi chỉ xác định những gì tôi cần thực hiện trên mỗi loại nút.
Tôi đã bắt đầu quá trình bằng cách cung cấp môi trường phát triển cục bộ của nhóm (vargrant + hộp ảo). Đối với mỗi dịch vụ / thành phần tôi đã tạo một mô-đun: php5, apache2, redis, mysql, v.v.
Khi môi trường dev ổn định / hoạt động, tôi bắt đầu xây dựng môi trường QA. Tôi đã định nghĩa các loại nút chung cho các máy chủ web, redis, véc ni, v.v ... sử dụng lại các mô-đun tương tự như dev. Một khi điều này được thực hiện Giai đoạn và Sản xuất cần những thay đổi tối thiểu để bắt đầu và chạy.
Khi bạn đang trải qua và viết các công thức / mẫu của bạn, bạn nên xem xét làm thế nào nếu có thể được sử dụng lại / khái quát hóa. Đừng mã cứng những thứ như đường dẫn hoặc người dùng / nhóm có thể thay đổi giữa các bản phân phối / dự án / môi trường. Vì bạn đang xem xét một cách tiếp cận tổng quát, tôi đoán rằng một rào cản lớn sẽ giải quyết sự khác biệt giữa các bản phân phối * nix.
Quan trọng nhất, giữ là đơn giản. Tự động hóa / tiêu chuẩn hóa các phần quan trọng nhất / tốn thời gian của môi trường. Lặp đi lặp lại, tiến hóa.