springBoot 项目 Jenkins+svn 集成部署

持续集成工具Jenkins

CI/CD 持续集成 持续部署

持续部署、持续集成、持续交付

Jenkins 和 Hudson 都是一款持续集成及自动化部署工具。

 

Jenkins 解决了什么问题:

Jenkins 的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相

关人员省时省力提高开发效率。

解决了传统的打包、部署枯燥过程。

Jenkins 主要用于

1.持续、自动地构建/测试软件项目

2. 监控一些定时执行的任务

 

 

Jenkins历史:

Jenkins 和 Hudson 之间的关系,2009年,甲骨文收购了sun公司并集成了Hudson代码库。在2011年年初,甲骨文和开源社区之间关系破裂,该项目分为两个独立的项目。

Jenkins: 由大部分原始开发人员组成

Hudson:由甲骨文公司继续管理

所以 Jenkins 和 Hudson 是两款非常相似的产品

流程图

springBoot 项目 Jenkins+svn 集成部署_第1张图片

Red hat 安装Jenkins 

jenkins下载   https://pkg.jenkins.io/redhat-stable/

下载rpm包到本地

sudo rpm -ih jenkins-2.222.3-1.1.noarch.rpm

自动安装完成之后: 

/usr/lib/jenkins/jenkins.war    WAR包 

/etc/sysconfig/jenkins       配置文件

/var/lib/jenkins/       默认的JENKINS_HOME目录

/var/log/jenkins/jenkins.log    Jenkins日志文件

 

 安装完成之后启动jenkins, 可能报这个错误,这是由于没有配置java环境,先检查一下java虚拟机有没有安装,如果没有就安装

解决办法在 vim  /etc/init.d/jenkins

在第一行添加java环境,红色框中为自己的路径

springBoot 项目 Jenkins+svn 集成部署_第2张图片

为了避免jenkins默认端口冲突,修改enkins默认端口

执行  vi /etc/sysconfig/jenkins

找到 JENKINS_PORT="8080"  此端口不冲突可以不修改 

修改jenkins默认的操作用户,linux下jenkins默认使用jenkins用户进行脚本和文件的操作,如果不修改,在部署项目时需要调整涉及到的文件和目录的操作权限,可以调整jenkins配置文件,将用户修改为root用户。

将JENKINS_USER="jenkins"调整为JENKINS_USER="root"

然后执行启动命令 

sudo service jenkins start

然后访问:http://ip/8081

如果访问不到,检查服务器的防火墙是否关闭。

springBoot 项目 Jenkins+svn 集成部署_第3张图片

 接着 :cd /var/lib/jenkins/secrets

springBoot 项目 Jenkins+svn 集成部署_第4张图片

进入此页面后,需要配置一下允许用户注册,Configure Global Security ,勾选此处,保存。

springBoot 项目 Jenkins+svn 集成部署_第5张图片

接着配置jdk 、maven、及setting.xml

springBoot 项目 Jenkins+svn 集成部署_第6张图片

需要安装 Subversion 和 Deploy to container 插件,如果无法安装提示Update information obtained: 不可用 ago;

其原因是无法上网,可检查 ping www.baidu.com 如果无法ping通,需要设置DNS

命令: vim /etc/resolv.conf  修改文件中nameserver为 8.8.8.8 和 8.8.4.4  保存退出 :wq

 再次检查 ping www.baidu.com

开始构建部署springboot的jar项目

1. 回到jenkins主页面,点击新建Item 

springBoot 项目 Jenkins+svn 集成部署_第7张图片

springBoot 项目 Jenkins+svn 集成部署_第8张图片

springBoot 项目 Jenkins+svn 集成部署_第9张图片

-Dmaven.test.skip=true 忽略测试

然后点击页面下方的应用,并保存。接着设置全局配置进入jekins 主页面,点击左侧 Manage Jenkins进入页面后点击Configure System 系统配置

再次操作之前,需要安装 Publish over SSH 插件,

springBoot 项目 Jenkins+svn 集成部署_第10张图片

点击高级 勾选

以上配置完后,点击Test Configuretion 测试一下

 

之后我们去job中配置一下ssh,

springBoot 项目 Jenkins+svn 集成部署_第11张图片

springBoot 项目 Jenkins+svn 集成部署_第12张图片

此处的顺序需要注意一下,shell 脚本需要放在下面。

shell 脚本内容:

#!/bin/sh
#Copy jar to target path

BUILD_ID=DONTKILLME #后台执行

pid=$(ps -ef|grep ene-center.jar|grep -v grep | awk '{print $2}')

#copy jar 到启动目录
#cp -r /var/lib/jenkins/workspace/ene-center/target/ene-center.jar  /data/test/em

# 关闭已经启动的jar进程
function stop(){
if [ -n "$pid" ]
  then
        echo "pid进程 :$pid"
        kill -9 $pid

 else
    echo "进程没有启动"
fi
}
stop

sleep 5s

#发布jar服务
function start(){
  cd /data/test/em
  nohup java -jar ene-center.jar --server.port=5010 >center.log 2>&1 &
}

start

然后,应用并保存,在jenkins 任务列表页面点击构建,

springBoot 项目 Jenkins+svn 集成部署_第13张图片

 

 

你可能感兴趣的:(java系列)