Jenkins 使用指南
1. 安装
官网参考地址:https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos
Jenkins 需要 Java 才能运行,但默认情况下并非所有 Linux 发行版都包含 Java。此外,并非所有 Java 版本都与 Jenkins 兼容。
运行 Jenkins 需要以下 Java 版本:
官网参考地址:https://www.jenkins.io/doc/book/platform-information/support-policy-java/
Supported Java versions | Long term support (LTS) | Weekly release |
---|---|---|
Java 17 or Java 21 | 2.479.1 (October 2024) | 2.463 (June 2024) |
本指南以:Java 17 和 Jenkins 2.479.1 为例。
1.1 从 yum 存储库安装
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum upgrade
yum install jenkins
1.2 修改 Jenkins 服务的启动文件
vim /usr/lib/systemd/system/jenkins.service
-
修改 Java 环境指向地址
# The Java home directory. When left empty, JENKINS_JAVA_CMD and PATH are consulted. Environment="JAVA_HOME=/home/jdk-17.0.11"
-
修改 Jenkins 用户账号权限
# Unix account that runs the Jenkins daemon # Be careful when you change this, as you need to update the permissions of # $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins) # $JENKINS_WEBROOT. User=root Group=root
2. 启动
-
刷新 service 文件
systemctl daemon-reload
-
使 Jenkins 服务在启动时启
systemctl enable jenkins
-
启动 Jenkins 服务
systemctl start jenkins
-
检查 Jenkins 服务的状态
systemctl status jenkins
3. 解锁 Jenkins
- 浏览到 http://ip:8080 等待 Unlock Jenkins 页面 出现
- 安装所有默认推荐的插件
- 创建第一个管理员账号
4. 安装插件
Dashboard > 系统管理 > 插件管理
-
安装 Blue Ocean:用户美化更直观的看到部署过程
-
安装 Pipeline Keep Running Step:即使构建已完成也保持进程运行
如果不使用这个插件 java 项目后台启动,在构建完成后 java 项目会被自动关闭
5. 全局安全配置
Dashboard > 系统管理 > 全局安全配置
- 跨站请求伪造保护:勾选启用代理兼容
6. 添加用户Token
Dashboard > 系统管理 > 管理用户 > Security
将这个 token 保存 以便 WebHooks 使用
2. 部署 SpringBoot 项目
2.1 安装 maven
springBoot 项目 需要使用 maven 进行打包
官网参考地址:https://maven.apache.org/download.cgi
本指南以:maven 3.9.9 为例。
-
上传至目录:/home
-
解压
cd /home tar zxvf /apache-maven-3.9.9-bin.tar.gz
-
设置环境变量
vim /etc/profile
在文件末尾新增如下内容:
export PATH="/home/apache-maven-3.9.9/bin:$PATH"
-
刷新环境变量
source /etc/profile
-
配置远程仓库地址
<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>
2.2 创建 Jenkinsfile 文件
pipeline {
agent any
environment {
// 定义 java 和 maven 的环境地址
PATH = "${PATH}:/home/apache-maven-3.9.9/bin:/home/jdk-17.0.11/bin"
// jar 包的名称 由 pom.xml 里的内容指定
JAR_FILE = "demo-0.0.1-SNAPSHOT.jar"
}
stages {
stage('打包') {
steps {
// 清除原来的包 并 打新的包
sh "mvn clean package"
}
}
stage('制品') {
steps {
// 将打好的新包 作为成品保存 以便后续回滚
archiveArtifacts artifacts: "target/${JAR_FILE}", followSymlinks: false, onlyIfSuccessful: true
}
}
stage('部署') {
steps {
// 由于我的 nginx 代理使用的是 home 目录下的 jar 包 所以此处需要复制到指定地址
sh "mkdir -p /home"
sh "cp target/${JAR_FILE} /home"
// 查看当前 jar 包的 进程id 并强制停止
sh '''
PID=$(ps -ef | grep "${JAR_FILE}" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
'''
// 启动 并将日志写入 /home/management.log
keepRunning {
sh "nohup java -jar /home/${JAR_FILE} > /home/management.log 2>&1 &"
}
}
}
}
}
2.3 新建任务
- 任务名称:management-server-dispose
- 任务类型:流水线
2.4 设置流水线
-
设置触发远程构建的令牌 例如:123456
-
定义:Pipeline script from SCM
-
SCM:Git
-
Repository URL:选择自己项目的 Git 地址
-
Credentials:设置 Jenkins 凭据提供者(自己项目 Git 的用户名和密码)
2.5 在 Git 项目中设置 WebHooks
http://{登录名}:{用户token}@{ip:port}/job/{任务名称}/build?token={流水线令牌}
- URL:http://admin:123456789abcdefg@127.0.0.1:8080/job/management-server-dispose/build?token=123456
3. 部署 VUE3 项目
3.1 安装 node
官方提供的高版本 node 需要依赖高版本的 glic
可以使用下面的地址下载:
下载地址:https://unofficial-builds.nodejs.org/download/release/v20.18.3/
-
上传至目录:/home
-
解压:
cd /home tar -zxvf node-v20.18.3-linux-armv6l.tar.gz
-
设置环境变量
vim /etc/profile
在文件末尾新增如下内容:
export PATH="/home/node-v20.18.3-linux-x64-glibc-217/bin:$PATH"
-
刷新环境变量
source /etc/profile
-
全局安装 pnpm
npm install -g pnpm@10.6.3
3.2 创建 Jenkinsfile 文件
pipeline {
agent any
environment {
PATH = "${PATH}:/home/node-v20.18.3-linux-x64-glibc-217/bin"
}
stages {
stage('打包') {
steps {
sh "pnpm install"
sh "pnpm run build"
sh "tar -cvf dist.tar dist/*"
}
}
stage('制品') {
steps {
archiveArtifacts artifacts: "dist.tar", followSymlinks: false, onlyIfSuccessful: true
}
}
stage('部署') {
steps {
sh "mkdir -p /home"
sh "cp dist.tar /home"
sh "tar -xvf /home/dist.tar -C /home"
}
}
}
}
3.3 新建任务
- 任务名称:management-front-dispose
- 任务类型:流水线
3.4 设置流水线
-
设置触发远程构建的令牌 例如:123456
-
定义:Pipeline script from SCM
-
SCM:Git
-
Repository URL:选择自己项目的 Git 地址
-
Credentials:设置 Jenkins 凭据提供者(自己项目 Git 的用户名和密码)
3.5 在 Git 项目中设置 WebHooks
http://{登录名}:{用户token}@{ip:port}/job/{任务名称}/build?token={流水线令牌}
- URL:http://admin:123456789abcdefg@127.0.0.1:8080/job/management-front-dispose/build?token=123456
附加:如果系统中没有安装 Git 请先安装 Git
官网参考地址:https://git-scm.com/downloads/linux
-
使用 yum 安装
yum install git
-
安装完成后查看 git 版本
git --version