Fabric已成为部署Django项目和初始配置Ubuntu slices的首选部署工具。但是,我现在的Fabric工作流程并不是DRY,我发现自己:
fabfile.py
从一个Django项目复制到另一个项目fabfile.py
(例如,将webserver_restart
任务从Apache更改为Nginx,配置主机和SSH端口等)。此工作流程的一个优点是fabfile.py
成为我的Git存储库的一部分,因此在fabfile.py
和pip requirements.txt
之间,我有可重新创建的virtualenv和部署过程。我希望保持这种优势,同时变得更加DRY。我似乎可以通过以下方式改进我的工作流程:
答案 0 :(得分:2)
我已经在这方面做了一些工作,基于类的“服务器定义”包括连接信息,并且可以覆盖以不同方式执行特定任务的方法。然后我的库存fabfile.py(永远不会改变)只是在服务器定义对象上调用正确的方法。