关键词:
Centos使用Jenkins和Gitee自动化部署Spring Boot项目
本教程是在腾讯云上面通过jenkins.war包进行Jenkins的部署,没有采用docker和yum的方式。此外,本项目是在云服务器本地进行自动构建,所以就没有配置publish over ssh
环境准备
首先我们需要确保已经安装了jdk、maven和git环境。因为Jenkins需要使用git从gitee上面拉取项目源码,然后通过maven进行构建,然后需要通过jdk运行构建好的项目,所以这里需要这些环境
jdk安装
安装jdk只需要将下载好的压缩包上传至云服务器,然后配置相应的环境变量即可。
我这里下载的是jdk-8u291-linux-x64.tar.gz,下载地址:jdk8
下载完成后上传至云服务器,我这里上传到了/usr/local/目录下,在改目录下直接运行如下命令进行解压即可:
tar -zxvf jdk-8u291-linux-x64.tar.gz
解压完成后要配置环境变量,主要是编辑/etc/profile文件,这里使用vim进行文件的编辑操作
vim /etc/profile
然后在文件的末尾添加如下环境变量:
export JAVA_HOME=/usr/local/jdk1.8.0_291
export CLASSPATH=:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
添加完成后运行如下命令:
source /etc/profile
jdk到这里就配置好了。
可以通过java -version检验配置是否成功。
maven安装
maven下载网址:https://maven.apache.org/download.cgi,下载apache-maven-3.8.1-bin.tar.gz即可
将下载好的文件上传至云服务器,我这里直接上传到了/usr/local/目录下,然后直接将其解压
tar -zxvf apache-maven-3.8.1-bin.tar.gz
解压完成后我们需要修改部分配置,这里已知maven的安装路径为/usr/local/apache-maven-3.8.1,我们需要修改安装路径下conf/settings.xml文件。主要修改两点:
-
第一点就是maven的镜像,使用阿里云镜像可以极大的加快速度
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
直接将mirrors节点中的镜像改为阿里云镜像,其他的都注释掉即可
-
第二点就是maven仓库的位置,maven仓库我直接在maven的安装目录下新建了repository文件夹,然后配置localRepository节点即可,localRepository节点紧挨settings节点
<localRepository>/usr/local/apache-maven-3.8.1/repository</localRepository>
接下来就是配置环境变量,同样是在/etc/profile文件中添加环境变量,内容如下:
export MAVEN_HOME=/usr/local/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin
然后再运行source /etc/profile使其生效即可。
然后可以运行mvn -v命令查看是否配置成功
git安装
这里采用的源码安装的方式进行git的安装操作,没有使用yum安装是因为yum安装的git版本比较低,所以直接通过源码编译安装。
源码下载地址:https://github.com/git/git/releases,我下载的2.31.1版本的git
同样,将下载好的git-2.31.1.tar.gz上传到/usr/local目录下,然后对其进行解压。
tar -zxvf git-2.31.1.tar.gz
解压完成以后,我们就得到了解压后的源码,然后进入到解压后的目录:/usr/local/git-2.31.1,接下来就是编译源码,但是在编译源码之前,我们需要先安装一下依赖:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
当这些依赖安装完成以后,系统自动为我们安装了git,此时我们要卸载掉旧版本的git:
yum -y remove git
接下来在源码所在的目录下编译源码:
make prefix=/usr/local/git all
然后将git安装到/usr/local/git目录下
make prefix=/usr/local/git install
接下来又是配置环境变量的配置,相信不用说大家都知道怎么配置了吧:
export PATH=$PATH:/usr/local/git/bin
配置完成以后运行git --version检查配置的成果
这里没有配置user.name和user.email,因为只是使用git来拉取代码,没有进行代码的修改和提交操作,所以暂时没有进行这些配置
至此环境都准备好了,开始正主Jenkins的安装了。
安装Jenkins
这里采用的是直接运行Jenkins提供的war包,所以,我们首先需要去Jenkins下载对应的war包。
这里是在Jenkins的用户手册的安装Jenkins章节里面找到的下载war包的地址(点击下图中红框内的文字)
但是有一个小问题,就是点击了它的网址之后没有反应,点了好几次都是这样,所以我就打开控制台看了一下,发现有报错
找到了问题原因,就是https网址下不能访问http协议的网址。所以直接点击这个连接即可:http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.277.4/jenkins.war,至此,jenkins.war包就下载完成了
下载完成以后将jenkins.war包上传到云服务器,然后通过nohup命令后台运行:
nohup java -jar jenkins.war --httpPort=9000 > jenkins.log 2>&1 &
这里通过httpPort来修改了端口号,然后将Jenkins的日志输出到jenkins.log中。这里2>&1就是用来将标准错误2重定向到标准输出1中的。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。至于最后一个&,则是让bash在后台执行。
当执行完成后,我们可以去浏览器访问Jenkins,访问网址就是你的ip地址加端口号9000,例如:192.168.1.114:9000
初次访问会等一小会:
然后就要输入管理员密码,管理员密码在/root/.jenkins/secrets/initialAdminPassword文件中。
输入密码之后就进入下面插件安装的页面,这里选择安装推荐的插件:
插件安装完成之后就可以创建用户了:
创建完成后通过账号和密码登录即可。
登录完成之后我们要安装如下两个插件:Maven Integration plugin和Gitee Plugin,只有安装了这两个插件之后才能通过Jenkins部署gitee的spring boot项目。
配置Jenkins
进行全局工具配置
这里要配置maven、git和jdk三种环境。
首先是maven的settings.xml文件的地址:
接着就是jdk的地址:
然后是git的地址,注意这里是/usr/local/git/bin/git:
最后是我们本地maven的地址:
其他暂未使用到的环境未进行配置,如ant和gradle
配置Gitee
接下来就是配置gitee相关的属性。此时我们要在configure system中配置:
其中链接名可以任意取,但是Gitee的域名必须是https://gitee.com,如果是个人的主页的话会出现404的情况。
接下来就是配置Gitee的API令牌,这里要选择Gitee API令牌配置。
接着将api令牌输入即可,id和描述任意
Gitee API令牌的获取
登录gitee之后,访问如下网址:https://gitee.com/profile/personal_access_tokens,然后生成新的令牌:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yvmg1iR6-1622036752989)(E:\\学习笔记\\StoragePicture\\image-20210526210017786.png)]
填写令牌的描述:
提交之后输入密码即可查看私人令牌,而且该令牌只显示一次,要妥善保存。将该私人令牌填入刚才的Jenkins Gitee APIV5私人令牌即可。
配置完成之后可以测试是否能成功连接:
创建自动构建任务
点击新建Item创建任务:
创建任务时要选择构建maven项目,如果没有这个选项的话要去安装maven插件。这里还要注意任务的名称,Jenkins会根据任务名称生成指定的文件夹,通过git获取的项目源码会存在该文件夹下,这里后面会用到。
然后要进行任务的配置:
描述可以随意写,表明任务的主要作用即可
然后要选择丢弃旧的构建:
源码管理
接着在源码管理时要根据仓库的地址进行管理:
git仓库的地址就是我们git clone使用的地址,接着还要配置Credentials,这里我们使用Username with password类型的配置:
如果git仓库是自己所有的话就填写自己Gitee的账号和密码(仓库的成员也可),否则要填写仓库成员或仓库拥有着的gitee账号和密码
填写完毕后选择我们刚配置好的Credentials。如果这里没有标红就证明没错误,例如:
构建触发器
这里我们选择webhook构建触发器,在gitee的webhook中要填写此处的URL:
然后点击生成产生webhook的密码:
生成密码之后要去git仓库进行操作。
在创建webhook时要填写Jenkins中生成的网址和密码,然后添加即可
Pre Steps
pre steps就是在执行构建之前的一系列操作,这里我们的操作就是停止上次构建成功后运行的任务,这里选择执行shell命令即可。
shell命令如下:
echo "准备停止learn-0.0.1-SNAPSHOT.jar"
pid=`ps -ef | grep 替换为你的jar包名称 | grep -v grep | awk 'print $2'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "停止learn-0.0.1-SNAPSHOT.jar完毕"
Build
这里我们指定全局命令即可:
clean package -Dmaven.test.skip=true
这个命令的意思就是:
- clean:在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件
- package:打包。将工程文件打包为指定的格式,例如JAR,WAR等(看你项目的pom文件,里面的packaging标签就是来指定打包类型的)。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令。
- install:安装。将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)。
- -Dmaven.test.skip=true:不执行测试用例
Post Steps
这里也选择执行shell命令
这里的操作就是当Jenkins打包完成之后,将打包的文件移动到指定的文件夹下并运行。
注意:这里workspace目录下的test_spring_boot就是任务名,Jenkins根据任务名创建存储源码的目录
这里要注意将相关的目录和文件名配置成自己的目录和文件名,否则会失败的哦!
BUILD_ID=DONTKILLME
echo "移动jar包到webee目录,并去掉版本号名称"
if [ ! -d "/home/code" ];then
mkdir /home/lighthouse/code
else
echo "文件夹已经存在"
fi
if [ ! -f "/home/code/learn-0.0.1-SNAPSHOT.jar" ];then
echo "文件不存在"
else
rm -f /home/code/learn-0.0.1-SNAPSHOT.jar
fi
mv -f /root/.jenkins/workspace/test_spring_boot/target/learn-0.0.1-SNAPSHOT.jar /home/code/learn-0.0.1-SNAPSHOT.jar
echo "移动jar包完成"
echo "启动testJenkins服务"
nohup java -jar /home/code/learn-0.0.1-SNAPSHOT.jar > /home/code/learn.log 2>&1 &
echo "启动testJenkins服务完成"
当配置完成以后就可以开始构建了:
构建完成后我们可以查看构建结果,在控制台输出中可以查看这次构建的日志:
在左下角也可以看到构建的成功和失败,红色代表失败:
最后
当我们修改项目并且提交的git仓库之后,Jenkins会自动帮助我们构建,这里就是webhook的作用。
通过Jenkins给我们带来了极大的遍历。我们很方便地进行项目的部署,不再做哪些重复的操作,将我们从这些重复的操作之中解脱出来,提高开发的效率。
感谢阅读到最后的读者,有什么问题可以在评论区一起讨论哦!
参考
docker+jenkins+gitee+maven构建自动化部署(代码片段)
Jenkins的环境构建和项目自动化部署docker-compose部署配置jenkins步骤1:Docker下载jenkins镜像并运行容器步骤2:访问jenkins2.1.jekins访问:2.2.进入jenkins获取密码步骤3.选择jenkins安装推荐的插件步骤4.选择jenkins安装插件步骤5... 查看详情
jenkins-一篇就能上手gitee(码云)代码自动化构建
...么部署,Jenkins部署请转移到Jenkins-一篇就能上手Jenkins自动化部署,而是讲解如何提交代码到Git上,然后自动触发Jenkins构建,这个中间的自动化过程~开始安装插件(Gitee)新增令牌(GiteeAPIV5私人令牌... 查看详情
jenkins+docker+gitee+springboot自动化部署(代码片段)
...烦。基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上 查看详情
jenkins+gitee+ssh自动化部署(代码片段)
一、准备环境 1,配置maven(MAVEN_HOME) 2,配置jdk(JAVA_HOME)我这里用的jdk1.8.0_121,之前碰到过一次别的版本的jdk在启动tomcat无法解析https情况,如果有这种情况建议更换jdk版本 3,配置git(我这里用的时git)或者svn根... 查看详情
docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(代码片段)
下一篇:Docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(2)1、环境准备1-1服务器相关(附下载工具)1-2centos7安装jdk81-3centos7安装maven3.6.31-4centos7安装git1-5安装docker1-6通过docker安装portainer1-7通过doc... 查看详情
jenkins+docker一键自动化部署springboot项目
本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运... 查看详情
基于docker+jenkins实现自动化部署(代码片段)
Jenkins是一个基于java开发的开源 CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件。jenkins官网:https://jenkins.iojenkins下载地址:https://jenkins.io/download/ 请检测是否安装docker,如果没有安装或想提速下载请走这... 查看详情
jenkins自动化部署项目(代码片段)
...站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常 查看详情
jenkins-一篇就能上手jenkins自动化部署(代码片段)
...ok钩子(Jenkins-一篇就能上手Gitee(码云)代码自动化构建)通知Jenkins,然后Jenkins通知目标服务器拉取Git项目代码并执行脚本(拉取、构建、启动等),完毕!环境要求LocalEnv 查看详情
jenkins+docker一键自动化部署springboot项目(代码片段)
点击关注公众号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基... 查看详情
jenkins+docker一键自动化部署springboot项目(代码片段)
点击关注公众号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基... 查看详情
自动化部署之jenkins升级和备份
jenkins升级(1)查看war包所在的目录[[email protected] ~]# rpm -ql jenkins/etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/ 查看详情
jenkins一键构建自动化测试代码(代码片段)
这两天在使用Jenkins搭建部署一键构建python脚本的框架,看了无数教程(很多教程都是复制粘贴的乱糟糟的教程),踩了无数坑终于搞定了,记录一下这次的搭建过程,以便之后参考。环境介绍:1、本机(自己写代码用的win10)2... 查看详情
jenkins自动化部署(代码片段)
文章目录jenkins自动化部署配置项目添加凭据生成拉程序的代码编写Pipelinescript构建效果测试jenkins自动化部署配置项目添加凭据生成拉程序的代码编写Pipelinescriptpipelineagentanystages //阶段stage('pull')//步骤steps命令gitcredentialsId:... 查看详情
自动化部署之jenkins自动触发构建和发布
一、下载gitlabpluginjenkins-->系统管理-->管理插件-->下载并安装gitlabplugin二、配置gitlab认证路径:Jenkins-->Credentials-->System-->Globalcredentials(unrestricted)-->AddCredentials1、Kind选择GitlabAPItoken2、其中 查看详情
持续集成+自动化部署[代码流水线管理及jenkins和gitlab集成]
持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]标签(空格分隔):Jenkins一、代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目。如果使用jenkins构建完成后,开发构建项目需要一... 查看详情
持续集成与自动化部署-jenkins&sonar代码质量管理平台部署和基础使用(代码片段)
1jenkins安装参考链接1.1安装jenkins[[email protected]~]#yuminstall-yjava-1.8.0[[email protected]~]#cd/etc/yum.repos.d/[[email protected]yum.repos.d]#wgethttp://pkg.jenkins.io/redhat/jenkins.repo 查看详情
jenkins自动化部署项目4--安装和配置jdkmavengit
Jenkins提供了自动安装jdk,maven,git的功能,在【系统设置-全局工具配置】里,但是我自动安装没反应,因此我是先手工安装和配置它们的环境变量然后再在【系统设置-全局工具配置】里配置:1.jdk 2.git 3.maven 查看详情