标签:
安装: pip install fabric 或easy_install fabric
验证:
#python
>>> import fabric
Fabric提供几个简单的API来完成所有的部署,最常用的是local()和run(),分别在本地和远程执行命令,put()可以把本地文件上传到远程,当需要在远程指定当前目录时,只需用with cd(‘/path/to/dir/‘):即可。
默认情况下,当命令执行失败时,Fabric会停止执行后续命令。有时,我们允许忽略失败的命令继续执行,比如run(‘rm /tmp/abc‘)在文件不存在的时候有可能失败,这时可以用
with settings(warn_only=True):执行命令,这样Fabric只会打出警告信息而不会中断执行。
Fabric是如何在远程执行命令的呢?其实Fabric所有操作都是基于SSH执行的,必要时它会提示输入口令,所以非常安全。更好的办法是在指定的部署服务器上用证书配置无密码的ssh连接。
------------------------------------------------------------
Finally, I was able to figure out how to startup tomcat remotely with fabric.
The issue was in background tasks as they will be killed when the command ends.
The solution is simple: just add "set -m;" prefix before command. The full fabric command should be:
sudo(‘set -m; /opt/tomcat/bin/startup.sh‘)
例如:
@task def starttomcat(): with cd(env.tomcatpath): run("set -m ; sh ./bin/startup.sh") print yellow ("41 tomcat for callback already started!")
标签:
原文地址:http://www.cnblogs.com/wjoyxt/p/5009505.html