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流程现在已经正常工作了!!!

相关推荐
林开落L43 分钟前
Linux深度探索:进程管理与系统架构
linux·运维·系统架构
XINO1 小时前
防火墙双机热备实践
运维·安全
神洛华1 小时前
Docker概念详解
运维·docker·容器
四川合睿达自动化控制工程有限公司1 小时前
管道位移自动化监测方案
运维·自动化
007php0071 小时前
Docker Compose 安装Elasticsearch8和kibana和mysql8和redis5 并重置密码的经验与总结
大数据·运维·elasticsearch·搜索引擎·docker·容器·jenkins
XINO1 小时前
企业常见安全事故排查思路
运维·安全
自由如风7092 小时前
Apache Atlas构建安装(Linux)
linux·运维·apache
烦躁的大鼻嘎2 小时前
【Linux】进程替换与自定义 Shell:原理与实战
linux·运维·服务器·ubuntu
merge不墨迹3 小时前
Kubernetes 创建 Jenkins 实现 CICD 配置指南
kubernetes·jenkins
Run1.3 小时前
深入解析 Linux 文件系统中的软硬链接:从原理到实践
linux·运维·服务器