Triển khai ứng dụng với Puppet


10

Tôi chưa quen với Puppet và trong khi tôi đã sử dụng các hệ thống * nix trong nhiều năm, tôi chưa bao giờ làm việc như một sysadmin hoặc trong ops.

Tôi hiện đang viết các bản kê khai rối để lưu trữ một bộ ứng dụng web (PHP / MySQL / MongoDB, mã trong git). Rõ ràng Puppet cần có một số kiến ​​thức về các ứng dụng thực tế bởi vì tôi sẽ thiết lập một máy chủ ảo cho từng ứng dụng, nhưng tôi không chắc liệu Puppet có nên quản lý những thứ như triển khai mã và tạo cơ sở dữ liệu hay không.

Puppet có phải là một công cụ thích hợp để triển khai ứng dụng không? Nếu không, bạn có thể giới thiệu một công cụ thích hợp hơn?


3
Nếu bạn đến với điều này sau, tất cả các câu trả lời đều tốt, đừng chỉ đọc câu tôi chọn làm câu trả lời.
michaeltwofish

Câu trả lời:


10

Tôi sẽ xem xét Capistrano hoặc Fabric để triển khai ..

Bạn sẽ kiểm soát tốt hơn cách triển khai xảy ra với hai công cụ này.


Tôi + 1'd câu trả lời này vì nó đưa ra hai giải pháp.
François Beausoleil

Tôi đánh giá cao con trỏ. Chúng tôi có Ruby ở nơi khác trong chồng, vì vậy tôi sẽ xem Capistrano.
michaeltwofish

9

Con rối được sử dụng để triển khai trong nhiều tổ chức lớn, nhưng nó không phải lúc nào cũng hoàn hảo. Phần lớn phụ thuộc vào phương pháp triển khai của bạn. Bạn đang triển khai nhiều máy cùng một lúc? Bạn có triển khai cán?

Một số tổ chức sử dụng Puppet bằng cách xây dựng các gói triển khai của họ và sau đó có chính sách thực thi con rối để có phiên bản phù hợp của gói đó. Vì con rối có khái niệm môi trường đi kèm, bạn có thể sử dụng các môi trường để thực hiện triển khai theo các giai đoạn (ví dụ: dev, test, prod).

Các tổ chức khác sử dụng con rối để phối hợp triển khai bằng cách bắn ra rsync, kiểm tra git hoặc một số bản sao tệp đệ quy bằng cách sử dụng con rối (mặc dù điều đó khá chậm).

Có những công cụ khá tốt khác có sẵn để triển khai. Tôi đã sử dụng Whiskey Disk trong quá khứ (một công cụ ruby ​​đơn giản) và thích nó rất nhiều.

(Khước từ, tôi làm việc tại Puppet Labs)


Cảm ơn. Triển khai đến hai máy chủ cân bằng, hiện đang sử dụng rsync thủ công.
michaeltwofish

4

Nếu bạn muốn xây dựng một gói ra khỏi ứng dụng của mình, bạn có thể xem xét FPM . Mã là trên GitHub .


Cảm ơn vì tiền hỗ trợ. Chúng tôi không xây dựng các gói trong trường hợp này, nhưng FPM có vẻ thú vị và chúng tôi có thể sử dụng nó cho các nhiệm vụ khác.
michaeltwofish

4

Theo tôi, con rối không phải là công cụ thích hợp để triển khai các ứng dụng.

Tôi sử dụng Jenkins để xây dựng và triển khai mã của chúng tôi để thử nghiệm và dàn dựng.

Jenkins ban đầu là một máy chủ tích hợp liên tục, nhưng nó thực sự linh hoạt và mô đun. Có rất nhiều plugin cho Jenkins có thể giúp bạn triển khai các ứng dụng của mình:

Đối với ứng dụng của chúng tôi, tôi đã cấu hình Jenkins với Publish over SSH , sao chép tệp WAR được xây dựng thành công vào máy chủ đích và sau đó thực thi một tập lệnh thực hiện sao lưu và triển khai. Hi vọng điêu nay co ich!


Chúng tôi đang sử dụng Jenkins cho CI, vì vậy đây chắc chắn là một lựa chọn thú vị để khám phá, cảm ơn.
michaeltwofish


1

Con rối không thực sự được thiết kế để triển khai vì khi có một số lượng lớn tệp có liên quan, bạn có thể gặp sự cố. Bạn có thể nhìn vào capistrano để triển khai ứng dụng.

http://rubyforge.org/projects/capistrano/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.