DevOps-1:持续集成工具Jenkins的安装
Posted 北亮bl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps-1:持续集成工具Jenkins的安装相关的知识,希望对你有一定的参考价值。
Jenkins是一个开源的持续集成工具,基于Java开发。
简单说,它能帮助团队,进行自动化的代码审核、代码构建、自动化测试、发布等一系列流程,并且有非常多的插件进行过程增强、监控、多项目联动构建部署、版本日志记录、与Gitlab、钉钉等第三方应用通信等等;
另外,它也提供了丰富的API,和内置的Groovy(类Java脚本)支持,可以方便的进行二次开发。
最近要从头部署和搭建一套持续集成的环境,顺带做一个系列,记录一下整个过程。
本文重点说明一下Jenkins的安装。
注:因为存在混合项目,有Java项目,也有.Net Framework项目,所以选择了Windows10的系统环境,进行部署。
系统环境准备
根据Jenkins官方文档说明,最新版本不支持Java8,必须要Java11以上版本了:https://www.jenkins.io/doc/administration/requirements/java/
请参考文章,部署一下JDK11
Jenkins部署
也可以参考官方文档安装
1、下载地址
建议下载LTS稳定版本,本文下载的是 jenkins2.361.2.msi
2、安装过程
双击msi文件启动安装,按提示一步步确认即可。
中间有一个部署为Windows系统服务,使用的账号,我选择使用本地系统服务运行。
注:这个不太安全,但是Jenkins如果只用于内网网络就问题不太大,你可以按自己的情况选择是否使用指定账号启动。
3、安装完成后,会打开浏览器,提示启动中,要等个10分钟左右,看你机器配置情况不定;
4、等浏览器提示启动后,会出现一个输入密码的界面,并告诉你密码在某个文件里,你去复制出来就好:
5、输入密码后,会提示你安装插件,你可以选择“安装推荐的插件”,这一步要安装20多个插件,时间比较久,请等待界面提示完成。
注:建议选择“选择插件来安装”,然后不选,因为默认访问的插件源在国外,非常慢,可以后续改成清华大学的插件源再安装。
我选择“安装推荐的插件”,结果等了半天,只成功了1个……
6、创建第一个管理员用户,自己配置吧:
7、实例配置
这一步主要是配置后续的页面链接,可以默认,后面再调整
8、安装结束
OK,此时会跳到Jenkins登录页面,输入你在上面配置的用户名密码,即可登录:
工作目录配置
默认情况下,Jenkins的工作目录在这里:
C:\\ProgramData\\Jenkins.jenkins\\workspace
时间长了,空间可能就不足了,要修改一下,记事本打开:C:\\ProgramData\\Jenkins.jenkins\\config.xml
修改为 <workspaceDir>D:/JenkinsWorkspace/workspace/$ITEM_FULL_NAME</workspaceDir>
然后重启Jenkins(在url里输入 http://127.0.0.1:8080/restart 确认即可)
这样,工作目录就变成D盘了
插件源配置
修改使用清华的插件源:
登录Jenkins,点击左侧菜单的“Manage Jenkins”,再点右边的“Manage Plugins”,再点“Advanced”,拉到最下面的“Update Site”那里,修改链接为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
提交即可。
注:使用清华的源,依然可能会安装插件失败,此时可以去清华大学的下载页直接下载插件:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/maven-plugin/
然后在插件的“Advanced”那里,“Deploy Plugin”手动安装插件
执行器数量配置
Jenkins默认启用2个执行器,即可以同时进行2个Job的构建(可以理解为最大线程数为2)
一般可以根据机器的CPU核数来配置,我这里配置为6
点击左侧菜单的“Manage Jenkins”,再点右边的“Configure System”,找到# of executors
,修改为6:
重启Jenkins
在url里输入 http://127.0.0.1:8080/restart 确认即可
关闭Jenkins
在url里输入 http://127.0.0.1:8080/exit 确认即可
Jenkins URL配置
如果Jenkins工作在nginx背后,要在Jenkins的“Configure System”的“Jenkins URL”输入大家使用的url,并修改Sonarqube的url为大家可以访问的地址
常用插件介绍
1、Build Timestamp
:可以在构建过程中获取 BUILD_TIMESTAMP环境变量,可以在Configure System中配置变量的时间格式;
当然,也可以不装插件,在每个任务的构建环境里用Groovy脚本写代码获取时间:props.deploy_time = new Date().format("yyyy-MM-dd HH:mm:ss.SSS");
会有1秒左右的误差;
2、Role-based Authorization Strategy
:用于启用Jenkins的角色权限管理,安装后要Configure Global Security里修改Strategy,然后系统管理会有 Manage and Assign Roles;
注:在我的实际操作中,Jenkins的界面还是比较难用,而且直接操作的性能也比较差;建议二次开发一个系统,通过API调用Jenkins;
3、git parameter
: 用于在job里,配置git的参数,比如使用哪个分支或tag;
4、Template Project
和 multiple-scms
: 用于创建Job模板,给其它Job模板引用,进入job配置页,源码管理下面会出现:【Use SCM from another project】;
5、Gitlab
: 安装后,在构建触发器里有:Build when a change is pushed to GitLab,可以在Gitlab里配置一个钩子,以触发Jenkins构建;
6、Environment Injector
: 可以在构建前添加或修改环境变量,包括写Groovy脚本注入环境变量
7、user build vars
: 添加当前登录用户信息作为环境变量的插件;
8、Build Name and Description Setter
: 构建时,默认使用一个序列号作为构建的标识,这个插件可以说为每次构建,设置一个名称,显示在构建列表里
9、Groovy
: 构建过程中,可以插入Groovy脚本执行;
10、Conditional BuildStep
: 可以插入条件构建步骤, 依赖 maven-plugin插件 ;
11、Parameterized Trigger
: 可以在构建后增加参数化触发其它Job构建: Trigger parameterized build on other projects;
12、SSH
: 可以在构建前、构建后,执行远程服务器脚本;
13、groovy-postbuild
: 可以在构建后步骤坦克,执行groovy脚本,依赖 Badge 插件;
14、Maven Integration
:支持maven Java项目构建;
15、SonarQube Scanner
:允许构建时对代码进行检查,注意要先单独安装SonarQube Server并启动监听;
16、MSBuild
:支持DotNet项目构建;
17、vstestrunner
:支持DotNet项目的单元测试;注意不要安装 mstestrunner,用它会提示:没有要执行的测试;
18、Display Console Output
:默认在Job的首页,显示构建详细信息;
19、HTTP Request Plugin
:在构建前后进行http请求的插件,也可以用于监控;
20、DingTalk
:钉钉通知插件;
21、Email Extension
:邮件通知插件;
22、Timestamper
:跟第一个不同,这个插件,可以在Job的构建日志的每一行,添加时间,在Job配置里会多一项配置Add timestamps to the Console Output
以上是关于DevOps-1:持续集成工具Jenkins的安装的主要内容,如果未能解决你的问题,请参考以下文章
DevOps-5:Jenkins配置Java-Maven项目模板Job
DevOps-5:Jenkins配置Java-Maven项目模板Job