fabric定义任务


定义一个任务

fabric主要是用来完成运维任务,所以代码的主要部分由任务组成。在fabric中,定义一个函数,就代表一个任务,如:

def hello():
    print("Hello world!")

上面的函数,就定义了一个hello任务。

可以通过如下的命令执行任务:

fab -f 文件名.py hello

fabric给任务加上参数

和你平时的 Python 编程一样,给任务函数传递参数很有必要的。Fabric 支持 Shell 兼容的参数用法: <任务名>:<参数>, <关键字参数名>=<参数值>,... 用起来就是这样,下面我们用一个 say hello 的实例来展开说明一下:

在fabfile.py中定义第二个函数:

def hello2(name="world"):
    print("Hello %s!" % name)

执行命令

fab hello2:xxx

结果:

Hello xxx!

Done.

也可以执行命令

fab hello2:name=xxx

多个参数需要加逗号隔开,如

fab hello2:name=xxx,name2=xxx

注意:目前,参数值只能作为 Python 字符串来使用,如果要使用列表这样的复杂类型,需要一些字符串操作处理。