主体上看别人的脚本,然后和开发协商,做出符合自己的生产脚本................................
脚本一:
#!/bin/bash DATE=`date +%F-%H-%M` PROJECT='HBKeNong-1.0-SNAPSHOT' PROJECT_TARGET='HBKeNong' ROOTDIR='/usr/local' TOMCAT_HOME='/usr/local/test-tomcat-01' #停止tomcat服务 echo '停止test-tomcat-01' sh ${TOMCAT_HOME}/bin/shutdown.sh ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9 cp ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${ROOTDIR}/test_war_backup/test-${PROJECT}-${DATE}.war rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET} mv ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war #启动tomcat服务 echo '启动test-tomcat-01' sh ${TOMCAT_HOME}/bin/startup.sh
脚本二:
#这里需要加上JAVA_HOME的配置,虽然在本地的环境变量中已经配置了,但是远程调用的时候,还是需要配上的,否则执行脚本出错。 export JAVA_HOME=$HOME/java/jdk1.8.0_171 tomcat_home=/home/fangjl/tomcat/apache-tomcat-7.0.88 #【3.1】 停止tomcat变量 SHUTDOWN=$tomcat_home/bin/shutdown.sh #【3.2】 启动tomcat变量 STARTTOMCAT=$tomcat_home/bin/startup.sh #【3.3】 删除项目文件 如果是局部发布这句不需要 这只是正对jenkins整个war发布 rm -rf /home/fangjl/tomcat/apache-tomcat-7.0.88/webapps/report* #得到进程ID 这里也可以简写 如果你ps -ef|grep 项目名称 可以带出PID 那么可以直接写成这样 #之前为什么写那么长 是因为在用jenkins调用脚本的时候,也会带出jenkins调用脚本的那个进程 这样kill -9 就会killjenkins进程 导致一建发布中断 #所以这里一直写到了conf文件夹目录 #如果不需要用到jenkins可以用下面简洁版 得出PID命令 #PID=`ps -ef |grep 项目名称 |grep -v grep | awk '{print $2}'` #【3.4】 获取进程ID PID=`ps -ef |grep /home/fangjl/tomcat/apache-tomcat-7.0.88/conf |grep -v grep | awk '{print $2}'` if [ ! "$PID" ];then # 这里判断TOMCAT进程是否存在 echo "进程不存在" else echo "进程存在 杀死进程PID$PID" kill -9 $PID fi #【3.5】启动项目 $STARTTOMCAT
自己创建一个工程项目:
步骤如下
设置git
设置mvn
自己在生产环境使用的脚本
#!/bin/sh #执行shell脚本 scp -r /var/lib/jenkins/workspace/onXXXXm/member/target/XX.war 47.XX.XX.182:/home/XX.war #到目标服务器47.XX.XX.182推送正式XX.war包服务(执行下面脚本即可) ssh root@47.XX.XX.182 /home/wallet_start.sh
启动脚本:
[root@iZj6c6g9pt4wd4xt1xi69zZ home]# cat wallet_start.sh #!/bin/bash DATE=`date +%F-%H-%M` PROJECT_TARGET='wallet' BACKUP_DIR='/backup' TOMCAT_HOME='/home/cat_wallet' #停止tomcat服务 echo '开始正式更新,祝您一次性更新成功.......................' echo '停止wallet测试项目' sh ${TOMCAT_HOME}/bin/shutdown.sh ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9 echo '正在备份war包' cp ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war ${BACKUP_DIR}/cat${PROJECT}-${DATE}.war echo '正在删除原始war包信息' rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET} echo '将war包移动到项目目录' mv /home/${PROJECT_TARGET}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war #启动tomcat服务 echo '启动wallet项目' sh ${TOMCAT_HOME}/bin/startup.sh
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间:2020-05-16
Publish Over SSH插件使用 在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168.BB.BBB,机器A能够免密登录机器B,机器B能够免密登录机器A,制作方式是: 进入A机器,执行: cd ~ ssh-keygen -t rsa 通过下面的命令,表示可以通过机器192.168.AA.AAA免密登录到机器192.168.BB.BBB ssh-copy-id 192.168.BB.B
背景 公司的前端项目部署方式比较简单,整个过程基本上是手动的: 目标 通过工具实现以下几个任务: 编译.部署自动化: 选择指定版本进行回滚: 区分不同的分支(环境): 技术方案 选用 jenkins 作为部署工具:也便于后续 CI 的接入: 使用 docker 进行编译,确保每次编译的环境的稳定: 步骤 步骤一:搭建 Jenkins 搭建 Jenkins 有很多方案,这里选择使用 docker 搭建. docker-compose.yml 的内容如下: version: '3' services
前端项目打包部署,以前都是手工运行打包命令,打包结束后压缩,然后上传到服务器上解压部署.这种重复性的工作,确实有点让人烦,而且效率也不高. 本文基于 vue 的前端项目. GitHub 的代码仓库,简述在 CentOS7 上利用 jenkins 实现自动部署. 一.安装插件 NodeJS Jenkins -> Manage Jenkins -> Manage Plugins -> Avaliable 搜索 NodeJS,勾选 NodeJS,点击 Install without resta
最近公司在利用jenkins自动部署springboot应用,以前别人配的那个jenkins虽说可以正常部署,但是多次反复部署之后jenkins会报错,提示内存不足: Maven JVM terminated unexpectedly with exit code 137 原因是因为jenkins没有配置部署新的应用前先把旧的应用进程先kill掉而导致在服务器上有多个应用进程.因此自己决定摸索如何配置jenkins可以每次部署都把旧进程kill掉再启动新进程. 安装Jenkins 安装命令: s
本文主要讲解利用Jenkins实现spring boot项目的自动化部署: •1.后台技术架构:Spring boot 1.4.2.RELEASE +Mybatis 3+ Redis+ Mysql 5.6+JDK8; •2.代码构建工具:maven 3.3; •3.源代码托管工具:Gitlab; •4.利用maven的docker插件打包成docker镜像在docker容器中部署项目: •5.服务器是阿里云的ECS; 一.安装Jenkins 1.阿里云服务器安装Jenkins方式见如下链接地址
一.nodejs配置 首先加入nodejs插件 –>–> 在配置里面配置这个插件 –> 这样我们就能在自动构建发布的配置里看到nodejs的编译选项了 二.发布配置 首先新建一个自由风格的项目 然后配置构建保留天数和参数化构建 这里选择在svn上的资源,配置好访问的用户信息 这样我们在构建的时候能看到项目的不同版本 接下来选择构建的数据源位置 echo $PATH node -v npm -v npm install chromedriver --chromedriver_cdnurl=
今天我们来说一下,如何使用Jenkins+powershell脚本,将我们的.NET CORE的脚本部署到对应的服务器上. 这里我们使用的源码管理工具是TFS.虽然源码管理器比较老旧,但是原理都差不多. 1.安装Jre,因为我们的Jenkins是基于java开发的,所以需要先在服务器上安装java的运行时环境 这个安装过程比较简单,百度下载JRE,然后安装,暂且不表. 下载地址:https://www.java.com/en/download/manual.jsp 2.下载并安装Jenkins,
最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 上面是我从百科上down下来的,老实说没看懂,这是个什么玩意啊?其实以我现在的理解和应用,最多的便是部署了,其他功能待研究╮(╯_╰)╭撸主目前在上海一个不知名国企打工,我们现在项目的发布流程
简介 在我们的开发过程中,我们不可避免的会用到版本控制.当然,这也致使你对 Git 和 SVN 有所了解.两者都是出色的版本控制工具,我个人比较习惯用 Git,当然这可能和个人习惯有关.不知道大家一开始是怎么使用 git 进行开发的,反正我个人是先将代码提交到 github 仓库,然后用 SSH 登录到服务器,然后进行克隆或者版本更新.听起来就很麻烦,当然实际操作中也很麻烦,那么有什么可以 "一劳永逸 " 的办法呢?请往下看! 简单使用 Git 钩子 什么是 git 钩子呢?官方解释有
本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker部分 1.1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口 1.2.docker架构 简单的说,docker就是一个轻量级的linux系统.Docker 容器通过 Docker 镜像来创建.
项目的自动化部署在大公司或独角兽中用得比较多,相比来进行手动部署项目来说会更加高效.那么本文结合之前学习的docker知识点以及nginx来简单实现VueJs项目的自动部署,当然针对其他项目也类似. 运行环境 首先需要在服务器上进行docker.nginx.node等的安装.便于进行后续的操作. 通过docker拉取nginx镜像,命令docker pull nginx 通过vue-cli初始化一个项目 可以通过vue init webpack 项目名称初始化一个项目,这里假设项目名称是dock
前言 本文主要介绍了关于.Net Core自动化部署用docker版jenkins部署dotnetcore应用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的实现步骤吧. 安装docker版jenkins 因为jenkins的docker版本本身没有 dotnetcore的环境,所以我们需要先自己动手制作下包含dotnet环境的jenkins Docker Container Dockerfile FROM jenkins/jenkins # Switch to root t
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1.掌握项目开发的基本步骤 2.具备极强的面向对象的分析与设计技巧 3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!
本篇文章讲的不是如何把一个项目部署上线,而是如何自动化上线. 开发了一个需求管理和发布系统. 通过这个系统,可以创建需求.创建发布计划.创建分支.部署到测试环境.部署到生产环境.正式上线.合并代码等. 一.功能设计 9.9元的阿里云服务器真的很慢,但还是足够折腾完这个项目. 用3个目录来模拟不同的环境. 目录 存放 project 存放所有的项目,比如本系统的前后端代码. pre-dir 预发环境,当然是用来测试的. pro-dir 生产环境,测试没问题,部署上线. 一图胜千言. 二.系统页面