今年五月的时候玩了一下 Jenkins,最新版本 2.414.3 ,JDK 11 。本机有两个 JDK,只放到 Tomcat 里面了,看到了一个启动页面,后面有其他事情就忘记了。最近又想起来,觉得还是应该玩一下这么有技术含量的东西的。它能自动拉取代码,自动发布,比 maven 的 wagon-plugin 插件高级多了。
本文记录笔者利用 jenkins 和 maven 的 wagon-plugin 插件组合实现一个 Shell 自动部署的任务,距离解放双手,又前进了一步。
各组件版本信息及解压处理方法:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-11.jdk"。
进入 tomcat 目录启动 Tomcat,启动过程中碰到一个异常:
解决办法:参考 该文 修改 tomcat/conf/contex.xml 文件,在 context
节点下添加一行 :
<Resources cachingAllowed="true" cacheMaxSize="100000" />
在浏览器输入 jenkins 访问路径,首次访问时要求输入 jenkins 的默认密码,对着tomcat 的 catalina.out 日志去找密码拷贝输入就可以了。初始化选择安装推荐的插件,等待插件完成:
部署的目标主机插件安装过程很快,不像我本机安装的时候,推荐插件只安装成功了几个其他全失败了。
安装完成后需要创建一个帐号,按照提示输入就可以了。默认安装的推荐插件中有一个本地化简体中文插件的,完成后访问 jenkins 页面上有些菜单就是中文了。但是它汉化得不完整,还是夹杂着几个英文菜单的。
需要为 Jenkins 添加一下配置,如 JDK【可以添加多个,创建任务的时候再选择】、maven
「Manage Jenkins 」菜单是管理页面,它没被汉化,主要管理插件、系统配置、全局配置等,例如:【只截取了一个屏】
点击 Tools 菜单,配置基本的工具,依次指定 maven 的配置文件,JDK HOME 路径、MAVEN 安装路径等。
再点击 Plugin 菜单,安装 SVN 插件。
这样,基本的准备工作就完成了。
点击主界面的 「新建 Item」进入任务创建页面:
选择 「Freestyle project」类型,点击“确定”,就可以进入任务配置页面了,配置项主要有:
逐个添加配置,我这里基于 SpringBoot 的多模块的微服务项目,并且配置了 wagon-plugin 插件的应用,编写了一个自动化构建脚本。
#不允许 Jenkins 杀死当前脚本进程
BUILD_ID=DONTKILLME
#定义代码根路径
codePath=$WORKSPACE/myCode
echo code path is $codePath
#进入代码根路径对整个模块打包
cd $codePath
mvn clean package
#定义模块列表数组
moduleList=(a b c d e f)
#遍历数组:逐个执行自动部署命令,${#moduleList[@]}获取数组的长度
for((i=0;i<${#moduleList[@]};i++)) do
cd $codePath/${moduleList[i]}
mvn wagon:upload-single wagon:sshexec -X
done
点击 Build Now 执行任务,查看任务构建结果,模块过多的话,上述脚本执行很慢,等待其执行完成,成功的话,是绿色的。
这个过程中,遇到的阻碍就是版本和 JDK 版本的问题,还有一个就是初始化过程中的推荐插件的安装,几乎都不成功。以为必须都安装成功,才能使用,其实并不需要。传统应用开发,都是人工操作,几乎都用不上这些自动化运维的工具。说实话,搞这一套环境,还是挺不错的!
另外,Jenkins 的任务类型四种:
但是 ExternalProject 几乎没有配置信息,它能干甚呢?
第三种「多配置项目」,它和自由项目多了一个配置矩阵,但是配置矩阵到底怎么使用?部署脚本中的脚本内容,并没有执行。
本文只用了 Jenkins 的最基本的简单用法,还有一些高级 Pipeline 、多环境配置等高级用法,并不是我们看到的这个简单的页面,用户文档: