mvn只是众多项目工具构建的一个,如果项目是gradle构建的,就用gradle,如果是c语言就用c的构建
重新下载jenkins包,直接通过tomcat来运行,安装,复制rpm包中的war格式文档到tomcatwebapps目录下
解锁,直接安装推荐的
另外一个主机的jenkins第一次登录需要输入管理员账号
账号密码admin,不输入可以点continue
系统管理有管理插件,可以选择插件
系统管理,系统设置,需要设置tomcat,utf-8的编码,url encoding =utf-8
不设置这个了,设置新装的即可
系统设置,配置jenkins的整个环境
可以理解为线程,
如何与你的代码仓库进行交互的
162和163是允许远程方式接收 发送邮件的
全局工具设定,需要做下设置
可以选择自动安装,
也可以自定义,可以多版本并存,/usr/会自动找bin
gradle新版本的构建工具,ant更老,用脚本构建,主流是maven,/iusr,意思就是bin的父目录
docker要做集成急需要配置docker工具
启动docker服务
如果想要基于tomcat接口部署的话,可以找他的插件工具
jenkins用的多的还是build方面
这里是使用capistraino发布的
使用tomca自己的manager部署,创建一个项目
一般使用两种,构建自由风格的软件项目
pipeline 流水线,测试,释出,交付,发布,部署
代码一般放github,或者svn,gitlab
参数化构建可以自定义参数
第一步给一个代码的路径
源码管理,要提供登录账号才能进行管理的
或者ssh密钥
**一旦代码更新需要构建触发器
可以使用脚本
*
2.在其他项目构建好触发,指定哪个项目构建好了,再构建一次
周期性构建,没改变是不会构建的
如果对应github上的hook钩子,注册监听一个钩子,钩子变化,就可以自动下载构建
轮询,有改变的构建
每5分钟构建一次构建如何构建
选择一个顶级maven项目构建
这种方式有可能会出错
也可以使用脚本构建
先保存下来
先不做构建操作把这个项目先保存下来,这个项目就定义好了,可以选择立即构建
可以看到进度,有build,successful 就表示成功
太阳表示成功完成
可以到jenkins的工作目录下来查看构建的内容
构建 的跟之前手动构建的一样
想要构建好自动部署到tomcat,修改下tomcat配置
重要的角色manager-script,如果不打算用手动的图形 界面发布,让用户属于这个角色即可
重新配置一下构建任务
找一个插件,deploy-containers
安装好重启jenkins之后生效
继续配置
构建后端步骤应该多了
** * 代表前缀是任何字符
保存路径随便取一个名,选择对应的tomcat几,远程链接部署的tomcatmanager账号
发生了错误
安装webapps
把两次错误删除
立即构建
部署成功
代码没有改变所以没有重新编译
文件名也被jenkins自动改成了test-spring
代码改变了会手动触发构建,否则5分钟自动完成构建
随便找个节点试一下,把代码重新复制一份,改一下内容再推上去
到父目录下仓库有路径
定义好之后就要提交
git log 可以看下此前的提交
提交完成,往远程服务器上推,输入账号密码成功 ,就可以做push操作
4.2已经上了
有了新版本就可以拉下来重新构建了
可以看到新版本页面了
5分钟会自动下载下来构建发布
可以有多个部署
在这里做不成灰度发布,要完成灰度发布,需要先一个脚本
1.下来一些服务器,往上发,下来一些服务器,再往上发
主机down,还有符号链接指向新的目录
想回滚此前的版本有哪些
github有很多版本,构建的时候拖指定的版本即可,拖的时候是整个仓库,构建的时候选择 指定版本,而不捡出最新的版本,构建针对指定的版本进行构建了
有了标签,可以做参数化构建,就可以根据参数来回滚
有一篇文字可以帮你实现滚动发布
http://blog.ramanshalupau.com/parameterized-jenkins-build-for-rollback-purposes
指定所谓参数化的构建来定义一个参数
变量名
变量值
description可以指明基于那个标签来构建
依然可以使用github仓库
符号当作引用逻辑
打算构建哪个版本
传一个版本号就能完成构建了
把现在的代码打个标签
想改个内容,弄成1.1版本推上去
git commit顺便加上标签,再往上推,tag最好合version保持一致
git add . 要有
现在构建一下看看效果
git push 把标签推上去
重新克隆下来老的版本
刚才只是把tags推上去,没有把内容推上去
换个版本
就成功了
现在把tag推上来
换个目录。代码clone下来会不会有
标签推上去没有任何问题
构建一次
没有问题
现在弄一个8.1的版本,配置一个参数化构建
给一个名字,VERSION
默认值没有,没有lates这一说
如果有远程对应的tag会显示,克隆的时候并没有把这些tag拿下来
指明构建哪个分支
远程仓库对应到本地都叫origin,$version自己定义tags下的version,中间冒号隔开
选择参数化构建
没问题。现在腿上一个新版本再倒回来
git add .添加所有内容
代码推上去了,下面推tag
现在改成8。1‘8.0回滚
回来了
现在就可以按需进行回滚了
可以实现蓝绿发布
定义一个脚本可以接受参数,一批发几个,把服务器分组,这个组就是用户传递的参数
测试的话让测试人员写个脚本,你加到pipeline即可
zabbix server 把agent部署 到每一个主机上,有必要部署一个ELK,基于geo展示
应用程序还有开发环境,代码仓库应该放到gitlab上,部署一个jenkinsserver发布到tomcat主机上