Jenkins部署项目

一.安装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" != "" ]; thenecho "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.hqwc.cn/news/316646.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

优势演员-评论家算法 A2C

优势演员-评论家算法 A2C 优势演员-评论家算法 A2C主要思想目标函数 优势演员-评论家算法 A2C 前置知识:演员-评论家算法:多智能体强化学习核心框架 主要思想 AC 网络结构: 策略网络 - 演员: 这个网络负责根据当前的状态选择动作。它输出的是…

嵌入式-C语言-const关键字-指针常量和常量指针

C语言-指针常量和常量指针 一:结论 1.常量指针 :b的值不能变,但是b的地址能变 const int* b &x; 2.指针常量:p的地址不能变,但是p的值能变 int* const p &y; 3.巧记口诀 星在(const&#xf…

深度强化学习DQN训练避障

目录 一.前言 二.代码 2.1完整代码 2.2运行环境 2.3动作空间 2.4奖励函数 2.5状态输入 2.6实验结果 一.前言 深度Q网络(DQN)是深度强化学习领域的一项革命性技术,它成功地将深度学习的强大感知能力与强化学习的决策能力相结合。在过…

浏览器请求的并行与串行以及并发数的管控

1 浏览器在发起网络请求数据的时候,允许同时请求5-7个接口。即使我们同时请求20个接口, 浏览器也只会优先请求5-7个,当5-7个有请求成功或失败的接口之后,在进行下一个填充请 求,一直到所有的接口请求完…

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】 1、概述2、实验环境3、 自我总结4、 实验过程1、验证上位机QT程序1、下载样例代码2、修改qt程序3、运行测试验证 2、验证下位机ESP32程序1、下载样例代码2、更改ESP3…

【测试基础】构造测试数据之 MySQL 篇

构造测试数据之 MySQL 篇 作为一名测试工程师,我们经常会构造测试数据进行一些功能验证。为了暴露更多的问题,在测试数据的构造上,我们应该尽可能的构造不同类型字段的数据,且一张表的字段最好不低于 10 10 10 个。 对于 MySQL …

【Linux Shell】1. Shell 简述

文章目录 【 1. Shell 解释器、Shell语言、Shell脚本 】【 2. Shell 环境 】【 3. 一个简单的 Shell 脚本 】3.1 Shell 脚本的编写3.2 Shell 脚本的运行3.2.1 作为可执行程序运行 Shell 脚本3.2.2 作为解释器参数运行 Shell 脚本 【 1. Shell 解释器、Shell语言、Shell脚本 】 …

基于ssm的医院交互系统+vue论文

医院交互系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的医院交互信息管理模式,采用人工登记的方式保存相关数据,这种以人力为主的管理模…

山海鲸可视化软件的优势:数据整合、可视化与个性化定制

随着科技的快速发展,企业数字化转型已成为必然趋势。而对于一些本身没有开发优势或非技术型企业,数字化产品的选择就成为重中之重。作为山海鲸可视化软件的开发者,我们深知这一点,对于企业来说,能选择一个产品一定要有…

ARM CCA机密计算架构软件栈之软件组件介绍

在本节中,您将了解Arm CCA的软件组件,包括Realm World和Monitor Root World。以下图表展示了Arm CCA系统中的软件组件: 在这个图表中,世界之间的边界显示为粗虚线。由较高权限的软件强制执行的较低权限软件组件之间的边界显示为细虚线。例如,非安全EL2处的虚拟机监视器强制…