内容简介:python编程(fabric部署)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
代码写好了,怎么部署到服务器上面一直是一个问题。过去,我们常常自己用pexpect或者paramiko通过ssh直接拷贝的方法来完成这一工作,这种方法非常暴力而且容易出错。后来有一次机会用了fabric,发现确实不错。通过它,上传、下载、执行服务器程序都能轻松搞定。
1、下载fabric
sudo apt-get install fabric
2、编写fabfile.py
def hello(): print("Hello world!")
3、执行fab文件
fab hello
默认情况下,系统会默认查找fabfile.py这个文件。当然大家也可以用自己喜欢的文件名,比如test.py,这个时候就要这么执行了,
fab -f test hello
4、带参数的task
def hello(name="world"): print("Hello %s!" % name)
这个时候只需要给出自己的参数就可以了,
fab hello:name=Jeff
5、执行本地命令
from fabric.api import local def prepare(): local("ls -l")
6、执行多个命令
from fabric.api import local def test(): local("ls -l") def commit(): local("ls -l") def push(): local("ls -l") def prepare(): test() commit() push()
7、出错处理
fab程序在执行脚本出错的时候会自动终止,不再继续往下执行。
8、远端执行
from __future__ import with_statement from fabric.api import * from fabric.contrib.console import confirm env.hosts = ['user@ip'] def test(): run('ls -l')
9、上传文件
from __future__ import with_statement from fabric.api import * from fabric.contrib.console import confirm env.hosts = ['user@ip'] def test(): l = './*.pdf' r = '~' put(l, r)
9、下载文件
from __future__ import with_statement from fabric.api import * from fabric.contrib.console import confirm env.hosts = ['user@ip'] def test(): r = '~/*.pdf' l = './' get(r, l)
10、远端起服务器程序
对于这种情况,建议先用创建run.sh,将要执行的命令用nohup运行的方式保存在run.sh中。接着,按照如下方式编写脚本运行就可以了,
def deploy(): run('./run.sh', pty=False)
11、其他资料
关于fabric的其他资料,建议直接看 官网 ,上面的介绍也详细、直观得多。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- python编程(webpy + gunicorn + nginx部署)
- linux 部署golang 项目(直接部署和基于nginx部署)
- 部署策略对比:蓝绿部署、金丝雀发布及其他
- 使用Docker容器化部署实践之Django应用部署(一)
- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- 「实战篇」开源项目docker化运维部署-后端java部署(七)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。