谷粒学院(二十四)Jenkins+Maven+Github+Springboot实现可持续自动部署(非常详细)


目前公司开发的项目已经部署到服务器上,部署项目的测试环境和生产环境,加上每个项目n个服务,于是我就于是花点时间研究了一下Jenkins。

在这里插入图片描述
Jenkins的作用和它的logo表现出来的一样,就是为了做工作的时候,能够比较轻松,像个绅士一样游刃有余。

一、安装内容

Jenkins(本文主要安装)、Maven、Git、JDK

Jenkins与Github配合实现持续集成需要注意以下几点:

  • ①Jenkins要部署到外网,因为内网Github是无法访问到的(走过的坑!),这里我租用的是阿里云的服务器实现。
  • ②Jenkins所在的主机需要安装Git,通过Git程序从Github上clone代码
  • ③在Jenkins中需要指定Git、Maven、JDK,路子都是相同的。
  • ④在Github上使用每一个repository的webhook方式远程触发jenkins构建
  • ⑤在Jenkins内关闭 “防止跨站点请求伪造”

二、实现过程

在这里插入图片描述

1、不使用Jenkins

  • ①我们开发人员需要编写代码,提交到版本控制服务器(Svn、Git)
  • ②我们开发人员需要手动拉取最新代码,构建maven工程,进行打包(war或jar)
  • ③我们开发人员手动部署war或jar至应用服务器
  • ④一旦项目上线,bug修改等小改动问题都要重复以上过程

2、使用Jenkins

  • ①同样,业务代码还是需要开发人员来编写并commit或push至版本控制自服务器(SVN、Git)
  • ②通过以上图,我们发现,Jenkins帮我们做了:拉取最新代码、打包、部署
  • ③我们开发人员只需专注于:业务代码的编写
  • ④一旦项目上线,bug修改等小改动问题,我们开发人员只需提交最新代码即可,另一边的测试或最终用户就能看到最终效果,大大减少我们开发人员的工作量

三、准备工作

1、Github仓库准备测试项目

自己写了一个小demo,用IDEA+Maven构建的SpringBoot的web项目:https://github.com/StarSea99/jenkins-demo

2、安装java环境(jdk环境)

https://blog.csdn.net/weixin_45606067/article/details/109815988

3、安装maven环境

https://blog.csdn.net/weixin_45606067/article/details/109895967

4、安装Git环境

在任意目录下(前提Linux必须有网络)

yum -y install git

在这里插入图片描述
查看git 安装上没有

git -version

在这里插入图片描述

5、安装Docker

https://blog.csdn.net/weixin_45606067/article/details/109896615

四、Jenkins的下载安装

下载地址:https://jenkins.io/download/(下载速度极慢),这里我已经将最新版的war包上传至CSDN下载,亲测可用,下载地址如下:

https://download.csdn.net/download/weixin_45606067/13183825

1、Jenkins的war包下载

由于我是Java开发人员,最喜欢一键部署了,下载Jenkins的war直接丢进tomcat的webapps目录即可完成部署。

在这里插入图片描述

然后找到documentation,get started,这是学习一门新技术的一些套路了:官网---->download---->documentation---->getting started

2、安装jenkins

(1)把jenkins的war包上传到linux系统中

在这里插入图片描述

(2)启动war包,使用命令 java –jar

nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out &

  • 启动出现下面界面
    在这里插入图片描述

  • 再次点击回车

(3)查看启动进程

ps -ef | grep jenkins

在这里插入图片描述

(3)访问jenkins管理页面
  • 使用当前linux系统ip地址:8080端口号
  • 首先进入初始化界面,需要多等一会,之后进入到下面界面
    在这里插入图片描述
(4)解锁操作
  • 找到管理员密码进行输入
    在这里插入图片描述
  • 查看提示文件内容,复制默认密码到输入框里面
    在这里插入图片描述
  • 输入正确密码,点击继续。
    在这里插入图片描述
    点击继续,进入如下界面。

在这里插入图片描述
注意:进入安装插件页面,不要往下进行了,下载插件会很慢,配置国内镜像,为了提高下载速度,关掉浏览器,去配置镜像

(5)杀死Jenkins进程

在这里插入图片描述

(6)配置国内镜像

cd /root/.jenkins/updates #进入更新配置位置

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

在这里插入图片描述

  • 重启jenkins,运行管理界面,安装插件

在这里插入图片描述
在这里插入图片描述

  • 安装插件之后,插件管理员用户名和密码
    在这里插入图片描述
  • 实例配置
    在这里插入图片描述
  • 安装完成
    在这里插入图片描述

三、Jenkins配置

1、配置自动化部署需要环境

在这里插入图片描述
在这里插入图片描述

2、配置jdk环境

在这里插入图片描述

3、配置maven环境

在这里插入图片描述

4、配置git环境

在这里插入图片描述

四、Jenkins自动化过程

1、准备工作

(1)需要项目工程,需要做修改
第一:项目需要Dockerfile文件
在这里插入图片描述
文件内容:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/demojenkins.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]

第二:在项目pom文件添加打包类型 和 maven插件

在这里插入图片描述

2、在jenkins管理界面创建自动化任务

(1)

在这里插入图片描述
(2)
在这里插入图片描述
(3)把代码提交码云Git仓库里面

此时不会的可以查看https://blog.csdn.net/weixin_45606067/article/details/109536927

(4)在作业创建页面指定代码位置
在这里插入图片描述
添加git用户,git的用户名与密码
在这里插入图片描述
选择添加的用户,上面的红色提示信息消失,说明连接成功。

(5)

在这里插入图片描述
(6)修改脚本路径,进行复制

在这里插入图片描述

#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./infrastructure/eureka_server
service_name="eureka-server"
service_prot=8761
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
docker logs -f  $service_name
  • 保存上面的构建作业
    在这里插入图片描述

构建结构说明:

在这里插入图片描述

(7)执行作业(任务)

  • 需要docker启动起来
    service docker start

在这里插入图片描述

(8)看到控制台日志输出

在这里插入图片描述
成功后的效果

在这里插入图片描述


如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客
  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值