1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

jenkins安装

1987web2023-10-06WEB开发60
Buildgreatthingsatanyscale.

Build great things at any scale.

快速上手

  1. 安装jenkins
  2. 使用jenkins

起源

一个项目比较完整的生命周期该是怎样的?

由开发的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 trends(谷歌趋势),在涉足一个新的领域的时候帮助我了解这个领域哪些将会是趋势,哪些只是残留.

百度指数也可以起到到和谷歌趋势起到的效果,但是只能反映国内的一部分情况,而且,比如我在搜索eclipse的热度的时候,谷歌会有针对eclipse(日食)这一词义,还是针对名为eclipse的软件的搜索划分,这一点显然特别重要.

hudson/jenkins

hudson是jenkins的前称

TeamCityTeamCity是jet大脑的出品,百度搜索指数还未收录

Travis

Travis CI是最老的托管解决方案之一

其他

其他有如gitlab ci,bamboo由于存在关键词意义重叠的情况,目前还没有想到比较好的解决方案,这次不加入比较.

对比

1. Google Trends

2014-2019 travis和jenkins趋势图

2. 百度指数

2012-2019 travis和jenkins趋势图

结论

从上面的趋势图中无论是基数还是趋势,jenkins的学习性价比对比travis要高许多.

当你选择了一种语言,意味着你还选择了一组技术、一个社区

从二次开发的角度来看,jenkins开源,而且使用的语言是java,使用的框架为spring,两者分别为国内语言社区和框架社区中的顶级社区,发展的特别的好.

安装

平台

目前仅支持到docker平台,其他平台安装会录取出,顺序为列表顺序.

Docker平台

下载镜像

docker pull jenkins/jenkins:2.346.3-2-lts-jdk8

创建和启动容器

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.346.3-2-lts-jdk8

启动之后使用

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 continue 如果不小心点了 continue as admin 你再次登录admin用户的时候的密码就是 初次创建jenkins时的那个 docker logs jenkins 出来的那个密码

确认输入一下访问地址信息

点击save and finish 之后提示我们安装成功,点击start using jenkins搞定

至此完成jenkins的安装以及初始化

RedHat

Mac

Win10

我是 KodeRover 创始人老郭,大家可以叫我 Grant。自 2018 年回国创业以来,我与团队一同从零开始,将 Zadig 打造成了国内开发者最喜爱的云原生 CI/CD 持续交付工具、企业最信赖的云原生 DevOps 平台,吸引了数千家企业从 Jenkins 转向 Zadig 平台。我一直坚信技术是时代的产物,并且从我在美国硅谷工作的 20 多年中,亲眼见证了这一点。2001 年,我从斯坦福大学毕业后,机缘巧合加入了当时在经济废墟中高速发展、只有 100 多人的谷歌 Google。这段经历让我迷恋上了软件技术创业。2006 年我加入由更早期谷歌工程师创立的搜索广告公司,并在仅仅 9 个月后以 6000 万美元的价格被收购。之后又全程参与了全球超级健身品牌 TRX 的电商创业,同时见证了亚马逊电商的崛起和他们创造的"云服务"市场。紧接着,我们 4 位斯坦福老同学在硅谷的宇宙中心 Palo Alto 大学路租了一间办公室开始做视频传输技术创业,一度做到 2500 万 MAU,500 米内和 Facebook、特斯拉、Paypal 做邻居。那些年我们见证了应用向移动端、云端的转移。