发布于2021-05-29 21:16 阅读(1130) 评论(0) 点赞(8) 收藏(2)
本教程是在腾讯云上面通过jenkins.war包进行Jenkins的部署,没有采用docker和yum的方式。此外,本项目是在云服务器本地进行自动构建,所以就没有配置publish over ssh
首先我们需要确保已经安装了jdk、maven和git环境。因为Jenkins需要使用git从gitee上面拉取项目源码,然后通过maven进行构建,然后需要通过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下载网址: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的安装操作,没有使用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提供的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项目。
进行全局工具配置
这里要配置maven、git和jdk三种环境。
首先是maven的settings.xml文件的地址:
接着就是jdk的地址:
然后是git的地址,注意这里是/usr/local/git/bin/git:
最后是我们本地maven的地址:
其他暂未使用到的环境未进行配置,如ant和gradle
接下来就是配置gitee相关的属性。此时我们要在configure system中配置:
其中链接名可以任意取,但是Gitee的域名必须是https://gitee.com,如果是个人的主页的话会出现404的情况。
接下来就是配置Gitee的API令牌,这里要选择Gitee API令牌配置。
接着将api令牌输入即可,id和描述任意
登录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就是在执行构建之前的一系列操作,这里我们的操作就是停止上次构建成功后运行的任务,这里选择执行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完毕"
这里我们指定全局命令即可:
clean package -Dmaven.test.skip=true
这个命令的意思就是:
这里也选择执行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给我们带来了极大的遍历。我们很方便地进行项目的部署,不再做哪些重复的操作,将我们从这些重复的操作之中解脱出来,提高开发的效率。
感谢阅读到最后的读者,有什么问题可以在评论区一起讨论哦!
原文链接:https://blog.csdn.net/wyg1973017714/article/details/117306362
作者:你看我可爱不
链接:http://www.javaheidong.com/blog/article/207361/acab17b9b98be808e8fa/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!