Jenkins部署项目

news2024/9/25 13:15:41

一.安装jenkins

1.1进入jenkins官网下载jenkins war包,上传到服务器/usr/local目录。

1.2执行启动jenkins命令,(注意jenkins版本需要的jdk版本)

/usr/local/java11/bin/java -Djava.awt.headless=true -jar /usr/local/jenkins.war --webroot=/jenkins/war --httpPort=8020

 1.3 访问Jenkins页面: http://ip:8020

二.安装git拉取项目

2.1 服务器安装git,执行安装命令

yum install git

2.2 将项目clone到本地

#创建项目文件夹

mkdir -p /data/summarize/git

cd /data/summarize/git

git clone http://xxx/summarize.git

 2.3 需要保存git用户密码,执行以下命令再次输入git账号密码

git config --global credential.helper store

git pull

 2.4 创建jar目录,用于放入jenkins打包的jar,并在该目录下创建启动脚本

mkdir -p /data/summarize/jar

编写shart.sh脚本 

cd  /data/summarize/jar

vim start.sh

脚本内容 

#jar名称
Tag="summarize-0.0.1-SNAPSHOT.jar"
# 检查进程状态
pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then      
  echo -n "boot ( pid $pid) is running" 
  echo 
  echo -n $"Shutting down boot: "
  pid=$(ps -ef | grep -v 'grep' | egrep $Tag| awk '{printf $2 " "}')
  if [ "$pid" != "" ]; then
    echo "kill boot process"
    # kill  "$pid"
    kill -9 "$pid"
  fi
else 
   echo "boot is stopped" 
fi
# 启动项目
nohup java   -Dappliction=$Tag -jar $Tag  > console.out 2>&1   &

 三.Jenkins配置

3.1 全局属性环境变量,添加如下配置,该配置解决执行start.sh脚本不生效问题 

 

 3.2 配置jenkins任务,选择自由风格

完整配置如下,其它都不用管。

 shell脚本内容,maven需要提前上传到/usr/local目录,配置settings.xml文件。

#进入项目目录

cd /data/summarize/git/summarize

#同步最新代码

git stash
git pull
git stash pop

#maven打包
/usr/local/maven/bin/mvn clean install -Dmaven.test.skip=true

#移动打包的jar到目录
mv target/summarize-0.0.1-SNAPSHOT.jar /data/summarize/jar/

#进入目录
cd /data/summarize/jar
chmod 777 start.sh

#启动脚本
sh start.sh

保存之后构建即可自动化部署服务了。 

四.多台服务器部署服务

在生产环境中,服务部署需要同时部署到多台服务器并启动,那么该如何操作呢?其实只需要改下jenkins配置脚本内容,添加rsync命令同步文件夹到其它服务器,ssh远程连接执行脚本即可。(注:服务器之间需要提前配置免密登录)

#进入项目目录

cd /data/summarize/git/summarize

#同步最新代码

git stash
git pull
git stash pop

#maven打包
/usr/local/maven/bin/mvn clean install -Dmaven.test.skip=true

#移动打包的jar到目录
mv target/summarize-0.0.1-SNAPSHOT.jar /data/summarize/jar/

#同步目录到远程服务器

rsync -avr /data/summarize/jar root@47.109.145.59:/data/summarize/jar

#远程连接,进入目录启动脚本

ssh root@47.109.145.59 "cd /data/summarize/jar; sh start.sh; "

#进入本地目录
cd /data/summarize/jar
chmod 777 start.sh

#启动脚本
sh start.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大文件快速传输解决办法汇总

在数据传输普及的当今时代,文件体量也在不断的突破它”大“的上线,很多企业也在面临着这类大文件快速传输的烦恼,而且这里面的“大”可不是一般意义的几M,几G的文件,它有可能上T级甚至是PB级别、TB级别的大文件,或者是…

使用 Docker 部署 SSCMS 内容管理系统

1)SSCMS 介绍 官网:https://sscms.com/ GitHub:https://github.com/siteserver/cms SSCMS 基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。 2&#…

​如何把图片里背景的路人P掉?教你四种方法消除路人

在日常生活中,我们经常会遇到需要将图片中背景的路人P掉的情况。有时候,这些路人会破坏图片的整体美感,或者我们只想要图片中的某些元素,而路人的出现会分散注意力。那么,如何才能有效地将图片中的背景路人P掉呢&#…

2023我的编程之旅-地质人的山和水

引言 大家好,我是搞地质的。外行人有的说我们游山玩水,有的说我们灰头土脸,也有的说我们不是科学。 而我说,这是一门穷极一生青春,值得奉献的行业。这是一门贴近民生,又拥抱自然的学科。他的真理性在于探…

记事本在手机桌面上怎么找?手机里的记事本怎么找?

在日常生活、工作和学习中,我们时常需要随手记录一些重要的事项、灵感闪现的瞬间或者是待办的任务。比如,在超市购物前,列出购物清单;在开会时,记下重要的讨论点;在学习时,捕捉那一刹那的灵感。…

