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
- sao chép
fabfile.py
từ một Django dự án khác và - sửa đổi
fabfile.py
khi cần thiết cho từng dự án (ví dụ, thay đổiwebserver_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.py
và piprequirements.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:
- có khả năng
pip install
các tác vụ thông thường được định nghĩa trongfabfile.py
và - 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?