Jenkins配置自动化流程
# 1. 新建任务
提示
当任务比较多时,可以使用视图来进行快速筛选任务,一般将一个项目的多个子任务,添加到同一个视图内,这样便于快速查看和管理。
登录Jenkins,点击新建视图按钮,新建一个视图,命名为若依
视图创建成功后,会跳转到编辑视图页面。
编辑视图页面,可以选择哪些任务关联到当前视图上。因为目前我们还没有创建任务,所以不用编辑,直接点击Save
按钮。
选择新建任务
按钮,创建一个新任务。
输入任务名称,选择构建一个自由风格的软件项目
,点击OK
,跳转到任务配置页。
# 2. 配置任务
在源码管理输入框,输入GitLab中若依项目的地址。
提示无法连接地址,因为没有权限。在Credentials
按钮下面,点击添加
,再点击Jenkins
,新增一个凭证。
点击添加,回到任务配置页,选择刚刚添加的凭证。
提示
如果依然还有无法连接的警告,请自行检查gitlab的用户名和密码是否填写错误。或者填写的gitlab用户名,没有该仓库的访问权限。
指定分支这里,默认是master,如果你的分支不是master,可以根据实际情况修改为正确的分支名。
勾选Delete workspace before build starts
选项,每次构建任务执行时,都先删除旧数据。
构建步骤,选择执行shell
#进入工作目录,这里引用的是Jenkins提供的环境变量,在执行脚本时,会自动替换为当前目录名称
cd $WORKSPACE
#将项目整体打包,先清除旧包,再打包
mvn clean install -Dmaven.test.skip=true -Dmaven.compile.fork=true
#进入ruoyi-auth目录
cd $WORKSPACE/ruoyi-auth
#构建ruoyi-auth镜像
mvn clean package docker:build -DpushImage -Dmaven.test.skip=true -Dmaven.compile.fork=true
#删除本地的docker镜像
docker rmi -f 192.168.127.132:80/ruoyi_dev/ruoyi-auth:3.6.5
2
3
4
5
6
7
8
9
10
提示
构建镜像时,会先在配置的docker打包地址这个服务器(Jenkins服务器),产生镜像,然后再推送到docker镜像仓库地址。我们使用镜像时,都是从harbor镜像仓库来拉取的,所以在构建完镜像后,删除Jenkins服务器上的本地镜像,以节省服务器存储空间。
配置完脚本,点击Save
按钮保存。
# 3. 执行任务
点击立即构建
,开启构建任务。
点击构建任务,可以实时查看构建日志
任务执行完成,登录harbor,查看推送的镜像。
继续新建任务,将其他模块都加上。
提示
当有已经创建好的任务时,可以通过复制功能,快速创建其他任务。
# 4. 配置前端打包
前端打包任务配置和之前的都是一样的,只有执行shell的脚本不一样。
cd $WORKSPACE/ruoyi-ui
npm config set strict-ssl false
npm install
npm run build:prod
docker build -t 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5 .
docker push 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5
docker rmi -f 192.168.127.132:80/ruoyi_dev/ruoyi-ui:3.6.5
2
3
4
5
6
7
8
9
所有的任务都打包完成后,就可以配置启动任务了。
# 5. 安装ssh插件
要配置自动更新任务,需要远程执行shell,Jenkins需要安装ssh插件
点击左侧系统管理
点击插件管理
搜索框输入ssh
选择Publish Over SSH
插件,并安装。
等待安装完成,就可以使用了。
# 6. 配置SSH服务
点击系统管理
——>系统配置
拖到最底下,找到SSH Servers
点击新增
填写服务器信息,点击Save
,保存。
# 7. 配置启动服务任务
新建一个任务
不需要其他任何配置,只在构建步骤这里,选择Send files or execute commands over SSH
在SSH Server
选项,选择刚刚配置好的ssh服务器。
点击高级
,勾选Credentials
,配置远程服务器的用户名和密码
在Exec command
输入框内,输入需要远程执行的shell命令
#进入目录
cd /root/project/ruoyi/server
#先停止所有服务
docker-compose down
#删除所有包含“ruoyi”关键词的镜像
docker images --format "{{.Repository}}:{{.Tag}}" | grep 'ruoyi' | xargs docker rmi
#启动所有服务,docker会自动拉取镜像
docker-compose up -d
2
3
4
5
6
7
8
任务配置完成后,点击立即构建
构建成功后,访问项目部署服务器的10003端口
登录系统,查看功能是否正常。
进入nacos,查看服务是否注册正常
# 8. 总结
到此为止,整个自动化部署流程就建立好了,再回顾一下整个流程:
当有新的功能提交后,登录Jenkins后台,直接执行对应模块的构建任务,然后再执行启动任务就行。
其实利用GitLab的hook功能,可以做到一提交代码就自动构建,完全不需要人为参与构建。只是这种构建方式过于频繁,生产环境是不能使用这种方式的。
Jenkins还有其他更多的触发器来自动触发构建,这个各位读者可以自行探索。