ubuntu+tomcat,多环境、自动化部署脚本,git+maven+tomcat+ubuntu

projectName="";
#默认tomcat目录名称,可根据自己需求改成自己的tomcat名称,
tomcatName="tomcat7_8080";

#通过直接杀进程停止tomcat,防止热部署导致服务器内存不足,为了让客户端访问不中断,可以对自己的tomcat做负载
echo "停止$tomcatName"
ps -ef|grep $tomcatName  |grep -v grep|cut -c 9-15|xargs kill -9;
echo "停止成功";

#切换到代码目录
cd /opt/code/your_project-git;
echo "cd /opt/code/your_project-git";

#打印当前git代码分支
echo "当前分支:"
git symbolic-ref --short -q HEAD;
echo "拉取最新代码";

#更新代码
git pull;
echo "拉取完成";
echo "********************************************************************************";
echo "环境变量为:$1";

#多环境情况下,部署环境可通过变量传递,例如测试1环境、测试2环境
echo "maven编译开始";
mvn clean install -P$1;
echo "maven编译完成";

#循环部署项目,不同的项目如果有不同的tomcatName,直接在对应的if中重新指定tomcatName
for arg in "[email protected]"
do
    projectName="";
    contextName=$arg;
    if [ "$arg" = "app" ];
    then
        projectName="app";

    elif [ "$arg"  = "merchant" ];
    then
        projectName="merchant";

    elif [ "$arg"  = "mgmt" ];
    then
        projectName="mgmt";
        tomcatName="tomcat7_8080";

    elif [ "$arg"  = "job" ];
    then
        projectName="job";
    fi

    if [ "$projectName" != "" ];
    then
     #删除tomcat中对应的项目
        echo "删除 /usr/local/tomcat/$tomcatName/webapps/$contextName*";
        rm -rf /usr/local/tomcat/$tomcatName/webapps/$contextName*;
        echo "删除完成";
        echo "********************************************************************************";
     #复制通过maven打包完成的war到tomcat目录
        echo "复制mb-$projectName-web/target/$projectName.war to /usr/local/tomcat/$tomcatName/webapps/$contextName$lang.war";
        cp mb-$projectName-web/target/$projectName.war /usr/local/tomcat/$tomcatName/webapps/$contextName$lang.war;
        echo "复制成功";
        echo "********************************************************************************";

    fi
done

#启动tomcat,如果每个项目对应不同的tomcat,则把启动命令放在对应的循环里面的复制项目命令后面
echo "启动$tomcatName";
sh /usr/local/tomcat/$tomcatName/bin/startup.sh;
echo "启动成功";

  

时间: 2024-10-08 07:00:39

ubuntu+tomcat,多环境、自动化部署脚本,git+maven+tomcat+ubuntu的相关文章

Jenkins持续集成-自动化部署脚本的实现《python》

读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文件的模块化,让每一个应用业务模块更加通用.自动化所执行的命令呢?我也是设计想法本着更加通用平台的原则,至少对于tomcat+java or jav

Jenkins + Git + Maven + tomcat集成环境搭建

折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现"自动构建.部署"web应用. 1.安装环境 操作系统:Centos 6.5 JDK:1.7.x Maven:3.1.x Git: 1.7.1,自建GitLab平台 tomcat:7.x 上述宿主机器2台:192.168.1.194,192,168.1.198,其中194位Jenkins Master,198位slave. 2.第三方安装安装和环境配置 JDK.Git.Mav

Hadoop自动化部署脚本

摘自:http://www.wangsenfeng.com/articles/2016/10/27/1477556261953.html 1 概述 最近自己写了一个Hadoop自动化部署脚本,包括Hadoop集群自动化部署脚本和Hadoop增加单节点自动化部署脚本.需要快速部署Hadoop集群的童鞋可以使用该脚本.这些脚本我在用5台虚拟机进行了测试,如果在使用中还有bug,欢迎指出.本文主要介绍Hadoop集群自动化部署脚本,安装的Hadoop版本为2.6.0. 2 依赖 安装Hadoop2.6

软件自动化部署脚本

2017-11-16 20:19:53 1:设计思路: (1)软件自动化部署脚本,即在一台虚拟机运行脚本,就将其他虚拟机上面的软件安装好了: (2)而前提是自己的机器搭建好了yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库),这样在一台机器上面运行脚本,其他机器可以从这台机器上下载[先安装wget命令],安装[即解压缩的操作],配置环境变量等等[前提是脚本也实现了免密登陆操作实现]: (3)而这些操作可以分成两个过程,如果配置好免密登陆ssh登录,然后使用boo

设置ssh免密码登录脚本(hadoop自动化部署脚本一)

设置ssh免密码登录脚本(飞谷云大数据自动化部署脚本一) 1.#!/bin/sh2.#important note:this script is expected to run on master node3.PWD=hdp4.USER=hdp5.SSHDIR=/home/dhp/.ssh6.7.#create temp dir to store id_pub file8.mkdir $SSHDIR/sshtmp9.10.HOST=(master slave01 slave02);11.12.f

MySQL5.7多实例自动化部署脚本

一.安装说明 mysql5.7.10_onekey_install.sh自动化部署脚本支持mysql5.7.10初始化安装,多实例创建,且使用经过优化后的my.cnf配置文件和mysql.server启动脚本,该SHELL脚本在CentOS6.5_x86_64操作系统测试通过.部署示意图如下: 1.安装方式 需要准备的文件如下,放到同一个目录下,然后执行shell脚本 执行方式: ./mysql5.7.10_onekey_install.sh 3307 端口自定义,要求整数,且不和服务器端口冲突

自动化部署脚本--linux执行sh脚本

自动化部署脚本文件目录: 运行主程序:./install.sh #!/bin/bash SCRIPTPATH=$(cd "$(dirname "$0")"; pwd) Install_log=$SCRIPTPATH/install_log.txt echo "***start install***" > $Install_logecho " workspace is $SCRIPTPATH" | tee -a "

Web系统自动化部署脚本

Web开发的项目,除了在本地直接运行外,还可能经常需要在服务器上部署. 写了个自动化部署的脚本,仅供参考. 不少地方需要配置路径,个人建议使用绝对路径,不用依赖执行脚本时所在的路径. #!/bin/sh #删除源代码目录,重新更新最新代码 echo 'delete git project dir'rm -rf projectecho 'delete project done'echo 'start clone git project'git clone http://git.company.co

jenkins搭建自动化部署平台(svn+tomcat重启)

原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 checkout 然后重新部署服务器,节省开发测试的效率 一.https://jenkins.io/index.html 下载jenkins包(war包) 二.下载完war包   在服务器上最好新建一个tomcat专门用来做jenkins启动的   修改一下server.xml 文件中修改   : (1) 修