jenkins安装教程
Build great things at any scale.
快速上手
起源
一个项目比较完整的生命周期该是怎样的?
由开发的coding阶段和coding阶段的质量测试,再到多次发布投入使用阶段
而现代化的测试阶段并不是从coding结束后开始,而是和coding同步进行的,今天上午coding完成一个功能,下午就要投入测试
如何测试呢,也就是将开发者完成的代码,拉取到服务器A(一般是linux)上,按照开发者的部署文档搭建各种依赖服务(可能是mysql,redis,kafka等等),然后运行代码编译后的文件或者是运行脚本
如果我们测试得出开发者今天完成的新功能存在问题,我们需要提出bug,然后开发者解决这个bug,解决完之后呢?
如果开发者在bug解决文档中没有说明是依赖服务出现了问题导致的这个bug,那么A机器上的依赖服务我们是不用重新搭建的,无非就是启动和停止.
变化的往往都是开发者的功能的代码部分.对于java coder,一般是将开发者在git的指定分支上的代码pull下来之后编译打包,然后替换掉A机器上的编译后的包,重启服务,继续测试
每当需求发生变化,功能需要改进,bug等等问题的时候,代码就会发成变化,而将这种变化需要我们在测试机器上得以体现,可能就是替换代码包之类的,这个过程重复而且繁杂,也容易出现部署失误,这种需求背景下产生了自动化持续构建的概念.
而jenkins正是贯彻和发扬了这一理念的持续构建工具
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
领先的开源自动化服务,jenkins中提供了众多的插件以支持使用自动化的方式构建和发布任何工程.
本文作者同大家一起开始步入jenkins的镜像世界,一步一步,深入jenkins,从入门到精通,从使用到理解掌握
为什么选择jenkins
既然都是为了实现自动化持续构建,难道就jenkins这一个选择吗
通常我会使用百度指数,在涉足一个新的领域的时候帮助我了解这个领域哪些将会是趋势,哪些只是残留
百度指数只能反映国内的一部分情况,以后会加入google指数来反映国外的情况.
hudson/jenkins
hudson是jenkins的前称
jenkins 2012-2019百度搜索指数趋势图
hudson的趋势数量级在百,忽略不计
TeamCity
TeamCity是jet大脑的出品,百度搜索指数还未收录
Travis
Travis CI是最老的托管解决方案之一
其他
其他有如gitlab ci,bamboo由于存在关键词意义重叠的情况,目前还没有想到比较好的解决方案,这次不加入比较.
结论
从上面的趋势图中无论是基数还是趋势,jenkins的学习性价比对比travis要高许多.
当你选择了一种语言,意味着你还选择了一组技术、一个社区
从二次开发的角度来看,jenkins开源,而且使用的语言是java,使用的框架为spring,两者分别为国内语言社区和框架社区中的顶级社区,发展的特别的好.
安装
平台
目前仅支持到docker平台,其他平台安装会录取出,顺序为列表顺序.
Docker平台
下载镜像
docker pull docker.io/jenkinsci/blueocean:1.10.1-bcc31d32159f
创建和启动容器
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 docker.io/jenkinsci/blueocean:1.10.1-bcc31d32159f
启动之后使用
docker logs jenkins
在log信息的末行看到类似如下即说明安装成功.
...
...
...
Jan 28, 2019 9:40:33 AM jenkins.install.SetupWizard init
INFO:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
57ec07c4cc974ebd8d663f16056ebc81
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
--> setting agent port for jnlp
--> setting agent port for jnlp... done
Jan 28, 2019 9:40:49 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Jan 28, 2019 9:40:49 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Jan 28, 2019 9:40:50 AM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Jan 28, 2019 9:40:50 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
Jan 28, 2019 9:40:51 AM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
Jan 28, 2019 9:40:51 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Download metadata. 19,416 ms
Jan 28, 2019 10:28:12 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Started telemetry collection
Jan 28, 2019 10:28:14 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished telemetry collection. 2,339 ms
Jan 28, 2019 1:06:15 PM hudson.model.AsyncPeriodicWork$1 run
INFO: Started Fingerprint cleanup
Jan 28, 2019 1:06:15 PM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Fingerprint cleanup. 2 ms
如果在安装过程中(即安装还未完成),使用浏览器访问页面,访问地址为 本机ip:8080,
会出现提示正在安装,初始化的界面
相比与什么都不做,这个先反馈给安装者我们正在安装的设计非常的nice,用户亲和+1
稍等一会儿,页面变为
大意是提示我们在安装的环境的路径为/var/jenkins_home/secrets/initialAdminPassword的文件里面包含中超级用户的密码
熟悉吗?没错,聪明的读者已经在上一步的安装之后我们的确认命令docker logs jenkins中发现了端倪
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
57ec07c4cc974ebd8d663f16056ebc81
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
复制消息57ec07c4cc974ebd8d663f16056ebc81粘贴到页面输入框
点击continue进入界面
众多丰富完善的插件是jenkins能够自动化构建的一大杀器
这里我们选择install suggested plugins,让jenkins帮助我们自动安装那些特别常用的插件,后续会有几个重要插件我们单独安装
很快就完成了下载
之后我们创建管理员用户
确认输入一下访问地址信息
点击save and finish
之后提示我们安装成功,点击start using jenkins搞定
至此完成jenkins的安装以及初始化