公司业绩怎么发到建设厅网站上,重慶网站建设,兰州市住房保障和城乡建设局网站,vue.js网站开发用例Jenkins自动化部署入门
一、简介
Jenkins是一个开源软件项目#xff0c;是基于Java开发的一种持续集成工具#xff0c;用于监控持续重复的工作#xff0c;旨在提供一个开放易用的软件平台#xff0c;使软件的持续集成变成可能。
Jenkins自动化部署实现原理 二、Jenkins部…Jenkins自动化部署入门
一、简介
Jenkins是一个开源软件项目是基于Java开发的一种持续集成工具用于监控持续重复的工作旨在提供一个开放易用的软件平台使软件的持续集成变成可能。
Jenkins自动化部署实现原理 二、Jenkins部署环境
基本环境
1.jdk环境Jenkins是java语言开发的因需要jdk环境。
2.git/svn客户端因一般代码是放在git/svn服务器上的我们需要拉取代码。
3.maven客户端因一般java程序是由maven工程需要maven打包当然也有其他打包方式如gradle
以上是自动化部署java程序jenkins需要的基本环境请自己提前安装好下面着重讲解Jenkins的安装部署配置。
Jenkins安装
1.下载安装包jenkins.war Jenkins官网
IT之家 7 月 2 日消息开源 Devops 工具 Jenkins 在官方博客平台宣布从 6 月 28 日发布的 Jenkins 2.357 和将于 9 月发布的 LTS 版本开始Jenkins 需要 Java 11 才能使用将放弃 Java 8。
2.在安装包根路径下运行命令 java -jar jenkins.war --httpPort8080linux环境、Windows环境都一样
3.打开浏览器进入链接 http://localhost:8080.
4.填写初始密码激活系统 重新安装可以把.jenkins 文件删掉注意之前的配置会丢失
5.进入插件安装选择
这里建议选择推荐安装的插件保证基本常用的功能可以使用。
有时候网络有问题会安装失败重新安装就好但是如果版本太低就需要更新版本才能安装插件了
Jenkins 插件安装失败解决办法
6.设置初始用户和密码
7.进入系统安装完成
三、Jenkins基本配置
Configure System (系统设置)
Jenkins设置中文
一、下载Locale插件
1.点击【Manage Jenkins】-【Manage Plugins】选项。
2.点击【可选插件】选项右侧输入【Locale】选项。
3.勾选【插件选项】点击【直接安装】选项。
4.重启Jenkins:在URL后加上【/restart】点击【回车】点击【是】即可。
二、设置为中文
1.点击【Manage Jenkins】-【Configure System】选项。
2.找到【Locale】选项输入【zh_CN】,勾选下面的选项最后点击【应用】即可。
在系统设置这里我们只需要设置最后面的一项配置远程服务器地址即我们代码最终运行的服务器地址信息就像我们之前手动部署时使用xshell登录Linux服务器一样当然这里是可以配置多台远程Linux服务器的配置完成后点击保存即可为后面我们配置自动化部署做准备配置如下图 Configure Global Security (全局安全配置)
配置用户相关的权限 Global Tool Configuration (全局工具配置 )
a.配置maven的全局settings路径 b.配置jdk c、 配置git d、配置maven e、安装必要插件
主要是检查如下这两个插件是否已安装
插件1Publish over SSH 插件2Deploy to container Plugin
安装Publish Over SSH和SSH plugin两个插件
Publish Over SSH插件是用来传输文件的可以Jenkins服务器上编译后的文件到应用服务器上SSH plugin插件为远程执行shell命令的插件可在远程服务器上执行停服务删日志等操作 四、Jenkins自动化部署springBootmavengitHub项目
大体步骤General(基础配置)–》源码管理–》构建触发器–》构建环境–》构建–》构建后操作
1.创建一个工程 2.General(基础配置)
仅需填写标准部分其他可不填写 3.源码管理 上图中点击“添加”按钮添加一组账号和密码 4.构建触发器 如上图当前项目的回调地址为
http://localhost:8080/job/jenkinsSpringBootDemo/build?tokentoken_demo2
只要执行这个地址在浏览器上访问改地址该项目就会发起一次构建项目即拉取代码打包部署操作在实际中是由git服务器回调改地址在后面讲git服务器配置时详细讲解 。
值得注意的是如果你是学习测试使用的是GitHub服务要确保你的回调地址已经试外网映射过的即往外网可以访问
5.构建环境无需配置
6.构建 项目上设置有点复杂单体top-level没法满足
就选择了 Execute Windows batch command
把多个包的打包拆开一步步执行如下是其中一个包的打包 cd my-project cmd.exe /C F:\maven\bin\mvn.bat -s F:\maven\settings.xml -gs F:\maven\settings.xml clean install 7.构建后操作这里配置远程服务器的例子
构建后操作的意思是jar打包好后要将jar发送到哪里去发送后去和启动等
这里需要提前在需要部署的服务器上配置好路径写好启动和停止项目的脚本并设置为可以执行的脚本
其实就是我们平时在Linux上手动部署项目操作的脚本 SSH Server Name远程服务器的名字
Transfer Set
Source files需要上传的文件相对于工作区的路径。看后面的配置可以填写多个默认用,分隔
注意这里用的是相对工作区的路径比如你这个jenkins的工作目录为…/Jenkins/workspace/TEST那这的目录只能是相对于这个目录下的TEST为工程名字
需要上传…Jenkins/workspace/TEST/build/webapp下的文件只需要写build/webapp/**
为目录下的文件要包括文件夹和文件的是*
Remove prefix移除目录只能指定Transfer Set Source files中的目录比如我的Transfer Set Source files为build/webapp/test.jsp那这里Remove prefix则填build/webapp/不然的话远程服务器上会新建build/webapp/目录
Remote directory远程目录和系统配置Remote Directory结合使用一定是绝对路径
如果上传路径为/root/build/webapp,系统配置全局变量配置/,这里的Remote directory为/root/build/webapp
系统配置全局变量配置/root/,这里的Remote directory为/build/webapp即可。
Exec command把你要执行的命令写在里面可以把部署的脚本放在这里执行
案例中给出的stop.sh脚本如下
#!/bin/bashecho Stop Procedure : demo2-0.0.1-SNAPSHOT.jarpidps -ef |grep java|grep demo2-0.0.1-SNAPSHOT.jar|awk {print $2}echo old Procedure pid:$pidif [ -n $pid ]thenkill -9 $pidfi案例中给出的start.sh脚本如下
#!/bin/bashexport JAVA_HOME/usr/java/jdk1.8.0_131echo ${JAVA_HOME}echo Start the program : demo2-0.0.1-SNAPSHOT.jar chmod 777 /home/ldp/app/demo2-0.0.1-SNAPSHOT.jarecho -------Starting------- cd /home/ldp/app/nohup ${JAVA_HOME}/bin/java -jar demo2-0.0.1-SNAPSHOT.jar echo start success注意后面再去修改任务的配置有可能会导致git 的unable to access这时候清理任务的工作区就好
报错
1、ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [127]] 解决方法
Status [127] 代表的是没找到对应的执行文件。
Status [126] 脚本文件的权限不够,增加权限:
2、[Jenkins报错Cannot run program “sh”](https://www.cnblogs.com/xieyang07/p/12545742.html “Jenkins报错Cannot run program “sh””)
Cannot run program “sh” (in directory “C:\Program Files (x86)\Jenkins\workspace\test_netcore_web”): CreateProcess error2, 系统找不到指定的文件
正常下会自己找到执行文件 解决Manage Jenkins- Configure System- Shell- Shell execute C:\Windows\system32\cmd.exe win环境下提示 jenkins The system cannot find the file specified
原因是在选择构建步骤的时候选择错误了
win10环境下选择第一个 linux环境可以选择第二个 3、编码报错 在对应包下设置编码
!\-\- 文件拷贝时的编码 -- 4、打包前端报错单文件太大
问题
The code generator has deoptimised the styling of xxxx.js as it exceeds the max of 500kb
最近在vue项目引用了一个js文件由于这个文件的大小超过了500kb因此在打包的时候抛了一个错The code generator has deoptimised the styling of xxxx.js as it exceeds the max of 500kb。
解决方案
这个问题其实就是babel处理文件的大小被限制在了500kb // 在项目根目录下查找 .babelrc 或 babel.config.js 文件如果没有就创建一个两者其一即可配置如下 // .babelrc: { “compact”: false } // babel.config.js: module.exports { compact: false, } 5、构建后操作Send build artifacts over SSH执行命令报错
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]] Build step ‘Send build artifacts over SSH’ changed build result to UNSTABLE Finished: UNSTABLE
这个是我配置的时候理解错误了
我配置Remote directory了目录属性
以为linux里已经进来路径但其实命令还处于家目录下
所以我执行命令的时候 cd 进入文件的目录确保命令能进行
我是先配置Exec command pwd mytest.txt 然后全局搜索 find . -name “mytest.txt”
确定着陆点是在root下
五、Linux服务器配置
在Liux服务上上传上文中的两个脚本用于启动和停止 六、GitHub服务器配置
在GitHub服务器上的指定项目里面配置上文中提到的回调地址
特别注意为了保证回调地址网可以使用
我已经将地址http://localhost:8080/job/jenkinsSpringBootDemo/build?tokentoken_demo2
通过花生壳进行外网映射为http://zhishidi.imwork.net/job/jenkinsSpringBootDemo/build?tokentoken_demo2
所以下面GitHub配置的是外网映射地址。 七. 测试
1.测试代码 2.提交代码到git,触发构建
3.在GitHub服务器上去看是否已经触发 4.在Jenkins的控制台查看是否正在构建
从下图中可以看出正在构建 5.查看当次构建的控制台日志 说明已经启动成功
6.查看Linux服务器是否上传代码 7.在Linux上使用命令jps查看是否启动 8.浏览器上访问看是否能用 说明已经正常启动可以使用。
9.再次确认是否能自动化部署
修改代码重新提交代码循环1到8步查看。
总结
自动化部署Jenkins作为一款工具有着非常强大的功能上面我们只是讲了生产上做Java自动化部署的一个主要流程其他的功能大家可以参看官方文档Jenkins 用户手册
但是本着学习是为了解决生产的原则个人建议用到Jenkins的什么功能就学什么就可以了
没必要把Jenkins的所有功能都学完在使用就如同我们使用word文档一样并没有系统的他word文档学完后在开始使用而是用到什么功能就学习什么功能
1.案例中的源码地址https://github.com/bangbangw/demo01.git
2.官方文档Jenkins 用户手册
3.博客配套视频在线学习