python编程(fabric部署)

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

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


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

查看所有标签

猜你喜欢:

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

Redis 深度历险:核心原理与应用实践

Redis 深度历险:核心原理与应用实践

钱文品 / 电子工业出版社 / 2019-1 / 79

Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。《Redis 深度历险:核心原理与应用实践》作者老钱在使用 Redis 上积累了丰富的实战经验,希望帮助更多后端开发者更快、更深入地掌握 Redis 技能。 ......一起来看看 《Redis 深度历险:核心原理与应用实践》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

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

RGB CMYK 互转工具