码迷,mamicode.com
首页 > 编程语言 > 详细

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

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

标签:python 远程 部署 项目

说明:

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


#!/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脚本实现项目工程自动远程部署

标签:python 远程 部署 项目

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!