跨多个项目共享fabfile

时间:2010-03-31 14:54:54

标签: deployment workflow dry fabric pip

Fabric已成为部署Django项目和初始配置Ubuntu slices的首选部署工具。但是,我现在的Fabric工作流程并不是DRY,我发现自己:

  1. fabfile.py从一个Django项目复制到另一个项目
  2. 根据需要修改每个项目的fabfile.py(例如,将webserver_restart任务从Apache更改为Nginx,配置主机和SSH端口等)。
  3. 此工作流程的一个优点是fabfile.py成为我的Git存储库的一部分,因此在fabfile.pypip requirements.txt之间,我有可重新创建的virtualenv和部署过程。我希望保持这种优势,同时变得更加DRY。我似乎可以通过以下方式改进我的工作流程:

    1. 能够pip install fabfile.py
    2. 中定义的常见任务
    3. 有一个fab_config文件,其中包含每个项目的主机配置信息,并根据需要覆盖任何任务
    4. 有关如何提高DRY工作流程Fabric的任何建议?

1 个答案:

答案 0 :(得分:2)

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