文章图片
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。
【jenkins|一文读懂Jenkins的前世今生,零基础学Jenkins必看教程(Jenkins部署+Jenkins安装+Jenkins持续集成)】允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常方便。
一、Jenkins特性 开源的java语言开发持续集成工具,支持CI,CD;
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;
分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
jenkins功能:打包发布
jenkins是流程化工具
打包工具(工具版本必须一致):
- gradler
- ant
- maven
借用网络图片对CI加以理解。
文章图片
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。
下图反应的是CI/CD 的大概工作模式。
文章图片
三、Jenkins的下载、安装以及环境的搭建部署。 后续的内容比较枯燥,如果你不想看长篇大论的文字,可以看看我录制的视频:
https://www.bilibili.com/video/BV17F41177dZ
文章图片
https://www.bilibili.com/video/BV17F41177dZ
文章图片
1. jenkins官网下载地址:https://jenkins.io/download/
jenkins项目有两条发布线,分别是LTS长期支持版(或稳定版)和每周更新版(最新版)。建议选择LTS长期支持版,下载通用java项目war包。
文章图片
2.下载jdk1.8以上版本并安装,安装后配置jdk的环境变量。(这里不再累述具体步骤)
3.在dos命令行运行命令解压war包:java -jar jenkins.war (默认情况下端口是8080,如果要使用其他端口启动,可以通过命令行”java –jar Jenkins.war --httpPort=80”的方式修改)
运行命令后jenkins.war会自动在C盘目录下生成一个jenkins的文件夹。C盘下的这个文件夹可独立运行。
4.在浏览器中访问jenkins项目:http://localhost:8080/jenkins 出现解锁 Jenkins界面,说明jenkins项目搭建完成,这里需要输入管理员密码。如下图:
文章图片
上图中有提示:管理员密码在:C:\jenkins\secrets\initialAdminPassword 打开此文件获得密码并输入密码,点击”继续”按钮后如下图:
文章图片
点击:【选择插件来安装】按钮,出现如下默认插件安装界面。
文章图片
这个页面会默认选中安装一些插件,直接点击”安装”按钮,安装所有推荐的插件。
文章图片
等待所有插件安装完成(耐心等待1-2个小时)。安装插件的时候,会有一些插件安装失败(如上图的X),这些插件的安装是有前置条件的,等安装结束后,按右下角“重试”,继续安装,之前失败的插件就都能安装了。安装完成后,点击“继续”按钮,
文章图片
输入用户名:admin,密码:123456,确认密码:123456,全名:admin,电子邮件地址后点“保存并完成”按钮
点击“保存并完成”出现下图表示jenkins已经配置完成。点击[开始使用jenkins]登录。
到此,jenkins安装完成,可以开启jenkins持续集成之旅了!
四、使用Jenkins进行PHP代码(单元)测试、打包 接下来继续讲解如何使用Jenkins创建一个构建任务。
登录Jenkins, 点击左侧的新建,创建新的构建任务。
文章图片
跳转到如下界面。任务名称可以自行设定,但需要全局唯一。输入名称后选择构建一个自由风格的软件项目(其他选项不作介绍)。并点击下方的确定按钮即创建了一个构建任务。之后会自动跳转到该job的配置页面。
文章图片
下图是构建任务设置界面,可以看到上方的几个选项"General", “源码管理”, “构建触发器”,“构建环境”, “构建”, "构建后操作"。下面逐一介绍。
文章图片
1.General
General是构建任务的一些基本配置。名称,描述之类的。
文章图片
项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改。
描述: 对构建任务的描述。
丢弃旧的构建: 服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。
其他几个选项在这里不做介绍,有兴趣的可以查看Jenkins"帮助信息", 会有一个大概的介绍。不过这些"帮助信息"都是英文的。
在这里插入图片描述
2.源码管理
源码管理就是配置你代码的存放位置。
文章图片
Git: 支持主流的github 和gitlab代码仓库。因我们的研发团队使用的是gitlab,所以下面我只会对该项进行介绍。
**Repository URL:**仓库地址
**Credentials:**凭证。可以使用HTTP方式的用户名密码,也可以是RSA文件。 但要通过后面的"ADD"按钮添加凭证。
**Branches to build:**构建的分支。*/master表示master分支,也可以设置为其他分支。
**源码浏览器:**你所使用的代码仓库管理工具,如github, gitlab.
**URL:**填入上方的仓库地址即可。
Version: 8.7 这个是我们gitlab服务器的版本。
**Subversion:**就是SVN,这里不作介绍。
3.构建触发器
构建触发器,顾名思义,就是构建任务的触发器。
文章图片
触发远程构建(例如,使用脚本): 该选项会提供一个接口,可以用来在代码层面触发构建。这里不做介绍,后期可能会用到。
Build after other projects are built: 该选项意思是"在其他projects构建后构建"。这里不作介绍,后期可能会用到该选项。
Build periodically: 周期性的构建。很好理解,就是每隔一段时间进行构建。日程表类似 linux crontab书写格式。如下图的设置,表示每隔30分钟进行一次构建。
文章图片
Build when a change is pushed to GitLab:当有更改push到gitlab代码仓库,即触发构建。后面会有一个触发构建的地址,一般被称为webhooks。需要将这个地址配置到gitlab中,webhooks如何配置后面介绍。这个是常用的构建触发器。
Poll SCM:该选项是配合上面这个选项使用的。当代码仓库发生改动,jenkins并不知道。需要配置这个选项,周期性的去检查代码仓库是否发生改动。
4.构建环境
构建环境就是构建之前的一些准备工作,如指定构建工具(在这里我使用ant)。
文章图片
**With Ant:**选择这个工具,并指定ant版本和jdk版本。这两个工具的版本我都事先在服务器上安装,并且在jenkins全局工具中配置好了。
其他选项不作介绍,同样可以查看"帮助信息" 获得使用帮助。
最后,放上一张Jenkins的思维导图:
推荐阅读
- 云原生|【云原生 ? DevOps】一文掌握持续集成工具 Jenkins
- kubernetes|Kubernetes集群部署,基于kubeadm的快速搭建k8s集群模式。
- linux|Linux简单渗透、反弹shell、常见脚本反弹方法
- Linux|玩转Linux与运维岗(35)
- Linux|玩转Linux与运维岗(25)
- 线上问题分析|微服务上线规范
- 云原生(K8s|菜鸟学Kubernetes(K8s)系列——(一)关于Pod和Namespace
- 笔记|mysql(三)路由器读写分离、MHA高可用
- linux|jenkins