魔站建站系统哪家好,欧美做视频网站,河西区做网站的公司,重庆农村网站建设背景
今年五月的时候玩了一下 Jenkins#xff0c;最新版本 2.414.3 #xff0c;JDK 11 。本机有两个 JDK#xff0c;只放到 Tomcat 里面了#xff0c;看到了一个启动页面#xff0c;后面有其他事情就忘记了。最近又想起来#xff0c;觉得还是应该玩一下这么有技术含量的…背景
今年五月的时候玩了一下 Jenkins最新版本 2.414.3 JDK 11 。本机有两个 JDK只放到 Tomcat 里面了看到了一个启动页面后面有其他事情就忘记了。最近又想起来觉得还是应该玩一下这么有技术含量的东西的。它能自动拉取代码自动发布比 maven 的 wagon-plugin 插件高级多了。
本文记录笔者利用 jenkins 和 maven 的 wagon-plugin 插件组合实现一个 Shell 自动部署的任务距离解放双手又前进了一步。
部署包准备
各组件版本信息及解压处理方法
JDK-11tar.gz 直接解压目标主机上是JDK1.8。maven-3.6.2tar.gz 直接解压bin 目录添加到环境变量。node-12.22tar.gz 直接解压bin 目录添加到环境变量因为 18以后的高版本对 gcc 有要求所以选择一个低版本。这个组件主要是用来对前端模块进行编译的对于前后台分离的应用来说是必须的。tomcat-9.0.82修改启动脚本 catalina.sh 前面几行添加环境变量配置export JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-11.jdk。jenkins-2.414.3.war最新版本移动到 tomcat-9.0.82 的 webapps 目录下。
启动 Tomcat
进入 tomcat 目录启动 Tomcat启动过程中碰到一个异常 解决办法参考 该文 修改 tomcat/conf/contex.xml 文件在 context 节点下添加一行
Resources cachingAllowedtrue cacheMaxSize100000 /初始化 jenkins
在浏览器输入 jenkins 访问路径首次访问时要求输入 jenkins 的默认密码对着tomcat 的 catalina.out 日志去找密码拷贝输入就可以了。初始化选择安装推荐的插件等待插件完成 部署的目标主机插件安装过程很快不像我本机安装的时候推荐插件只安装成功了几个其他全失败了。
安装完成后需要创建一个帐号按照提示输入就可以了。默认安装的推荐插件中有一个本地化简体中文插件的完成后访问 jenkins 页面上有些菜单就是中文了。但是它汉化得不完整还是夹杂着几个英文菜单的。
到这里Jenkins 就部署完成了主界面长这样
全局配置
需要为 Jenkins 添加一下配置如 JDK【可以添加多个创建任务的时候再选择】、maven
「Manage Jenkins 」菜单是管理页面它没被汉化主要管理插件、系统配置、全局配置等例如【只截取了一个屏】 点击 Tools 菜单配置基本的工具依次指定 maven 的配置文件JDK HOME 路径、MAVEN 安装路径等。
再点击 Plugin 菜单安装 SVN 插件。
这样基本的准备工作就完成了。
创建任务
点击主界面的 「新建 Item」进入任务创建页面 选择 「Freestyle project」类型点击“确定”就可以进入任务配置页面了配置项主要有
JDK【如果配置了多个 JDK 才会出现该选项】因为 1.8 的 rt.jar 中有很多工具类高版本里面没有所以最好配置一个 1.8 的 JDKJDK 11 只是为 Tomcat 启动 jenkins 服务的。源码管理选择 SVN 配置 SVN 路径添加凭证。构建触发器可以选择定时器或者轮训源码变更定时器。构建环境可以勾选构建失败的判断条件指定超时时间需要考虑应用构建时间如果设置过短可能会导致任务构建过程中被终止。Build Steps可以选择 Shell 方式编写 Shell 脚本完成构建。构建后的操作没有就不配置。
逐个添加配置我这里基于 SpringBoot 的多模块的微服务项目并且配置了 wagon-plugin 插件的应用编写了一个自动化构建脚本。
自动部署脚本
#不允许 Jenkins 杀死当前脚本进程
BUILD_IDDONTKILLME#定义代码根路径
codePath$WORKSPACE/myCode
echo code path is $codePath#进入代码根路径对整个模块打包
cd $codePath
mvn clean package#定义模块列表数组
moduleList(a b c d e f)#遍历数组逐个执行自动部署命令${#moduleList[]}获取数组的长度
for((i0;i${#moduleList[]};i)) docd $codePath/${moduleList[i]}mvn wagon:upload-single wagon:sshexec -X
done点击 Build Now 执行任务查看任务构建结果模块过多的话上述脚本执行很慢等待其执行完成成功的话是绿色的。
启示录
这个过程中遇到的阻碍就是版本和 JDK 版本的问题还有一个就是初始化过程中的推荐插件的安装几乎都不成功。以为必须都安装成功才能使用其实并不需要。传统应用开发都是人工操作几乎都用不上这些自动化运维的工具。说实话搞这一套环境还是挺不错的
另外Jenkins 的任务类型四种
本文用的 FreeStyleProjectExternal Project多配置的项目文件夹项目类似任务分组。
但是 ExternalProject 几乎没有配置信息它能干甚呢?
第三种「多配置项目」它和自由项目多了一个配置矩阵但是配置矩阵到底怎么使用部署脚本中的脚本内容并没有执行。
本文只用了 Jenkins 的最基本的简单用法还有一些高级 Pipeline 、多环境配置等高级用法并不是我们看到的这个简单的页面用户文档
https://www.jenkins.io/doc/book/blueocean/getting-started/https://www.jenkins.io/zh/doc/tutorials/build-a-multibranch-pipeline-project/