前言
本篇文章将介绍Jenkins的安装及项目配置的具体方法,同时增加Jenkins用户管理的部分。
其中有些操作步骤则直接给出的参考文档,通过参考文档即可完成相应的步骤。
Jenkins中文官网:Jenkins 用户手册
一、Jenkins安装
Jenkins由Java语言编写而成,安装包即是一个war包。因此,Jenkins的运行启动依赖于Java环境,同时,它是免安装的。
1.1 安装JDK
1.2 安装 Maven(后端打包需要)
这里需要注意一下,如果你不需要通过Jenkins来打包后端项目,则无需安装Maven。
1.3 安装Git
1.4 安装NodeJS(前端打包需要)
这里需要注意一下,如果你不需要通过Jenkins来打包前端项目,则无需安装NodeJS。
1.5 安装Jenkins
1.5.1 下载Jenkins的war包
官网地址如下:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
1.5.2 上传至Linux并运行
注意:
1、你应当准备一个目录用于存放Jenkins的war包和日志文件,例如:/usr/local/jenkins。
2、你使用哪个用户启动Jenkins,Jenkins就会在该用户的home目录下创建一个隐藏文件夹 .jenkins。该文件夹的占用的磁盘空间较大,需要注意磁盘空间挂载情况。同时该目录是可以更改的,具体参考百度。
3、并非任何用户均可启动Jenkins,你应当选择一个拥有项目所在目录权限的用户启动,避免在Jenkins更新项目的时候出现Linux权限问题。
cd /usr/local/jenkins
## 创建Jenkins运行日志文件
touch jenkins.log
## 启动Jenkins
nohup java -jar jenkins.war --httpPort=9999 > jenkins.log 2>&1
1.5.3 完成安装
浏览器访问 https://127.0.0.1:9999,即可访问jenkins,随后完成解锁。
完成解锁之后,选择安装推荐的Jenkins插件,等待完成初始化。
1.5.4 设置中文
二、Jenkins配置
当你安装完成Git、Maven、NodeJS之后,如果你需要让Jenkins使用它们,则还需要安装对应的插件。
2.1 下载必要的插件
点击 系统管理 --> 插件管理 --> 可选插件,搜索安装即可。
2.1.1 安装Git
2.1.2 安装NodeJS
2.1.3 安装Maven
安装完成之后,重启Jenkins。
重启方式:Jenkins访问地址,拼接 /restart 即可。
2.2 配置JDK、Git等
点击 系统管理 --> 全局工具配置。
2.2.1 配置JDK(填写JDK安装路径即可)
2.2.2 配置Git(无需填写Git地址,Git命令全局可用)
2.2.3 配置Maven(填写Maven安装路径即可)
2.2.4 配置NodeJS(填写NodeJS安装路径即可)
三、项目配置
3.1 配置前端项目
## 防止打包结束后进程被杀死
BUILD_ID=DONTKILLME
## 下载依赖
npm run install
## 打包
npm run build
## 删除原项目文件
rm -rf /home/data/tomcat-9.0.63/webapps/frontend
## 复制新打包的项目文件,注意当前所在的目录即为jenkins的工作目录,例如:/root/.jenkins/workspace/frontend。当然你也可以使用全路径。
cp -R dist /home/data/tomcat-9.0.63/webapps/frontend
## 重启tomcat
/home/data/tomcat-9.0.63/bin/shutdown.sh && /home/data/tomcat-9.0.63/bin/startup.sh
3.2 配置后端项目
这里需要注意一下,如果是单体项目,直接 clean install 即可。如果是多模块项目,需要打包对应的子模块,则可以参考如下命令:
clean install -pl scs-nacos -am -amd -Pdev -Dmaven.test.skip=true
表示只打包项目的scs-nacos子模块及其依赖的模块。
clean install -pl scs-biz/scs-biz-device -am -amd -Pdev -Dmaven.test.skip=true
表示只打包项目的scs-biz子模块的scs-biz-device子模块及其依赖的模块。
## 防止打包结束后进程被杀死
BUILD_ID=DONTKILLME
PID=`jps -l | grep -w "jenkins_test" | awk '{print $1}'`
if [ !$PID ]; then
echo "=========== 项目未启动!"
else
## 停止项目
kill -9 $PID
fi
sleep 1
## 复制,并替换jar文件
cp /root/.jenkins/workspace/backend/target/backend.jar /home/jenkins/backend.jar
## 重启项目
nohup java -jar backend.jar > backend.log 2>&1 &
3.3 启动项目
四、用户权限管理
4.1 用户管理
4.1.1 Jenkins用户列表
在Jenkins的用户列表中,可以看到所有用户(jenkins用户、有提交记录的git用户)。
4.1.2 用户管理
在 系统管理 --> 管理用户 模块中,才能管理jenkins用户。
4.2 权限管理
4.2.1 下载权限控制插件
Jenkins 自身的权限控制颗粒度较大,无法适应细粒度的权限管理。因此,我们通过
Role-based Authorization Strategy 插件来做权限控制。
4.2.2 使用权限控制插件
修改授权策略,使用Role-Based管理授权。
4.2.3 创建角色、配置权限
4.2.4 给用户分配角色