是否可以将fabfile作为全局脚本运行

时间:2014-07-21 17:48:07

标签: python shell system fabric

我本周为我们的开发人员编写了一个fabfile,以帮助将数据库和文件部署到远程登台和生产环境。它是一个相当复杂的fabfile,它使用配置的json文件来帮助设置生产/暂存env变量。

我的问题是我可以以某种方式将我的fabfile添加到/ usr / bin以全局运行fabfile。能够运行命令而无需将fabfile复制并传递到每个webroot(设计机构问题)。

理想情况下,我可以这样做:

fab deploy

在Sites / site.dev /或Sites / site2.dev /中,无需将fabfile复制到这些目录中。我认为必须有一种方法可以使用别名来实现这一点,但我的知识太弱,无法完成这项工作。

我的系统是osx。

2 个答案:

答案 0 :(得分:3)

我想我解决了我的困境。事实证明,您可以使用-f标志指定fabfile位置。从这里为像

这样的命令创建别名非常简单
alias deployfiles='fab -f ../devops/fabfile.py syncfiles'

$ deployfiles
很明显,很惊讶没有人给出这个解决方案。

答案 1 :(得分:2)

在Mac上,另一种选择是将以下内容添加到fab文件的顶部:

#!/usr/bin/env fab -f

def boo():
    print 'x'

然后你可以像这样运行它:

(venv)machine:soft kane$ ./test.py -l
Available commands:

    boo
(venv)machine:soft kane$ ./test.py boo
x

Done.