阅读 64

jenkins自动化部署流程,jenkins配置git自动部署

自动生成和自动部署Jenkins本文的目的是简要介绍Jenkins,并通过配置Jenkins和SVN实现持续集成和自动部署。 这意味着,在将代码发送到SVN时,Jenkins将自动生成和部署代码。

1什么是1 jenkins? Jenkins是一种持续集成(CI )工具,提供开源、易于使用的操作界面,起源于Hudson(Hudson是商用的),主要负责持续、自动生成/测试软件项目,以及监视外部任务的执行Jenkins是用Java语言编写的,可以在流行的servlet容器(如Tomcat )中运行,也可以独立运行。 通常与版本控制工具(SCM )、构建工具组合使用。 常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant和Gradle。

2 CI/CD是什么? 连续集成(ci ) (在中文中意味着连续集成)是软件开发时间。 持续集成强调开发人员在提交新代码后立即进行构建、(单元)测试。 根据测试结果,可以检查新代码和原始代码是否正确集成。 借网络照片了解CI。

连续提供(CD ) )是在连续集成的基础上,将集成代码引入更接近真实执行环境(同类生产环境)的环境中。 例如,单元测试完成后,可以将代码部署到连接到数据库的Staging环境中进行更多的测试。 如果代码满意,可以继续手动部署到生产环境中。 下图显示了CI/CD的大致工作模式。

使用Jenkins减少好处风险

一天进行多次集成,并进行相应的测试,这有助于检查缺陷,了解软件的健康状况,减少假设。

减少重复过程

发生重复过程有两个原因。 一是需要编译、测试、打包、部署等固定操作,任何一个环节都不能省略。 另一个缺点是,如果没有及时发现,后续代码的开发方向可能会错误,需要重写所有受影响的代码才能修复问题。 通过使用Jenkins等连续集成工具,可以将生成过程从手动完成切换为自动完成,并通过提高集成频率来尽早发现缺陷,避免方向性错误。

生成可随时随地部署的软件

通过持续集成,可以随时发布可部署的软件。 在外界看来,这是持续集成最明显的优势,虽然可以滔滔不绝地谈论提高软件质量和降低风险,但对客户来说,可部署的软件产品是最现实的资产。 通过持续集成,可以经常对源代码进行小的更改,并将这些更改与其他代码集成在一起。 如果出现问题,项目成员将立即得到通知,问题将立即得到纠正。 如果不采用连续集成,这些问题只有在交付前集成测试时才能发现,并且可能会延迟产品发布,或者在加快修复这些缺陷的过程中引入新的缺陷,最终导致项目失败。

提高项目的可视性

通过持续集成,您可以注意到趋势并做出有效的决策。 如果真实或最新的数据不被支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。 项目成员通常手动收集这些信息,既负担沉重,又耗时。 持续的整合会带来两个积极的效果。

(1)有效决策:持续集成系统能为项目构建状态和质量指标提供及时信息,部分持续集成系统能报告功能成熟度和缺陷率。

)2)注意趋势:由于整合频繁,出现了构建成功或失败、总体质量和其他项目信息等趋势。

建立团队对产品开发的信心

通过不断集成,开发团队可以对产品的开发充满信心。 因为我们清楚地知道每个构建的结果对软件更改产生了什么影响,产生了什么样的结果。

4 JavaEE项目部署方法比较4.1手动部署

4.2自动部署“自动化”的具体表现:向版本库提交新代码后,自动部署到APP应用服务器,供用户或测试人员使用的立即是最新的APP应用程序。

5环境构建5.1系统配置概述5.1.1虚拟机创建、Linux系统安装、系统: CentOS7.8.2003

5.1.2版本控制系统,采用SVN

5.1.3 servlet容器,采用Tomcat-8.5.29

5.1.4采用JDK,1.8.0.242

5.1.5 Maven,采用3.6.3版

5.1.6从Jenkins官网下载jar即可。 版本为2.263.1

由于主要讨论Jenkins,因此不太讨论svn服务器、Tomcat和JDK的安装。

5.2SVN配置

5.2.1部署svnserve.conf文件

5.2.2放置passwd文件

5.2.3 authz的配置

5.3Tomcat配置

5.4 Maven的配置只要镜像配置文件settings.xml的私服进行变更即可

5.5部署Jenkins将jenkins.war放在Tomcat解压缩目录/webapps中

目录下,启动tomcat即可


首次进入,会要求输出密码,根据提示,通过命令:cat /root/.jenkins/secrets/initialAdminPassword 进行提取。


5.5.1 插件配置

我们进入页面,下载插件,我们需要svn插件和deploy to container插件


5.5.2 全局工具配置


5.5.3 全局安全配置



5.5.4 Jenkins配置







上次已经对jenkins进行了详细的配置,那么下面就可以直接进入构建过程。另外,配置触发器的作用,是为了后面提交代码时,通过利用svn中的钩子程序,实现代码提交之后,自动去构建和部署,实现自动化。

触发器的地址:http://192.168.1.129:8080/jenkins/job/apple/build?token=ORANGE_TOKEN,当浏览器访问这个地址,可以直接实现构建和部署。下面将配置svn,实现代码提交,jenkins就可以直接进行构建和部署。实现持续继承。

5.5.4 SVN配置钩子程序

在配置钩子程序之前,需要了解linux的curl命令,通过curl命令来发送Http请求。

-X 参数: 指定请求方式

-v 参数: 显示响应结果

-u 参数: 携带用户名/密码

-H 参数: 携带请求消息头信息

curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌] curl -X post -v -u admin:b7830462ef4c4b55aac7c7346bfd3114 http://192.168.1.129:8080/jenkins/job/apple/build?token=ORANGE_TOKEN

在svn的hooks目录下,配置post-commit文件,将文件中的所有内容进行注释,添加如下代码:


保存配置后,就可以进行测试了。将代码提交,就可以发现jenkins自动进行构建,并且将war发送给container容器,进行部署,只需要通过访问服务器的url尽可以进行部署了。

5.5.6 测试


6 总结

关于jinkens的持续集成,虽然通过文档进行操作很简单,但是在实现的过程中,换了我很多时间,这个时间主要花费在如何打成war,由于idea生成的war包在开发的过程中可以正常使用,但是放在tomcat中去跑,会出现无法找到主类,运行失败。最后通过在eclipse中建工程,最后通过idea导入工程,在连接idea才解决这个问题。

另外在svn的配置中,由于是很久远的技术,在配置的过程中出现很多问题,最后通过一片博客进行完美解决。参考链接如下:https://blog.csdn.net/u013181021/article/details/99727369。

在开发的过程总会遇到不同的问题,首先要确定研究方向,确定可行度,只要方向没有错。剩下的小问题,就一点点去解决,也感谢同事昏睡的山水和完美的小懒虫对我的帮助。

7 附录 7.1 svn开启与关闭的脚本

开启

#!/cqdmp/bashsvnserve -d -r /var/svn/repository/ --config-file=/var/svn/repository/conf/svnserve.confecho "开启svn成功"

关闭

#!/cqdmp/bashpid=`ps -ef | grep svnserve | grep -v grep | awk '{print $2}'`kill -9 "$pid"echo "svn进程已停止,pid=$pid" 7.2 centos7开启与关闭端口的命令 centos7查看防火墙所有信息firewall-cmd --list-all#centos7查看防火墙开放的端口信息firewall-cmd --list-ports添加端口firewall-cmd --zone=public --add-port=80/tcp --permanent#说明:#–zone #作用域#–add-port=80/tcp #添加端口,格式为:端口/通讯协议#–permanent 永久生效,没有此参数重启后失效


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