首页 > 编程语言 >Jenkins java服务更新和回滚

Jenkins java服务更新和回滚

时间:2022-10-27 15:25:13浏览次数:42  
标签:回滚 git java Ddir host version && Jenkins ROOT

[root@jenkins scripts]# cat java_deploy_tag_rollback.sh 
#!/bin/bash
DATE=$(date +%Y-%m-%d-%H-%M-%S)
web_server="192.168.220.143 192.168.220.144"
Sdir=/opt
Ddir=/apps/tomcat/webapps
Tomcat_Home=/apps/tomcat
Name=${DATE}-${git_version}

# 1 进入项目目录,将内容进行打包
get_code(){
    #cd /var/lib/jenkins/workspace/freestyle-monitor && \
    echo ${WORKSPACE}
    cd ${WORKSPACE}
}


# 2 将内容通过scp拷贝至web集群组
scp_web_server(){
    for host in $web_server
    do
        scp target/*.war root@$host:/opt/ROOT-${DATE}-${git_version}.war
        ssh root@$host "mkdir -p ${Ddir}/ROOT-${DATE}-${git_version} && \
                unzip /opt/ROOT-${DATE}-${git_version}.war -d ${Ddir}/ROOT-${DATE}-${git_version} && \
                rm -rf ${Ddir}/ROOT && \
                ln -s ${Ddir}/ROOT-${DATE}-${git_version} ${Ddir}/ROOT && \
                        ${Tomcat_Home}/bin/shutdown.sh && ${Tomcat_Home}/bin/startup.sh"
    done
}

deploy(){
    get_code
    scp_web_server
}
rollback(){
    
    echo "开始准备回退..."
    for host in $web_server
        do
            back_file=$(ssh root@$host "find ${Ddir}/ -maxdepth 1 -type d -name "\\*-${git_version}"")
            # back_file=$(ssh root@$host "find ${Ddir} -maxdepth 1 -type d -name "${git_version}"")
        echo -e "back_file=  ${back_file}"
            ssh root@$host " rm -rf ${Ddir}/ROOT && \
                                ln -s ${back_file} ${Ddir}/ROOT && \
                ${Tomcat_Home}/bin/shutdown.sh && ${Tomcat_Home}/bin/startup.sh"
        done

}
echo `whoami`

if [ $deploy_env == 'deploy' ];then
    if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
        echo "您已经部署过该${git_version}版本"
        exit 1
    else
        deploy
    fi
elif [ $deploy_env == 'rollback' ];then
    rollback
fi

Jenkins java服务更新和回滚

标签:回滚,git,java,Ddir,host,version,&&,Jenkins,ROOT
From: https://www.cnblogs.com/zhouzhiguo/p/16832339.html

相关文章

  • 【Java】线程的死锁
    1.死锁不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。说明:出现死锁后,不会出现异常,不会出现提示,只是所有的线程......
  • VS Code 配置JAVA环境
    1.首选添加如中文不好可先添加中文语言包,2.添加DebuggerforJava3.添加ExtensionPackForJava4。添加LanguageSupportfor Java至此,简单的学习环境已可以 ......
  • Java8新特性3:Stream流
    回顾之前《JavaSE-23.2》:https://www.cnblogs.com/yppah/p/14900824.htmlhttps://www.cnblogs.com/yppah/p/14900829.htmlhttps://www.cnblogs.com/yppah/p/14900834.ht......
  • Java多线程(4):ThreadLocal
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~​为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间),于是工程师们......
  • 【idea】创建一个java项目
    1、文件-新建-项目-选择java模块选择SDK   2、下一步   3、输入项目名称和项目位置,点击完成  4、打开新建项目     5、在src目录......
  • 使用 WxJava 发布公众号图文
    一个Demo,记录一下发布公众号图文时需要用到的接口公众号开发时需用到的一些网站微信官方文档平台,开发公众号只用查看公众号那一块微信公众平台接口测试帐号申请,申......
  • JAVA---4种内部类
    1.局部内部类java类的五个特性:属性,方法,构造器,代码块,内部类 2.匿名内部类  3.成员内部类    4.静态内部类       小结 ......
  • 基于Java websocket的公共聊天程序
    实验中使用的是tomcat的websocket,由于程序部署到apache-tomcat-8.5.24上,所以只需额外添加消息Json解析包:json-org。实际使用中注意修改目标地址:ws://localhost:8080/GameDem......
  • [Java代码审计]javacon WriteUp
    文章目录​​写在前面​​​​javacon​​写在前面在P神星球看到的,这里学习一下,文件在​​https://www.leavesongs.com/media/attachment/2018/11/23/challenge-0.0.1-SNAPS......
  • Java中getResourceAsStream方法返回null
    原因:我存放资源的文件并不是源根,所以我们的方法是无法访问到的。所以返回null指针!解决办法:鼠标右键点击要读取配置文件的文件夹将文件夹标记成ResourcesRoot就可以......