Jenkins打包Gitlab代码发布到远程Linux服务器

简介: Jenkins打包Gitlab代码发布到远程Linux服务器

引言

首先贴上一张Jenkins部署的原理图:

从上图可以知道,Jenkins自动化部署流程如下:

  1. Jenkins通过Git/SVN插件从远程代码仓库检出代码
  2. Jenkins通过Maven插件对代码进行打包
  3. Jenkins使用Deploy插件(如ssh)发布打包后的代码去远程应用服务器

对于Jenkins,要实现以上功能,必须满足以下几个条件:

  • 安装JDK、Maven仓库
  • 安装git/svn插件、maven插件、deploy插件(如ssh)
  • 配置项目相关的内容(如:git仓库地址、maven命令、执行脚本等)

下面来讲解下。

Step1: Jenkins配置基础环境

首先进入路径:首页 -> Manage Jenkins -> Global Tool Configuration

① 配置JDK :在Jenkins的环境下,查询JAVA_HOME路径并配置(先安装好JDK,或自动安装也可以),配置如下图:

② 配置Maven:在Jenkins的环境下,查询Maven路径并配置环境(手动或自动安装也可以):

③ 配置Git:手动或自动安装也可以:

Step2: 插件安装

首先进入路径:首页 -> Manage Jenkins -> Plugin Manager,如下图:

安装的插件如下:

Git、GitLab、SSH plugin、SSH Slaves(除开默认)

Step3: 配置项目相关内容

①首先在主页,新建一个项目,输入名称:

②进入项目后,选择Configure:

③配置的核心内容如下:

  • Description(描述)
  • JDK(改项目使用到的JDK版本)
  • 配置源码地址,需要构建的分支
  • Build Environment(构建的环境)
  • Maven脚本
  • SSH远程连接服务器配置
  • 复制本地编译后的内容到远程服务器脚本(例如:scp \ /var/jenkins_home/workspace/项目/target/xxx.jar \ service@192.168.1.101:~/web-pack/xxx.jar):
  • 拷贝之后的第一条命令,即杀掉正在运行的程序(命令如:PID=$(ps -ef | grep xxx.jar | grep -v grep | awk '{ print $2 }') if [ -z "$PID" ] then echo Application is already stopped else echo kill $PID kill -9 $PID fi
  • 执行第二条命令,复制拷贝的包到指定的目录(命令如:cp ~/xxx.jar ~/xxx_bak.jar mv ~/web-pack/xxx.jar ~/xxx.jar
  • 启动脚本(命令如:cd ~/message nohup java \ -Xms256m \ -Xmx256m \ -jar xxx.jar --spring.profiles.active=test --server.port=10020 &

最后点击save(保存)即可。

Step4: 开始构建

点击Build Now,可以看到下面正在构建,如下图:

点击进度条,可以进去看到构建内容详情:

最后可以看到项目正在运行:

在本文末,贴上相关的文章:

Jenkins详细配置的文章链接:

其实还可以使用钩子程序,不需要每次都动手去构建:

目录
相关文章
|
6天前
|
数据可视化 Shell Linux
shell+crontab+gitlab实现ecs服务器文件的web展示
本文通过把ecs服务器上的文件定时上传至gitlab,实现文件的页面可视化和修改历史。技术点:shell、crontab、gitlab。
34 3
|
1月前
|
消息中间件 Kubernetes NoSQL
Linux时间校准(ntpdate及NTP客户端代码校准示例)
Linux时间校准(ntpdate及NTP客户端代码校准示例)
|
1月前
|
移动开发 缓存 网络协议
Websocket协议原理及Ws服务器代码实现
Websocket协议原理及Ws服务器代码实现
|
1月前
|
API C++
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(1)
前言   本文旨在学习socket网络编程这一块的内容,epoll是重中之重,后续文章写reactor模型是建立在epoll之上的。
25 0
|
1月前
|
监控 安全 Linux
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现(3)
高并发服务器模型-poll poll介绍   poll跟select类似, 监控多路IO, 但poll不能跨平台。其实poll就是把select三个文件描述符集合变成一个集合了。
26 0
|
23小时前
|
Linux Windows
Linux:为什么要打包和压缩?
Linux:为什么要打包和压缩?
Linux:为什么要打包和压缩?
|
1天前
|
自然语言处理 数据挖掘 Linux
ModelScope问题之拷贝到内网linux系统运行代码报错如何解决
本合集将提供ModelScope安装步骤、配置要求和环境准备,以便用户顺利启动ModelScope进行模型开发和测试。
15 0
|
25天前
|
Ubuntu 网络协议 Linux
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发
21 0
|
26天前
|
前端开发 开发工具 Android开发
【服务器APP】利用HBuilder X把网页打包成APP
【服务器APP】利用HBuilder X把网页打包成APP
152 0
|
1月前
|
机器学习/深度学习 存储 NoSQL
【Linux系统编程】代码调试工具gdb--2
【Linux系统编程】代码调试工具gdb--2

相关产品

  • 云迁移中心