蓝桥圣诞树(C++)

问题描述 输入样例: 1 3 101 1 2 2 3 输出样例: YES 思路: 这道题还是比较好想的,因为它构造的二叉树是用边连接起来的,不是像之前一样从上到下从左到右按编号构造的,所以可以用邻接表来存每个点还有边&am…

Docker实战02|Namespace

在上一文《Docker实战01|容器与开发语言》中主要介绍了Docker的基本概念与Docker安装、Go语言安装等实战技巧。 本文继续针对Namespace技术展开讲解并利用Go语言进行实践。 本系列所有代码均已经开源。关公众号回复「Go语言实现Docker」即可获得。 目录 2.1.2 U…

如何评估 RAG 应用的质量?最典型的方法论和评估工具都在这里了

随着 LLM(Large Language Model)的应用逐渐普及,人们对 RAG(Retrieval Augmented Generation)场景的关注也越来越多。然而,如何定量评估 RAG 应用的质量一直以来都是一个前沿课题。 很显然,简单的几个例子的对比,并不能准确地衡量…

关于对物料计量单位的维护

1、业务背景 一般情况下,在设计产品时,明确了物料的计量单位,并在维护物料主数据时,维护完整单位数据。 但也有例外情况,例如当设计产品时,不明确未来的打包方式,不明确要维护哪些种计量单位&…

JVM虚拟机:各种JVM报错总结

错误 java.lang.StackOverflowError java.lang.OutOfMemoryError:java heap space java.lang.OutOfMemoryError:GC overhead limit exceeded java.lang.OutOfMemoryError:Direct buffer memory java.lang.OutOfMemoryError:unable to create new native thread java.lang.OutOf…

霹雳吧啦Wz《pytorch图像分类》-p2AlexNet网络

《pytorch图像分类》p2AlexNet网络基础及代码 一、零碎知识点1.过拟合2.使用dropout后的正向传播3.正则化regularization4.代码中所用的知识点 二、总体架构分析1.ReLU激活函数2.手算3.模型代码 三、训练花分类课程代码1.model.py2.train.py3.predict.py 一、零碎知识点 1.过拟…

LeetCode刷题---旋转图像

解题思路: 首先对主对角线两边的元素进行交换 接着走一轮遍历,将第1列和第n列进行交换,第2列和第n-1列进行交换,直至得到最终的矩阵。 代码实现: public void rotate(int[][] matrix) {//首先对主对角线的元素进行交换…

企业如何做好客户管理?有哪些关键因素?

客户管理是建立和维护客户关系的重要组成部分,对于企业的发展至关重要。下面就让我们来看看在做好客户管理时有哪些关键因素吧。 第一个关键因素是提供优质的客户服务。无论是线上还是线下,当客户需要帮助时,他们希望能够得到有效且及时的支持…

Spring ApplicationEvent事件处理

Spring的事件 ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。 ApplicationEvent就是Spring的事件接口Applic…

南昌找工作用什么APP或者招聘网站

南昌找工作用吉鹿力招聘网 通过吉鹿力招聘网,可以随时查看最新职位,跟踪简历投递动态,与正在进行招聘的CEO、部门负责人、HR在线沟通,查看其他候选人面试该职位后对面试官、公司环境的面试评价等,为求职者提供参考。 …

阿里云2核2G3M服务器能放几个网站?有限制吗?

阿里云2核2g3m服务器可以放几个网站?12个网站,阿里云服务器网的2核2G服务器上安装了12个网站,甚至还可以更多,具体放几个网站取决于网站的访客数量,像阿里云服务器网aliyunfuwuqi.com小编的网站日访问量都很少&#xf…

2023年度最热 AI 应用 TOP 50,除了 ChatGPT 还有这么多宝藏

原文章链接:年度最热 AI 应用 TOP 50,除了 ChatGPT 还有这么多宝藏 - IT之家 更多消息:AI人工智能行业动态,aigc应用领域资讯 在 AI 工具激烈竞争的一年中,尽管ChatGPT在访问量上遥遥领先,但单次使用时长未…

扫码出入库让仓库管理更加智能化

一、扫码出入库管理的概念 扫码出入库管理系统是一种基于条码技术的仓库管理系统。它通过扫描条码的方式,实现货物的自动化入库、存储、打包和出库。条码技术是一种利用光学识别原理对字符进行识别的技术,具有高效、准确、便捷的特点。 二、扫码出入库能…

B端产品经理学习-需求挖掘

B端产品需求挖掘 目录 识别和管理干系人 决策人和负责人需求挖掘 针对用户进行需求挖掘 用户访谈结果整理 B端产品的需求来源是非常复杂的,要考虑多个方面;如果你是一个通用性的产品,要考虑市场、自身优劣势、干系人。而定制型B端产品会…

react useEffect 内存泄漏

componentWillUnmount() {this.setState (state, callback) > {return;};// 清除reactionthis.reaction();}useEffect 使用AbortController useEffect(() > { let abortController new AbortController(); // your async action is here return () > { abortCo…