Tôi nghĩ rằng những người khác đã giải thích lý do tại sao tôi sẽ chụp ảnh như thế nào. Tôi nghĩ bằng cách hiểu làm thế nào ai đó có thể sử dụng Puppet để làm những gì bạn muốn, nó sẽ làm cho quyết định rõ ràng hơn.
Làm trường hợp cơ bản trước
Mô-đun rối cho Apache không nên làm nhiều theo mặc định. Cài đặt Apache, cấu hình nó theo tiêu chuẩn tối thiểu và bắt đầu dịch vụ. Làm cho công việc này trên tất cả các distro bạn cần hỗ trợ.
Thêm tính linh hoạt thứ hai
Chúng ta cần thêm vhost. Bạn sẽ kết thúc với một hệ thống có thể thả tệp hoặc xóa chúng khỏi một tập hợp các thư mục conf.d hoặc vhosts.d / theo những gì bạn cần. Điều tương tự với việc kích hoạt hoặc cấu hình các mô-đun.
Sử dụng các lớp vai trò hoặc nhóm máy chủ để liên kết các khối xây dựng của bạn với nhau
Tôi nghĩ cách tốt nhất để sử dụng Puppet là đảm bảo nó là phụ gia. Sử dụng các ví dụ trên, chúng ta sẽ có một mô-đun
- Cài đặt Apache
- Đặt cấu hình cơ bản
- Thêm vhost vào apache
- Định cấu hình bất kỳ cài đặt bổ sung nào
- Bắt đầu Apache
Thay vì quá tải mô-đun Apache mặc định của chúng tôi để thực hiện chính xác những gì chúng tôi cần cho một máy chủ hoặc nhóm cụ thể, chúng tôi nên xử lý đây là lớp vai trò hoặc lớp máy chủ.
class role::web_cust1 {
include apache
apache::vhost {'www.domain.com': }
apache::vhost {'www.domain2.com': priority => '99', }
include php
include php-fpm
include mysql
}
Lại thêm phụ gia.
Đặt trường hợp đặc biệt vào Hiera
Tôi là một fan hâm mộ lớn của việc để Hiera của Puppet, nghĩ về nó như một cơ sở dữ liệu cho Puppet, lưu trữ các bit đặc biệt. Nếu một máy chủ hoặc nhóm máy chủ nhất định cần một cài đặt đặc biệt, trước tiên hãy đặt mặc định lành mạnh vào mô-đun để người dùng bình thường không cần biết về nó. Sau đó chèn dữ liệu cho các máy chủ hoặc nhóm máy chủ đặc biệt đó để Hiera có thể sử dụng dữ liệu đó để chuyển cho Puppet khi cần.
Trường hợp sử dụng của tôi là cổng Nghe. Một số máy chủ có Varnish hoặc haproxy trước mặt họ. Theo mặc định, mô đun Puppet có Apache sử dụng cổng 80, nhưng nếu Hiera tìm thấy dữ liệu, nó sẽ ghi đè mặc định đó.