python编程(fabric部署)

栏目: Python · 发布时间: 6年前

内容简介: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的其他资料,建议直接看 官网 ,上面的介绍也详细、直观得多。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出WebAssembly

深入浅出WebAssembly

于航 / 电子工业出版社 / 2018-11 / 128.00元

WebAssembly是一种新的二进制格式,它可以方便地将C/C++等静态语言的代码快速地“运行”在浏览器中,这一特性为前端密集计算场景提供了无限可能。不仅如此,通过WebAssembly技术,我们还可以将基于Unity等游戏引擎开发的大型游戏快速地移植到Web端。WebAssembly技术现在已经被计划设计成W3C的标准,众多浏览器厂商已经提供了对其MVP版本标准的支持。在Google I/O ......一起来看看 《深入浅出WebAssembly》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具