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="[email protected]#$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()
时间: 2024-10-09 00:27:33

Python脚本实现项目工程自动远程部署的相关文章

cocos2d-x使用python脚本创建项目的简单方法

本文有CC原创.转载请注明地址:http://blog.csdn.net/oktears/article/details/13297003 在cocos2d-x2.1.4以上的版本号中.取消了使用vs模版创建项目的方法,開始使用python脚本创建项目,使用python创建项目须要在命令行敲非常多指令,比較麻烦. 我把这些命令组合在一起,放在了一个批处理文件里.直接双击打开批处理文件就能够通过几个简单的指令来创建项目. 第一步: 新建一个txt文件.将以下这段代码拷贝进去,保存文件.将文件名称改

Python脚本实现项目远端部署

本文为博主原创文章,未经博主允许不得转载! update-link.py 1 #!/usr/bin/python 2 import sys, os 3 import argparse 4 import subprocess 5 from distutils.version import LooseVersion 6 import re 7 def main(): 8 kwargs = parse_argv(sys.argv[1:]) 9 module = kwargs.module[0] 10

[原]基于Telnet协议的Jenkins远程部署

最近奉命研究Jenkins的自动远程部署,刚开始进行还算顺利.但是,紧接着问题就来了,我们要部署的目标机器是Telnet协议的.而接触过jenkins的都知道,所有的插件里面只有用于本地部署的和基于SSH协议远程部署的,并没有一个是基于Telnet协议的.那么这该怎么解决呢? 当然,你也可以为你的目标机器安装SSH服务. 我先说说解决的思路,然后再附上具体的步骤和shell脚本. 思路:将jenkins安装在linux系统上 --->  SVN check out 部署的项目  --->  m

用python编写ios工程自动编译、打包ipa等脚本

第一次使用python请先看:http://my.oschina.net/LangZiAiFer/blog/298763 代码管理我用的是Git: 工程clone如下: def gitClone(): os.system ('git clone https://[email protected]/xxx/goccia.git ~/desktop/20140804') return https://[email protected]/xxx/goccia.git是git服务器路径,不必care:~

Eclipse+Maven远程部署项目到Tomcat中

使用maven的自动部署功能可以很方便的将maven工程自动打包并且部署到远程tomcat服务器,省去一些繁琐的操作,节省大量时间. 我使用的tomcat版本是8.5,tomcat7和tomcat8都可以,安装配置过程比较简单,在此就省略了. 以下是我的安装部署过程: 1.配置tomcat 先是修改tomcat-users.xml文件,该文件在安装目录的conf文件夹下面,我的是在/usr/local/apache-tomcat-8.5.11/conf,在<tomcat-users></

使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)

1.下载jenkins 地址:https://jenkins.io/index.html 本人下载了2.19.3版本的war包:jenkins.war 2.安装jenkins 拷贝jenkins.war到tomcat的webapps文件夹下,如果tomcat是启动的,jenkins项目会自动解压启动的,如果tomcat是停止的,需要启动tomcat服务,进入bin文件夹,linux环境下执行 ./startup.sh即可启动服务,windows下双击startup.bat即可. 然后,访问地址:

jenkins2.0以后的版本提供自动部署和远程部署功能?

metting result comment: 持续集成:dev上使用 持续部署:在dev/uat/prod上使用 1.指定时间自动构建--发布第二天挂了?每次构建需要重新编译?qa和uat使用同一套部署? 答:可以设置手动发布还是自动指定时间发布:每次构建是重新build;qa和uat是集群的部署,不应该使用一套.应该qa完成后自动发布到uat 1.自动构建并发布版本,选择对应服务器,配置,添加构建脚本(baidu)自动发布 2.远程发布:可以通过远程控制发布 3.项目先后顺序配置:通过设置

图文详解远程部署ASP.NET MVC 5项目

原文:图文详解远程部署ASP.NET MVC 5项目 话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手,还望大虾勿喷,有什么问题,还望高手指点. 一.本文实验环境: Windows Server 2012 R2 SQL Server 2012 Express Visual Studio 2013 项目为:ASP.NET MVC 5.0,使用的是L

用Ant实现Java项目的自动构建和部署

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.             安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本.解压到某个目录(例如E:\apache-ant-1.7.0),即可使用. 添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:\apache-ant-1.7.0. 安装与