我将许多任务定义为任务子类,并且我将 roledef 设置为类似于以下内容:
env.roledefs = { "web": ["1.2.3.4"], "db": ["5.6.7.8"] }
class Foo(Task):
name = "foo"
def run(self):
pass
foo = Foo()
使用 @roles 装饰器,如果它们是模块中的函数,我可以装饰任务,但我不确定如何将其应用于 Task 类。装饰类或其运行函数似乎不起作用。
我正在使用 Fabric 1.4.0
请您参考如下方法:
认为您应该能够像这样使用 init:
def __init__(self):
env.roles = ['web']
或使用执行:
execute(foo, roles='web')
