默认你已经安装并配置好了jenkins,并且已经本地服务器已经安装好JAVA和MAVEN。如果还不知道怎么安装与配置,参考前文说过的jenkins安装与配置。
jenkins安装与配置
本章主要偏向于实战应用,对于一些配置项的说明后面有空的话专门出一篇文章进行说明。
我们要做什么?
一般在中小型企业,或者自己开发做一些demo项目时,最后的部署环境是我们避免不了的。 对于微服务架构盛行的如今,部署也越来越繁琐。但这本就是一个重复且耗时的操作。CI/CD相关技术已经非常成熟,利用现成的工具帮助我们减少重复的劳动难道不香么😇。
今天和小伙伴们一起来搭建一套自动部署流程。包含以下内容
1、jenkins 关联gitLab/svn 自动拉取代码
2、jenkins 自动部署多个微服务jar
3、jenkins 自动部署vue项目
4、jenkins 将打包好的文件上传到远程服务器自动运行
准备工作
准备插件:
修改配置
- 目录: Manage Jenkins -> Global Tool Configuration
注意你的node版本需要和项目兼容
本地服务器没有安装git要提前安装下。一行命令即可,测试也不用配置密钥文件。yum -y install git
- 目录: Manage Jenkins -> Configure System
找到Publish over SSH
用来配置远程服务器地址信息
新增微服务自动构建任务
新建任务和配置
选择maven项目
General
源码管理
构建触发器
构建环境
Pre Steps
Build
注意你的项目里pom文件的位置。
Post Steps
启动任务
也可以在Dashboard通过绿色小箭头启动
可能出现的问题
1、连接远程服务器超时:
如果你的远程服务器的脚本执行时间过长就会出现这个问题。调整下超时时间就可以了
2、无法运行命令"java": 没有那个文件或目录
在通过jenkins远程运行脚本之前,**一定先在本地试下执行脚本有没有问题, 有时候本地执行没问题远程执行也可能出现问题,所以一定要看日志!一定要看日志!一定要看日志!重要的事情说三遍!不仅仅是jenkins控制台里的日志,脚本启动服务的日志也一定要看。**这里的问题就是远程执行的时候找不到java命令。加上java全路径就可以了。
nohup /usr/local/java/jdk1.8.0_333/bin/java -jar
3、运行了脚本,构建也成功了。进程一开始还在,后面又没了?
有些版本的jenkins默认会杀死由shell脚本启动的衍生进程。在需要运行的脚本前加入一行命令。然后在系统配置里添加一个环境变量
#DontKillMe是自定义的
BUILD_ID=DontKillMe
-----------------------------------------------------------------------
BUILD_ID
allow_to_run_as_daemon
4、构建显示成功了,但目标服务器没看到文件
一般这种情况往往是传输文件的配置信息错误
注意查看jenkins控制台日志
如果你这里是0的话就得好好去看看配置的对不对了,这里已经给予了详细的说明。基于工作空间的目录看看你的文件在哪里。
新增vue自动构建任务
新建任务和配置
为了全面,这里svn也给大家准备上了,配置和git差不多
vue传输过去一般不用进行什么操作,提前在目标服务器上配置好nginx就可以了
启动任务
相比较微服务的构建还是要简单不少的,主要注意的有node的版本问题,最好跟你本地启动的版本保持一致。然后还有传输目录的配置问题。 最好提前规划好到目标服务器的哪个位置。多看日志。
总结
到这里,我们本章的自动部署就结束了。 也没有那么难哈。
最主要的就是: 多看日志!多看日志!多看日志!
毕竟光靠jenkins本身,有些部门没有提示信息我们也不知道哪里报错了。要从整体项目的运行来看每个步骤。