Fabric已成为我部署Django项目和初始配置 Ubuntu切片的首选部署工具。但是,我目前使用Fabric的工作流程不是很干燥,因为我发现自己:
- 将Django
fabfile.py
项目从一个项目复制到另一个项目,然后 - 根据需要为每个项目修改
fabfile.py
(例如,将webserver_restart
任务从 Apache 更改为 Nginx,配置主机和 SSH 端口等)。
此工作流程的一个优点是它fabfile.py
成为我的Git存储库的一部分,因此在fabfile.py
和pip requirements.txt
之间,我有一个可重新创建的virtualenv和部署过程。我想保持这种优势,同时变得更加DRY。看来我可以通过以下方式改进我的工作流程:
- 能够完成和
pip install
中定义的常见任务fabfile.py
- 拥有一个
fab_config
包含每个项目的主机配置信息的文件,并根据需要覆盖任何任务