05-DevOps-Jenkins自动拉取构建代码2

通过前面的操作,已经成功完成了源代码的打包工作,具体操作参见下面的文章:

05-DevOps-Jenkins自动拉取构建代码-CSDN博客

验证打包文件

验证打包后的文件是否存在,进入到Jenkins的工作目录中,找到对应的jar包(192.168.1.10)

cd /var/jenkins/workspace/myproject-ci/target

可以看到生存的jar文件。

到这一步,成功把源代码从本地上传到了Gitlab仓库,然后通过Jenkins自动从Gitlab仓库中拉取到代码,再自动打包。这一系列动作都已经完成。

现在只是生成了jar包,但是还没有对外进行暴露,外部无法访问这个程序,下一步就要把这个jar包发布和启动。

在前面已经提到,计划把应用部署到192.168.1.11服务器上(当前服务器为192.168.1.10)。

配置远程服务器地址

在Jenkins中配置远程服务器的地址(把192.168.1.11配置进去)

找到系统配置

在页面最下面,找到SSH,点击新增

在新增页面中,点击高级选项

填写完成,点击测试,出现success,表示可以连通。

点击应用、保存

配置自动发布

当把程序打包后的文件,传输到应用服务器后,让其自行完成完发布的工作。

找到构建后操作(Post-build Actions)

选择通过SSH这个选项(如果没有这个选项,说明前面的SSH的插件没有安装好)

配置相关参数,让Jenkins能够通过SSH登录完成远程服务器的登录,然后进行文件传输和启动工作。

参数说明:

target/*.jar:将当前工作区生成的jar包文件,发送到远程服务器中。

pkill java :杀掉名称为Java的进程

nohup java -jar /usr/local/target/myproject.jar & sleep 1:使用nohup方式启动jar包,1秒后退出。

注意:

需要在高级选项中,找到Exec in pty 并勾选。

点击应用、保存

再次构建Jenkins,查看控制台输出日志:

看到success,表示构建成功。

验证传输文件

在应用服务器上(192.168.1.11),查看由Jenkins传输过来的jar文件

执行 netstat -tulpn 命令查看当前占用的端口号

可以看到,java程序占用的81端口。

访问应用程序

在浏览器输入192.168.1.11:81,访问springboot的应用。

这里需要配置防火墙,允许81端口被访问。

sudo firewall-cmd --zone=public --add-port=81/tcp --permanent

sudo firewall-cmd --reload

当看到这个内容的时候,Jenkins构建已经成功完成了整个流程,皆大欢喜。

复盘

回顾一下,到这一步为止,已经完成的事情:

1.搭建了GitLab代码仓库,将本地代码提交到仓库。【由GitLab完成】

2.从GitLab代码仓库中克隆代码到Jenkins的工作区【由Jenkins完成】

3.完成代码的编译和测试代码【由Jenkins完成】

4.打包Spring Boot应用【由Jenkins完成】

5.通过SSH传输,将Spring Boot应用最终的jar包,上传到应用服务器(192.168.1.11)【由Jenkins完成】

6.在应用服务器(192.168.1.11)中完成jar包的启动。【由Jenkins完成】

CI/CD流程现在已经正常工作了!!!

相关推荐
APItesterCris3 小时前
实战教程:借助 Open Claw + 淘宝商品 API,低成本实现电商自动化监控与智能选品
大数据·运维·自动化
风曦Kisaki4 小时前
# 自动化运维Day03:Ansible模块进阶(setup,debug),四种常用变量,进阶语法;Ansible Roles(角色)
运维·自动化·ansible
赵民勇4 小时前
Linux strings命令详解
linux·运维
敲代码的瓦龙5 小时前
操作系统?Android与Linux!!!
android·linux·运维
茶乡浪子5 小时前
同子网基于IPv4网络静态VXLAN配置示例(下)
运维·网络·数据中心·vxlan·evpn·华为vxlan·华为数据中心网络
专注API从业者5 小时前
电商选品效率翻倍!基于 Open Claw + 淘宝商品 API 实现自动化监控选品(附完整可运行代码)
大数据·运维·数据结构·数据库·自动化
云计算磊哥@5 小时前
运维开发宝典025-MySQL01数据库的安装和配置
运维·数据库·运维开发
Dxy12393102165 小时前
BAT 窗口不输出日志:三种静默方案,从半隐藏到完全消失
linux·运维·服务器
kida_yuan5 小时前
不想花钱写了一个 Flask 知识库
运维·python
Tian_Hang5 小时前
Linux基础知识(一)
linux·运维·服务器