赞
踩
某些企业因为安全等原因所以无法连接外网,但又希望团队能够做到CI&CD,所以今天这篇文章笔者就来演示一下如何基于内网部署一套基于nexus+maven+Jenkins+gitlab实现Jenkins自动化部署落地方案。
本文算是对于CI&CD一个综合部署方案的总结,如果希望详细了解这其中每一个技术点的读者可以参考笔者写的这几篇文章,仔细阅读可以对后续文章很多细节有深入的了解:
基于Gitee实现Jenkins自动化部署SpringBoot项目
注意本文自动化部署部署方案仅仅针对Java后端项目,并没有提及前端的部署教程,所以有需要前端自动化部署的用户还需自行到网上查阅相关方案。
首先我们打开IDEA修改一下代码,完成后点击push将代码提交。
随着代码提交可以看到Jenkins自动触发了。
我们点开控制台查看一下日志。可以看到本次拉取和打包的分支都是最新的分支,待Jenkins部署完成之后,我们运行系统就会看到系统的变化了。
由于内网部署的情况基本是针对公司服务器的,所以建议读者在正式在服务器上部署前,根据企业服务器的型号找到对应的镜像到虚拟机中模拟安装一遍,确保整个流程无误之后,再到正式服务器中进行安装部署,从而避免一些没必要的问题。
这一步就不多赘述了,笔者上文已经提到了相关的文章,读者可以按照这三篇文章的指导完成纯内网的部署。
关于内网的maven安装教程可以参考笔者的这篇文章。
补充,可能很多读者的内网环境中有很多jdk版本,导致maven可能无法正常运行,如果希望maven能够基于指定jdk运行且不改变环境变量的话,我们建议编辑maven的mvn文件
vim maven-3.5.4/bin/mvn
如下图所示,手动加入export JAVA_HOME=/home/lmode/jdk1.8.0_211/
指定jdk版本
关于git的内网安装步骤也可以参考笔者的写的这篇文章
在拉取项目过程中可能会出现“fatal: unable to access ‘https://…git/’: SSL certificate problem: self [signed](https://so.csdn.net/so/search?q=signed&spm=1001.2101.3001.7020) certificate in certificate chain
的问题,查阅网上资料,该错误原因是:公司bitbucket只支持https地址,所以client需要配置忽略https证书检验绕过这一步。
所以在正式配置Jenkins的item前,我们可以在服务器上键入如下命令
git config --global http.sslVerify false
注意:配置这个git选项的用户一定要和Jenkins启动用户一致,否则可能导致你配置用户a的避免校验设置,而Jenkins用b用户的git环境依然导致上述问题。
针对内网安装,我们必须确保自己手头有相关的下载资源,读者可以参考笔者这篇文章准备好完整的离线资源。
准备就绪之后,我们将资源上传自服务器。以笔者为例在服务器上创建一个名为Jenkins_home的目录。
然后将插件的文件夹plugins和war包都扔到该目录下。
对应的war也放到这个目录,便于管理。
完成之后,我们就可以将Jenkins启动和配置了,关于启动和具体配置步骤可以参考笔者的这篇文章
基于Gitee实现Jenkins自动化部署SpringBoot项目
如果有时间的读者建议全篇阅读,如果希望尽快完成初始化配置可直接从启动Jenkins开始按步骤进行配置。
读者按照上述的步骤正常情况下是可以完成基于Jenkins完成构建和打包的过程,接下来我们希望能够实现自动化,即只要我们提交代码,就会触发Jenkins的构建,从而完成CI&CD。
大部分公司项目都是放在内网的gitlab中,所以我们这里需要通过对gitlab和Jenkins做一些配置从而实现持续集成和持续部署。
首先我们找到Jenkins,点击配置。
找到构建触发器,勾选下图所示选项,并将url的值复制下来,后续配置gitlab会用到(注意,图中可以看到很多地方打勾,其实都是默认的,读者无需关注,按照默认的勾即可)。
点击勾选后往下滑一点可以看到一个高级的按钮,我们点击一下。
同样的会有一个生成token的选项,我们点击生成得到一个token串,同样将其复制保存下来,后续配置gitlab会用到。
注意这里配置完成之后建议重启一下Jenkins,否则可能出现配置不生效的情况。
找到对应的项目找到其webhooks设置一项,将上文中得到的url和token粘贴上去。
完成后到下方点击add保存生效。
然后再次点击webhooks我们就会看到这样一个选项,我们点击测试查看配置是否成功。
如果页面的上方出现这样一个弹窗就说明我们的配置生效了,gitlab可以成功触发Jenkins构建。自此我们只要提交代码就可以触发Jenkins构建了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。