Python Fabric 部署工具

 环境:X64 Ubuntu12.04  
Python: Python 2.7.3

Fabric 是基于 SSH 协议的 Python 工具,相比传统的 ssh/scp 方式,用 Python 的语法写管理命令更易读也更容易扩展,管理单台或者多台机器犹如本地操作一般。
整个python脚本需要引入 fabric这个模块:如果你的机子好没有安装有这个模块,在引入模块,执行py脚本的时候会出现下面的错误:
我们可以通过下面的两种方式来安装 fabric 这个模块。
一、通过apt安装,apt-get install fabric      //这个安装的版本不一
二、通过pip安装,pip install  fabric           //这个安装的一般都是最新版本
        如果pip你还没有安装的话,可以用 apt-get install python-pip 进行安装

直接实验下吧。。现在我这里有两台机子,一台是测试机:192.168.1.5 ; 另外一台是模拟服务器:192.168.100
服务器100的web目录是 /var/www/html
新建一个fabfile.py 进行将测试机的代码从版本控制器svn取出并且部署在服务器100上。。
直接帖代码吧。。。。
# -*- coding: utf-8 -* 
#添加中文注释的编码 
#fabfile.py
from fabric.api import *

env.user = 'root'
env.hosts = ['192.168.1.100']
#远程服务器的密码,这个建议不要填写,宁愿在运行的过程输入,因为这是明文显示的,不安全
#env.password = 'testtest'

#从版本库取出,并删除.svn文件
def download():
    local('rm -rf /tmp/newer' )
    local('mkdir /tmp/newer')
    local('svn checkout svn://localhost/newer /tmp/newer')
    local('find /tmp/newer -name ".svn" | xargs rm -rf')

#压缩打包
def pack():
    with lcd('/tmp/'):
         local('tar czvf newer.tar.gz ./newer')

#部署远程服务器目录结构
def display():
    run('rm -rf /var/www/html/tmp')
    run('mkdir /var/www/html/tmp')
    # 将本地的压缩包发送到远程服务器
    put('/tmp/newer.tar.gz','/var/www/html/tmp')

    with cd('/var/www/html/tmp'):
         run('tar xvf newer.tar.gz')

    #都部分目录进行特别处理
    with cd('/var/www/html/newer/public/'):
         run('cp -r ueditor ../../tmp')
    
    with cd('/var/www/html/'):
         run('rm -rf newer')
         run('cp -r /var/www/html/tmp/newer ./')
   
    with cd('/var/www/html/newer/public'):
         run('rm -rf ueditor')
         run('cp -r /var/www/html/tmp/ueditor ./')

# 执行部署
def go():
    download()
    pack()
    display()

************************************华华丽的分割线**************************************************
下面我们执行任务。就可以将newer这个项目从测试机部署到服务器100上了。。
fab go

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值