一、Jenkins 简介
什么是Jenkins ?
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成( CI/CD)。
软件项目CI/CD是什么 ?
CI(Continuous Integration)始终指持续集成 ,CD(Continuous Delivery/Continuous Deployment)是持续交付和/或持续部署,总结为如下三点。
- 持续集成
- 持续交付
- 持续部署
集成架构:
基本流程:
二、安装前准备
本文Jenkins安装主要基于Linux环境,需要安装Java11(注意当前jenkins支持的Java版本最低为Java11)、Git环境
1、安装Yum
# apt-get来先将yum
apt-get install yum
# 更新APT库
apt-get update
apt-get upgrade
# 查看yum版本
yum --version
2、安装Git
# yum安装git
yum install git
# 查看Git版本
git --version
3、安装Maven
配置结果如下,若没有安装Maven可以到官网下载👇
Maven历史版本下载地址
# 安装目录
cd /usr/local
# 根据需要下载对应版本
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 解压
tar -vxf apache-maven-3.6.3-bin.tar.gz
# 修改文件名
mv apache-maven-3.6.3 maven
# 添加环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/maven
export PATH=${PATH}:${MAVEN_HOME}/bin
# 查看Maven版本
mvn -v
三、安装Jenkins
1、安装Jenkins镜像源
# 安装jekins镜像源
sudo wget --no-check-certificate -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo wget --no-check-certificate http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm
sudo rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
2、安装Jenkins
# yum安装jekins
yum -y install jenkins
3、配置Jenkins
# 修改端口号(修改两个地方)
vim /etc/sysconfig/jenkins
# 找到下面的文字
JENKINS_PORT="8090" # 修改为自己想要的端口号
vim /usr/lib/systemd/system/jenkins.service
# 找到下面的文字
Environment="JENKINS_PORT=8080" # 修改为自己想要的端口号
# 修改Jenkins前缀(方便Nginx代理)
vim /usr/lib/systemd/system/jenkins.service
# 找到下面的文字
Environment="JENKINS_PREFIX=/jenkins" # 修改为自己想要的端口号
# 修改镜像源
find / -name *.UpdateCenter.xml
vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
# 改为以下地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
四、启动Jenkins
# 重新加载配置文件
systemctl daemon-reload
# 重启jenkins
systemctl restart jenkins
获取管理员密码:
# 获取管理员密码
cat /var/jenkins_home/secrets/initialAdminPassword
新手使用“安装推荐的插件”,并创建账户
恭喜你🎉现在Jenkins已经安装好,有经验同学可以直接使用,想进一步了解配置、部署的同学请继续下文
五、Jenkins部署
1、插件下载安装
- Maven Integration:Maven 构建工具 。
- Publish Over SSH:整个工具,将来把 Jenkins 打包好的,jar 上传到应用服务器上。
- Github 服务器。
使用gitee也可以下载插件 Gitee,这里主要讲述Github
2、Jenkins全局工具配置
3、Jenkins添加服务器
4、Jenkins添加凭证
Github主页头像 ⇢
setting Settings ⇢
Developer Settings ⇢
Personal access tokens (classic)
5、Jenkins添加项目
测试项目基于SpringBoot
6、项目构建脚本
留意 :修改👇脚本APP_NAME、DEPLOY_DIR 、JAVA_HOME 三个变量名称或位置
APP_NAME
和上面Jenkins ⇢ SSH Publishers ⇢Source Files
jar包文件名保持一致DEPLOY_DIR
和上面Jenkins ⇢ SSH Publishers ⇢Rmoate directory
目录保持一致- 脚本存放目录和Jenkins配置的 ⇢ SSH Publishers ⇢
Exec Command
执行目录保持一致
#!/bin/bash
APP_NAME="bs-admin-1.0-SNAPSHOT"
echo `date '+%Y-%m-%d %H:%M:%S.%N'` : "service [$APP_NAME] begin deploy"
DEPLOY_DIR=/home/jenkins/bs/admin
JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
cd $DEPLOY_DIR
echo $DEPLOY_DIR
echo `date '+%Y-%m-%d %H:%M:%S.%N'` : "service deploy dir in [$DEPLOY_DIR]"
PID=$(ps -ef | grep $APP_NAME | grep -v grep | grep -v sudo | awk '{print $2}')
if [ -z "$PID" ]
then
nohup $JAVA_HOME/bin/java -Xmx512m -Xms512m -jar -Dspring.profiles.active=dev $DEPLOY_DIR/$APP_NAME.jar > $DEPLOY_DIR/log/$(date +'%Y%m%d').log &
else
kill -9 $PID
nohup $JAVA_HOME/bin/java -Xmx512m -Xms512m -jar -Dspring.profiles.active=dev $DEPLOY_DIR/$APP_NAME.jar > $DEPLOY_DIR/log/$(date +'%Y%m%d').log &
fi
echo `date '+%Y-%m-%d %H:%M:%S.%N'` : "service [$APP_NAME] deploy success"
echo "Build successful"
补充:若是因权限执行失败,需要使用 ⬇️指令给文件或目录添加权限
chmod 777 目录/文件
六、补充
1、增加编译效率修改Maven仓库地址
<!---华为云mirror-->
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
参考文章:
[1]jenkins部署springboot项目(超详细讲解).https://blog.csdn.net/a2285786446/article/details/130981868[EB/OL].
[2]Jenkins-pipeline-Docker 实现CI/CD.http://t.csdn.cn/LZF6F[EB/OL].
[3]Jenkins的简单使用,小白式教程.http://t.csdn.cn/NmBR6[EB/OL].
[4]Linux下的Jenkins安装教程.http://t.csdn.cn/YO1PW[EB/OL].