我的项目在我的计算机上有本地副本,在服务器中有远程副本,服务器1 。目前,当我更改本地副本时,我使用Fabric来更新远程副本。为此,fab文件位于项目的根目录中(例如,project/fabfile.py
)。
我想在这个项目中使用Fabric来达到第二个目的。此项目中的一个功能需要连接到另一台服务器 Server 2 。我可以在包含相关代码的项目子目录中创建第二个fab文件(例如project/subdir/fabfile.py
)吗?
我是Fabric的新手,所以我只想确保以一种不会导致两个fab文件相互干扰的方式使用Fabric。
另外,因为我是Fabric的新手,我可能没有恰当地描述这种情况。如果您需要了解任何其他信息,请与我们联系。
答案 0 :(得分:1)
我不能100%确定你想要实现的目标,但这是我的想法。
您通常不需要将fabfile
上传到远程服务器。如果您拥有需要部署的所有计算机的密钥,那就更好了。您可以使用hosts或roles来操作它们。
如果也可以为-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非常有用