2010-03-31 31 views
5

Fabric đã trở thành công cụ triển khai được lựa chọn của tôi cho cả việc triển khai các dự án Django và ban đầu định cấu hình Ubuntu slices. Tuy nhiên, công việc hiện tại của tôi với Fabric không phải là rất DRY, như tôi đã tìm thấy bản thân mình:Chia sẻ một fabfile qua nhiều dự án

  1. sao chép fabfile.py từ một Django dự án khác và
  2. sửa đổi fabfile.py khi cần thiết cho từng dự án (ví dụ, thay đổi webserver_restart tác vụ từ Apache tới Nginx, định cấu hình máy chủ và cổng SSH, v.v.).

Một lợi thế của việc này là các fabfile.py trở thành một phần của kho Git tôi, vì vậy giữa fabfile.pypiprequirements.txt, tôi có một recreateable virtualenv và triển khai quy trình. Tôi muốn giữ lợi thế này, trong khi trở thành nhiều hơn DRY. Dường như tôi có thể cải thiện công việc của mình bằng cách:

  1. có khả năng pip install các tác vụ thông thường được định nghĩa trong fabfile.py
  2. có một tập tin fab_config chứa các thông tin cấu hình máy chủ cho từng dự án và trọng bất kỳ nhiệm vụ khi cần thiết

Bất kỳ đề xuất nào về cách tăng số DRY ness của luồng công việc Fabric của tôi?

Trả lời

2

Tôi đã thực hiện một số công việc theo hướng này với "định nghĩa máy chủ" dựa trên lớp bao gồm thông tin kết nối và có thể ghi đè phương pháp để thực hiện các tác vụ cụ thể theo cách khác. Sau đó, cổ phiếu của tôi fabfile.py (không bao giờ thay đổi) chỉ cần gọi đúng phương thức trên đối tượng định nghĩa máy chủ.

Các vấn đề liên quan