我本周为我们的开发人员编写了一个fabfile,以帮助将数据库和文件部署到远程登台和生产环境。它是一个相当复杂的fabfile,它使用配置的json文件来帮助设置生产/暂存env变量。
我的问题是我可以以某种方式将我的fabfile添加到/ usr / bin以全局运行fabfile。能够运行命令而无需将fabfile复制并传递到每个webroot(设计机构问题)。
理想情况下,我可以这样做:
fab deploy
在Sites / site.dev /或Sites / site2.dev /中,无需将fabfile复制到这些目录中。我认为必须有一种方法可以使用别名来实现这一点,但我的知识太弱,无法完成这项工作。
我的系统是osx。
答案 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.