5

Fabric已成为我部署Django项目和初始配置 Ubuntu切片的首选部署工具。但是,我目前使用Fabric的工作流程不是很干燥,因为我发现自己:

  1. 将Djangofabfile.py项目从一个项目复制到另一个项目,然后
  2. 根据需要为每个项目修改fabfile.py(例如,将webserver_restart任务从 Apache 更改为 Nginx,配置主机和 SSH 端口等)。

此工作流程的一个优点是它fabfile.py成为我的Git存储库的一部分,因此在fabfile.pypip requirements.txt之间,我有一个可重新创建的virtualenv和部署过程。我想保持这种优势,同时变得更加DRY。看来我可以通过以下方式改进我的工作流程:

  1. 能够完成和pip install中定义的常见任务fabfile.py
  2. 拥有一个fab_config包含每个项目的主机配置信息的文件,并根据需要覆盖任何任务

关于如何增加我的Fabric工作流程的DRY ness 有什么建议吗?

4

1 回答 1

2

我已经在这个方向上做了一些工作,使用基于类的“服务器定义”,包括连接信息,并且可以覆盖方法以不同的方式执行特定任务。然后我的股票 fabfile.py(它永远不会改变)只是在服务器定义对象上调用正确的方法。

于 2010-04-05T12:25:51.707 回答