首页 > 编程语言 > 详细

Python脚本实现项目工程自动远程部署

时间:2015-12-17 14:24:25      阅读:242      评论:0      收藏:0      [点我收藏+]

说明:

该脚本实现将本地的项目工程包远程发送到远程服务器上.并将老版本的项目备份,上传新的项目,本脚本的中的项目自动项目自身的启动脚本.


#!/usr/bin/env  python
#coding:utf-8
#Author Summer
#Create date:2015-07-29
import datetime
import time
from fabric.context_managers import *
from fabric.contrib.console import confirm
from fabric.colors import *
from fabric.api  import *
#本地开发服务器信息
env.local_package_dir=‘/web‘
env.time=time.strftime("%Y%m%d")
env.local_bakcup_dir=‘/tmp‘
env.local_package_name=‘target‘
#远程服务器信息
env.hosts=[‘223.203.219.133‘,‘223.203.219.134‘,‘223.203.219.135‘]
env.port=‘3217‘
env.user=‘root‘
env.password="bJJD2014!@#$xuniSHIJIE2707"
env.remote_package_dir=‘/web‘  
#备份函数
@task
@runs_once
def backup_task():
   print yellow("<--------------开始备份新包-------------->")
   with lcd ("%s" %env.local_package_dir):
          local("tar zcvf %s-%s.tar.gz %s" %(env.local_package_name,env.time,env.local_package_name))
   print blue("<------------新包备份创建成功------------->")
#上传函数
@task
def put_task():
   print yellow("<-------------开始停止服务--------->")
   run (‘%s/%s/APIServer stop‘ %(env.local_package_dir,env.local_package_name))
   print blue  ("<-------------停止服务成功--------->")
   print yellow("<-------------删除旧包------------>")
   run  (‘rm -fr %s/%s*‘ %(env.remote_package_dir,env.local_package_name))
   print blue  ("<-----------旧包删除成功----  ---->")
  
   print yellow("<-----------开始上传新包---  ----->")
   #run ("mkdir %s" %env.remote_package_dir)
   with lcd ("%s" %env.local_package_dir):
     put(‘%s-%s.tar.gz‘ %(env.local_package_name,env.time),‘%s/%s-%s.tar.gz‘ %(env.local_package_dir,env.local_package_name,env.time))
   print blue  (‘<-----------新包上传成功---------->‘)
  
   run (‘tar zxf %s/%s-%s.tar.gz -C %s‘ %(env.local_package_dir,env.local_package_name,env.time,env.local_package_dir))
   print blue  (‘<-------------解压成功------------>‘)
  
   with cd (‘%s/%s‘ %(env.remote_package_dir,env.local_package_name)): 
    run (‘./APIServer start‘)
   print blue (‘<-------APIServer服务运行成功------->‘)
@task
def start():
   backup_task()
   put_task()


本文出自 “不求最好,只求更好” 博客,请务必保留此出处http://yujianglei.blog.51cto.com/7215578/1725597

Python脚本实现项目工程自动远程部署

原文:http://yujianglei.blog.51cto.com/7215578/1725597

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!