vlambda博客
学习文章列表

Jenkins服务器搭建maven工程笔记

前言

jenkins是一个由java开发的,开源的,用于对项目进行持续集成的运维工具,用于省去软件部署时人为重复的行为,jenkins通过提供可视化界面与大量插件,节省了直接用脚本部署的繁杂,在这里记录下安装的全过程

安装过程

前期准备

三台服务器,一台用于作为jenkins服务器,一台应用服务器(真实环境下会有多台),一台gitlab服务器(可用自己的github代替),这篇文章我们用前两台即可,服务器可以去各大云厂商购买,在阿里云可以在学生认证后免费获得一台服务器


确保jenkins服务器上安装了java,git,maven环境


去清华镜像站下载最新的jenkins.war包并上传至jenkins服务器

https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.278/

配置方法

启动jenkins服务(端口默认是8080),并在后台写入一个日志文件

nohup java -jar jenkins.war >> jenkins.log 2>&1 &


jenkins服务第一次启动后,会生成一个初始随机密码,位置在

/root/.jenkins/secrets/initialAdminPassword


要确保自己服务的端口是对外开启的,如果没开启,我们就要手动开启

# 开启防火墙的8085端口firewall-cmd --zone=public --add-port=8080/tcp --permanent# 使配置生效firewall-cmd --reload

在内网环境下,最简单的方法是直接

systemctl stop firewalld.service


访问http://你的jenkins服务器公网ip:8080】,第一次启动使用之前的初始密码进入,之后系统会提示操作者创建一个用户名与密码,注册一个新账号即可

Jenkins服务器搭建maven工程笔记安装插件,选择第一个,安装过程比较漫长,等待安装完成

Jenkins服务器搭建maven工程笔记

进入主页后的页面长这样(图中的项目是我已经部署成功的)

Jenkins服务器搭建maven工程笔记


进入到左侧标签栏的Manage Jenkins(系统管理),选择全局工具配置(Global Tool Configuration),配置一下系统的环境

Jenkins服务器搭建maven工程笔记


分别配置自己的Java,Git,Maven目录

Jenkins服务器搭建maven工程笔记

Jenkins服务器搭建maven工程笔记

Jenkins服务器搭建maven工程笔记

拉到页面最下方,直接保存即可

因为jenkins在整个持续集成过程中,都是自动拉取代码的,所以要添加git仓库的凭证,这个凭证可以直接用自己的github用户名与密码,接下来进入Manage Credential(管理凭证)

Jenkins服务器搭建maven工程笔记


点击添加凭据,输入自己的github/gitlab密码,点击确定

Jenkins服务器搭建maven工程笔记


Jenkins服务器搭建maven工程笔记


由于创建的是maven项目,所以还需要安装一些插件,这次选择Manage Plugins(管理插件)

Jenkins服务器搭建maven工程笔记


手动添加Maven Integration plugin

Jenkins服务器搭建maven工程笔记


走到这一步,其实jenkins服务器已经算是配置好了,接下来我们去配置自己的应用服务器,应用服务器要满足以下几个要求

  1. jenkins服务器能够通过ssh免密登陆应用服务器

  2. 应用服务器至少得有java环境

以上两步的配置过程,不再赘述


进入jenkins主页,可以创建一个maven工程,点击"新建item",然后选择第二个创建maven工程,记得输入一下名称,保存即可

Jenkins服务器搭建maven工程笔记


接下来就会进入配置页面,可以参考我的配置

Jenkins服务器搭建maven工程笔记


Jenkins服务器搭建maven工程笔记


Jenkins服务器搭建maven工程笔记


Jenkins服务器搭建maven工程笔记


在Execute Shell中添加的脚本代码如下,最后拖到页面最下方保存即可

#!/bin/bash
echo "部署的目录和项目名称"DIR="/data/app"projectName="you app name"
echo "待部署的应用服务器,可多台"server_ip="you server ip"
echo "拷贝jar包到目标服务器的tmp目录"scp -q -oStrictHostKeyChecking=no ${PWD}/target/*.jar root@${server_ip}:/tmp/${projectName}.jar
echo "ssh远程连接进行发布操作"ssh -q -oStrictHostKeyChecking=no root@${server_ip} <<EOFmv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jarcd ${DIR}/${projectName}./stop.sh #每次构建之前先停止原来的进程./start.sh #启动服务EOF
echo "构建成功!"


同时在你的${DIR}/${projectName}目录下添加start.sh,stop.sh两个脚本

#!/bin/bash
# start.shset -e #任何命令出错就退出set -o pipefail
APP_ID="you app name"APP_DIR="/data/app"
nohup java -Dspring.profiles.active=dev -jar ${APP_DIR}/${APP_ID}/${APP_ID}.jar > release_out.log 2>&1 &start_ok=falseif [[ $? = 0 ]];then sleep 3 tail -n 10 release_out.log sleep 5 tail -n 50 release_out.logfiaaa=`grep "Started" release_out.log | awk '{print $1}'`if [[ -n "${aaa}" ]];then echo "Application started ok" exit 0else echo "Application started error" exit 1fi
#!/bin/bash# stop.shAPP_ID=it235-bootps aux | grep ${APP_ID} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh


接下来用maven创建一个Springboot工程,并推送到github上,我们写一个简单的控制器,并提交代码

Jenkins服务器搭建maven工程笔记

git add . && git commit -m "init" && git push origin main


回到jenkins主页,点击进入我们的项目,选择左侧的build now,可以看到下方的小光标已经开始闪动,意思就是在构建,我们点击进去,选择左侧的控制台输出,可以看到日志输出

Jenkins服务器搭建maven工程笔记

Jenkins服务器搭建maven工程笔记

通过日志可以看到部署有没有成功,如果成功了小球就是蓝色,如果失败就是红色

接下来可以去访问自己的应用服务器的路由,看有没有访问成功,一般构建成功的话,访问是没问题的

jenkins同样也可持续集成,监控npm,php等项目,同时还可以和docker,k8s进行组合,在这不多介绍,以后有机会,再做记录


Jenkins服务器搭建maven工程笔记


Jenkins服务器搭建maven工程笔记

关注我

获取更多精彩

James的黑板报