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的安装的主要内容,如果未能解决你的问题,请参考以下文章

持续集成工具jenkins安装

Jenkins持续集成工具安装

DevOps-5:Jenkins配置Java-Maven项目模板Job

DevOps-5:Jenkins配置Java-Maven项目模板Job

DevOps-5:Jenkins配置Java-Maven项目模板Job

云原生 • DevOps一文掌握持续集成工具 Jenkins