Fabric自动部署太方便了

之前不知道有Fabric工具,每次发布程序到服务器上的时候,基本流程:本地打包程序 -> Ftp上传 -> 停服务器Apache -> 覆盖文件 -> 启动Apache, 非常繁琐。

前几天无意发现了Fabric工具,研究了一下,现在我通过该工具发布程序只要一条指令即可:

fab pack deploy

具体如何实现的,请看实例,你只需要在你的程序跟目录下添加fabfile.py文件,内容参考如下:

#!/usr/bin/env python

from fabric.api import *

# Configure user, private key, etc. for SFTP deployment
env.user = ‘root‘
env.hosts = [‘SERVER IP‘]

def pack():
    local(‘npm run build‘, capture=False)
    local(‘python setup.py sdist --formats=gztar‘, capture=False)

def deploy():
    dist = local(‘python setup.py --fullname‘, capture=True).strip()

    # clean up
    sudo(‘rm -rf /tmp/towerres /tmp/towerres.tar.gz‘)

    put(‘dist/%s.tar.gz‘ % dist, ‘/tmp/towerres.tar.gz‘)

    # stop apache
    run(‘apachectl stop‘)

    # remove priouse folder
    run(‘rm /home/maplye/httpd/towerresource/towerres -rf‘)
    run(‘rm /home/maplye/httpd/towerresource/migrations -rf‘)

    # copy
    run(‘mkdir /tmp/towerres‘)
    with cd(‘/tmp/towerres‘):
        run(‘tar zxf /tmp/towerres.tar.gz‘)

        run(‘cp -rf /tmp/towerres/%s/towerres /home/maplye/httpd/towerresource/‘ % dist)
        run(‘cp -rf /tmp/towerres/%s/migrations /home/maplye/httpd/towerresource/‘ % dist)

    # run
    with cd(‘/home/maplye/httpd/towerresource‘):
        run(‘chown -R apache:apache towerres‘)
        run(‘python manage.py db upgrade‘)

    # start apache
    run(‘apachectl start‘)

    # clean up
    sudo(‘rm -rf /tmp/towerres /tmp/towerres.tar.gz‘)

  具体参照官网: http://www.fabfile.org/

  中文文档: http://fabric-docs-cn.readthedocs.org/zh_CN/latest/

时间: 2024-10-05 05:58:19

Fabric自动部署太方便了的相关文章

httpd+dnsmasq+kickstart部署系统真是太方便了

弄个虚机桥接一下,装系统那叫一个方便! 搭建这样一个kickstart平台非常简单快捷,只需要用yum装个dnsmasq就万事大吉了. #dnsmasq的配置文件以下行的注释去掉,并修改dhcp范围和tftp的根目录. bogus-privfilterwin2kinterface=eth0dhcp-range=192.168.44.100,192.168.44.120,12hdhcp-boot=pxelinux.0enable-tftptftp-root=/var/ftpddhcp-author

Delphi xe8 分割字符串太方便了

procedure TForm1.Button2Click(Sender: TObject); var m_Str: string; m_StrList: TArray<string>; I:Integer; begin m_Str := Memo1.Text; m_StrList := m_Str.Split(['n你好', '啊&']); for I := 0 to High(m_StrList) do begin Memo1.Lines.Add(m_StrList[I]); en

Python fabric远程自动部署简介

2.1.    Hello,fab 1. 在当前目录下新建文件fabfile.py,输入内容如下 1 def hello(): 2   3     print("Hello fab!") 2. 执行命令fab hello,结果如下 1 # fab hello 2   3 Hello fab! 3. 文件名不为fabfile.py时需进行指定 1 # mv fabfile.py test.py 2   3 # fab hello 4   5    6   7 Fatal error: C

fabric自动化部署django

使用fabric部署django应用 使用fabric部署django应用 本文是我的网站易读中文网自动化部署的脚本实现,以下代码在ubuntu和debian中测试通过 由于网站使用的是python技术,鉴于python的强大,在自自动部署上有fabric这个一个强大的工具,阅读本文除了略懂python,fabric,还需要安装fabtools,安装这个是为了简化一些基本的操作(为不太懂linux的人找的借口而已),里面封装了非常多的命令.下面我一步一步的将我网站的自动部署过程写下来 首先是fa

kickstart自动部署centos

kickstart自动部署centos 工作中,我们有时候需要安装几十上百台服务器,这种情况下用u盘或者光驱逐台安装,太花时间与人力,显然不现实,所以应该选择自动化部署操作系统的方式,自动化部署操作系统的工具有很多,这里我用的是kickstart这个工具. kickstart原理: kickStart是一种无人职守安装方式.KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件:在其后的安装过程中(不只局限于生成KickStart安装文

jenkins实现项目自动部署

背景 整体思路 实现方式 1 自动化部署脚本 2 远程执行 3 配置jenkins任务 背景 之前给公司搭建过一套gitlab+gerrit+jenkins的持续集成环境,由于操作起来有点繁琐,自己也没太搞清楚该怎么用,所以一直就只用了gitlab来做代码管理.最近要做一个项目自动部署的功能,使用过jenkins一定知道他的自动化功能.所以就从jenkins创建自动部署任务的方式来入手. 整体思路 jenkins可以配置触发器,当有新的提交时,触发执行相应的任务.由于jenkins和项目部署不在

使用MDT制作自动部署的U盘

今天来谈谈自动部署的话题,使用MDT自动部署windows在之前的博客中就已经提到很多了,有兴趣的同学们可以去看看MDT实现"零接触"部署,之前谈到的MDT部署都是通过网络的方式,这对于网络环境较好的企业来说是个很方便的事,但是某种情况下当企业拥有众多的分支机构时,通过网络部署的方式就会大打折扣了,这时候我们就可以用上今天谈到的一个技术,我们可以通过MDT自主一个自动部署的U盘,他的效果和通过网络使用MDT部署是一样的,只不过他们传输的介质有所不同. 来看下我们的实验环境,环境很简单,

【自动部署该怎么做?】

剖析AWS CodeDeploy 作者 刘涛 发布于 2015年5月13日 | 注意:GTLC全球技术领导力峰会,500+CTO技聚重新定义技术领导力!讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 2014年底,AWS在“re:invent”大会上发布了三个新的部署.管理服务CodeDeploy ,CodeCommit和CodePipeline.此前AWS已经提供Beanstalk,Opsworks,CloudFormation等部署与管理服务,

VMware利用ovftool自动部署/导出模板

一.简介 OVF(Open Virtualization Format)是多家虚拟化厂商和硬件厂商共同定义的一个虚拟设备的规范,ovf格式的虚拟设备(其实就是一些文件)可以被多家虚拟化软件设备并import到虚拟化环境,比如VMware.XenServer.VirtualBox等等.OVF一般有几个部分组成,分别是ovf文件.mf文件.cert文件.vmdk文件和iso文件.OVF(Open Virtualization Format:开放虚拟化格式 )和OVA(Open Virtualizat