Jenkins

Jenkins

想起老的项目部署方式的时候,真的让人头疼,因为我们需要对项目进行打包,然后手动上传到服务器上。但是现在微服务时代到来,我们肯定是需要一个东西帮我们自动部署代码,所以Jenkins应运而生。这一篇我会聊聊它。

工作流程

在这下面的流程中我们可以在其中加入我们的shell脚本,比如在获取代码之前编写,或者maven打包之后,Jenkins当执行到某个流程的时候,就会自动对我们的shell进行执行,从而达到我们的效果。

  • Jenkins获取我们的代码
  • 使用maven进行打包
  • 进行部署

 

从创建到发布

我们有几点是必须的

  •  jdk1.8的安装:因为Jenkins是java写的,所以它需要java的环境。
  • maven的安装:我们平常是在自己本地进行maven打包,那在Jenkins也需要maven作为支撑。
  • git的安装:从git上拉取代码,是一方面。另一方面,我们平常在本地对代码进行提交的时候,也需要git.那我们需要Jenkins为我们做这些,就需要给它这个环境。
  • 并且我们需要让Jenkins知道我把这些东西都放在那里呢,这个需要我们在它的【全局工具配置】中指定相关路径

【安装maven插件】

【创建项目、拉取代码】

 

首先在启动中生成一个ssh秘钥,并且在github上建立一个相关的key,并且把系统中生成的ssh秘钥放在里面。

【linux中生成ssh 】【ssh-keygen -t rsa -C "邮箱名"】 

【获取公钥】:cat /root/.ssh/id_rsa.pub 放在git上

【获取私钥】:cat /root/.ssh/id_rsa 放在Jenkins上,上下我圈的地方也要。

这里切记已经做了我们上面的必须工作。否则会获取不到代码。

 

 【项目构建】

上面我们配置好了他拉取的代码地址,并且把所需要的东西都已经搭建好了,这个时候我们其实就可以拉取项目并且编译了。

在我的视图这里,点进去我们的项目,并且进行拉取和编译。

 点击立即构建

 构建完成后就变成了

 然后发现在我们的target下就有已经打包好的jar

这个时候我们要做的就是把这个jar发送到我们的服务器上的一个文件夹中,然后写脚本对这个jar进行启动。

在jenkins中的构建后操作中选择 Send build artifacts Over SSH,这个的前提是安装ssh的插件,并且配置好公私钥,和连接的服务器地址

这里记得在系统管理中的系统配置中对ssh进行配置

并且在Exec command中写上传递过去要执行的脚本。这就是我们要启动项目的脚本。这样,项目就启动了。

整体梳理

【准备】

  • 准备好jdk、maven、git
  • 安装ssh插件、maven插件
  • 配置ssh的服务地址(系统配置中),jdk地址、maven地址(全局工具配置中)。

【流程】

  • 构建一个maven项目,
  • 编写上传到github的项目地址,
  • 编写执行前脚本
  • 编写maven命令( 也可以不写,他会默认),
  • 进行执行后操作,传递到相关服务器上的文件夹下。
  • 并且执行执行后的sh文件,这个文件中包含了对项目的启动。

【相关想法】

如果想要上传后就编译怎么办?

  在github上有一个webhook,当github上的节点有修改,就会触发放在他上面的一个地址,这个地址就会执行我们的项目编译这一动作。

启动后的jar是否有东西进行管理,如果宕机的话。

  我们可以使用supervisor进行管理,他可以对这些jar进行重启。

posted @ 2021-11-19 12:51  UpGx  阅读(173)  评论(0编辑  收藏  举报