Jenkins介绍和使用

Jenkins安装

常见安装方式

Jenkins安装可以直接参考官方文档
https://www.jenkins.io/download/
Jenkins软件主要分为两个大版本
Stable版和Regular releases 版本,最大区别在于Stable版,每隔12周会从Stable版本里面选出LTS (长期支持) 版本作为该时间段的稳定版本。Regular releases 版本是每周更新。
支持以下几种常见安装方式:
1、对应操作系统发行版软件安装包方式安装
2、War包安装
3、容器化安装

安装Jenkins

这里使用Docker安装,能够快速拉起,解决依赖问题
在一台装有Docker的主机上执行以下命令

1
docker run -d --name jenkins -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts-jdk11

查看初始化密码

1
docker logs jenkins --tail 100

访问主机的8080端口

安装方式标准安装和自定义安装,标准安装主要进行一些标准插件的安装,自定义安装就是自己可以选择插件进行安装。离线模式可以选自定义安装,这里我们选择标准安装。

设置管理员用户名和密码

进入界面

插件管理

在线安装插件

这边我们以gitlab做对接所以需要安装gitlab插件为例,操作任何
系统管理—>管理插件—–>可选插件—->gitlab plugin

默认在线方式安装是通过境外的Jenkins插件服务器进行下载,网络质量会比较差,为了更好的下载速度,可以配置使用境内插件地址。
Manager jenkins > manage plugins > advanced > upgrade url
重新填写 清华大学的Jenkins Plugin URL : https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

安装完成后可以在已安装插件这里看见安装完后的gitlab-plugin

离线安装插件

对于无法联网环境,可以通过离线插件方式进行安装,Jenkins插件之间本身是有依赖的,需要先找到对应的插件所依赖的其他插件,一同下载导入即可。
通过系统管理-插件管理-可选插件-过滤框输入Maven Integration-选择Maven Integration-点击安装 可以看见这个插件所需要的依赖插件

https://plugins.jenkins.io/ 下载这些插件(.hpi)

将hpi文件导入到Jenkins
系统管理-插件管理-高级-选择.hpi文件-上传

另外一种方式,在外网可通环境下使用容器方式部署,将插件安装完后,直接将此容器重新做为镜像,到离线环境中使用,这样新启动的Jenkins里面就包含了这些插件。

创建一个简单的编译任务

创建构建任务

选择FreeStyle Project

构建方式选择执行shell

输入shell脚本

1
echo ”Hello world“

开始构建

构建完成后,在左下角可以看见对应的构建记录

点击控制台输出查看详细情况

这就是一个还没有对接任何代码仓库,简单的编译任务。

Jenkins权限管理

通过权限控制,使项目组对应的成员只能看见本项目下构建任务,如前端项目组成员只能看见前端项目下的构建任务,后端项目组成员,只能看见后端项目下的构建任务

安装Role-based 插件

修改全局安全设置

进入 系统管理->全局安全配置 中将 访问控制 里 授权策略 配置为 Role-Based Strategy:

创建用户

Manager Jenkins——>Manager users——> 新建用户

在 Jenkins 中创建两个视图 backend、frontend 并且在两个视图中创建相应的任务:

创建角色

下面将创建一个拥有全局可读权限的全局角色来保证全部用户拥有全部可读权限,然后再创建Item组角色,利用通配符方式匹配对应项目前缀,这样用户拥有“全局可读”+“匹配项目读写”权限。

进入 系统管理->Manage and Assign Roles 可以看到 角色管理 与 角色分配:

设置全局之读角色

添加item角色

在 Item roles 一栏添加组角色 group_backend、group_frontend 两个角色,并且设置:

角色 group_backend 只能看见以 backend. 开头的视图与项目。
角色 group_frontend 只能看见以 frontend.
开头的视图与项目。
设置完成后再设置两个角色都勾选全部权限,确保两个角色拥有该组的全部权限。

Pattern 里面输入通配符,一般是项目前缀,经常以 “xxxx.” 命名,“xxxx” 为前缀,“.”为匹配任意名称。

分配角色

进入Manage and Assign Roles——>Assign Roles选项卡

将frontend-user1分配到group_frontend角色,backend-user分配到group_backend角色

登录frontend-user1和backend-user查看分配结果