5
Fabric已经成为部署Django项目和初始配置Ubuntu slices的首选部署工具。但是,我现在的工作流程Fabric不是很DRY,因为我发现自己:跨多个项目共享一个fabfile
- 复制
fabfile.py
从一个Django项目到另一个 - 根据需要为每个项目(修改
fabfile.py
例如,改变从Apache到Nginx的webserver_restart
任务,配置主机和SSH端口等)。这个工作流程的
一个优点是,fabfile.py
成为我Git库的一部分,所以fabfile.py
和piprequirements.txt
之间,我有一个recreateable virtualenv和部署过程。我想保持这个优势,同时变得更加DRY。看来,我可以提高我的工作流程是:根据需要
- 能够
pip install
在fabfile.py
和 - 有
fab_config
文件,其中包含每个项目的主机配置信息,并覆盖任何任务定义的公共任务