我可以在一个项目目录中拥有多个Python fabfiles吗?

时间:2015-03-11 16:35:51

标签: python fabric

我的项目在我的计算机上有本地副本,在服务器中有远程副本,服务器1 。目前,当我更改本地副本时,我使用Fabric来更新远程副本。为此,fab文件位于项目的根目录中(例如,project/fabfile.py)。

我想在这个项目中使用Fabric来达到第二个目的。此项目中的一个功能需要连接到另一台服务器 Server 2 。我可以在包含相关代码的项目子目录中创建第二个fab文件(例如project/subdir/fabfile.py)吗?

我是Fabric的新手,所以我只想确保以一种不会导致两个fab文件相互干扰的方式使用Fabric。

另外,因为我是Fabric的新手,我可能没有恰当地描述这种情况。如果您需要了解任何其他信息,请与我们联系。

3 个答案:

答案 0 :(得分:1)

我不能100%确定你想要实现的目标,但这是我的想法。

您通常不需要将fabfile上传到远程服务器。如果您拥有需要部署的所有计算机的密钥,那就更好了。您可以使用hostsroles来操作它们。

如果也可以为-f command line argument的不同计算机使用不同的fabfile

如果我误解了你,请告诉我。

答案 1 :(得分:1)

我了解到一个fab文件对于一个项目就足够了。相反,最好有一个fab文件定义多个函数,每个函数使用不同的服务器。 Fabric documentation提供了几种方法,具体取决于用户的具体需求。

就我而言,我修改了我的单个fab文件,如下所示:

@hosts(server1)
def server1_task():
    ...

@hosts(server2)
def server2_task():
    ...

答案 2 :(得分:0)

你可以放置多个用于结构的python文件,但你只需要用-f来调用它。

例如:

fab -f fabfile2 server2_task`

这对于存储具有不同目的的fabfiles非常有用