Fabric一个很有意思的自动化发布工具

Fabric是一个Python(2.5~2.7)类库和命令行工具。官网的对该程序的定位是:Pythonic remote execution

Fabric提供了一套解决方案:执行本地或远程命令(包括通过sudo方式)、上传/下载文件,还有一些辅助功能:提示用户输入、终止程序。

安装

pip install fabric

用法

一个栗子,在项目中新建fabfile.py文件,内容如下:

# coding=utf-8
from fabric.api import *
from fabric.colors import *

# 远程服务器登陆使用的用户名
env.user = 'root'
# 需要进行操作的服务器地址
# env.hosts = ['server1.example.com', 'server2.example.com']
env.hosts = ['你的服务器IP']


def pack():
    # 以 tar 归档的方式创建一个新的代码分发
    local('python setup.py sdist --formats=gztar', capture=False)


def deploy():
    # 之处发布产品的名称和版本
    # dist = local('python setup.py --fullname', capture=True).strip()
    dist = local('python setup.py --fullname', capture=True).strip()
    print green("package name is :%s" % dist)
    # 删除之前残留数据
    run('rm -rf /tmp/Hole /tmp/Hole.tar.gz')
    # 将代码归档上传到服务器当中的临时文件夹内
    put('dist/%s.tar.gz' % dist, '/tmp/Hole.tar.gz')
    # 创建一个文件夹,进入这个文件夹,然后将我们的归档解压到那里
    run('mkdir /tmp/Hole')
    with cd('/tmp/Hole'):
        run('tar xzf /tmp/Hole.tar.gz')
        with cd('Hole-1.0'):
            # 使用我们虚拟环境下的 Python 解释器安装我们的包
            run('/var/www/Hole/venv/bin/python setup.py install')
    # 现在我们的代码已经部署成功了,可以删除这个文件夹了
    run('rm -rf /tmp/Hole /tmp/Hole.tar.gz')
    # 通过supervisor管理进程
    run('supervisorctl restart hole_project')

以上,通过本地打包Python程序,上传到指定的服务器,然后解压安装后,通过Supervisor重启Gunicorn服务。

在终端执行fab pack deploy会执行以上程序,打包并部署。

更多详细内容,请移步官网:http://www.fabfile.org/#
官方文档:http://docs.fabfile.org/en/1.13/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,881评论 6 426
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 19,560评论 4 417
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 4,029评论 1 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,324评论 25 708
  • 2015年6月3号 我失恋了,谈了三年多的我们还是分手了。 很多事情都不是预期般那么美好,就像,我从没想...
    夏可可阅读 511评论 1 0

友情链接更多精彩内容