使用Python脚本运行Fabric

11

我发现大部分的Fabric API都是与函数一起使用的。

示例文件(sample.py):

from fabric.api import *
print "Hello"

def deploy():
    with settings(hosts_string="Remote", user = "ubuntu", key_filename="/home/ubuntu/key.pem"):
        put('/home/localuser/sample.sh', '/home/ubuntu/')
        run('bash /home/ubuntu/sample.sh')

我运行了执行命令。

fab deploy

能否在主函数中运行Fabric? 这样当我将其作为Python脚本运行时,Fabric将被执行。

python ./sample.py

谢谢!

2个回答

19
直接回答你的问题,你可以在文件中添加以下片段:
from fabric.api import *
print "Hello"

def deploy():
    with settings(host_string="Remote", user = "ubuntu", key_filename="/home/ubuntu/key.pem"):
        put('/home/localuser/sample.sh', '/home/ubuntu/')
        run('bash /home/ubuntu/sample.sh')

if __name__ == '__main__':
   deploy()

当你运行python ./sample.py时,它将执行与fab deploy相同的操作。

然而,fab命令允许你做比你的简单示例更多的事情。请参阅Fab文档以获取有关fab命令灵活性的更多信息。


4
我认为应该将设置参数改为'host_string'(不是复数形式)。 - Justin

0

你必须提供 Fabric 的 execute 命令。在底部输入 execute(deploy)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接