我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
授权策略切换为"Role-Based Strategy",保存
点击 Manage Jenkins ,找到 Manage and Assign Roles 管理和分配角色选项
点击 Manage Role ,进行管理角色,添加角色,修改角色权限
角色介绍:
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Project roles(项目角色): 针对某个或者某些项目的角色 ,在老版本里,项目角色叫做project roles
Slave roles(奴隶角色):节点相关的权限
我们添加以下三个角色:
baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission
role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。
role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。
添加项目角色
添加完角色后,点击Save保存
点击Manage Jenkins,在系统管理页面进入 Manage Users
分别创建两个用户:jack 和 kali
系统管理页面进入Manage and Assign Roles,点击Assign Roles
绑定规则如下:
将 jack 和 kali 用户加入到 项目角色分配列表中
为 jack 和 kali 分配项目角色 jack 和Role1 绑定, kali 和 Role2绑定
以管理员账创建两个项目,分别为apple01 和orange01
点击 New Item,新建项目
分别使用不同用户登录:
Jenkins 是通过本地 git 复制远程 gitlab 的方式获取gitlab中的数据,
过程如下:
开发人员将代码推送到本地git,然后和远程的 gitlab 服务器复制,这样远程的gitlab服务器就获取到了开发人员本地的git数据
之后Jenkins服务器的本地 git 复制远程gitlab服务器的数据,通过git 插件推送给 Jenkins 服务
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
安装插件后,点击Manage Jenkins,能够看到 Manage Credentials 和 凭据配置,如没有出现,重新安装插件重启即可
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
Jenkins 服务器 192.168.10.20 上安装 git
yum -y install git git --version #安装后查看git版本
点击 Manage Jenkins,进入Manage Credentials
常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)
创建凭证
Jenkins-->Manage Jenkins-->Manage Credentials -->global -->Add Credentials
创建一个 FreeStyle 项目
New Item --->FreeStyle Project--->确定
点击Build Now ,开始构建项目
SSH免密登录示意图
在Jenkins服务器上,使用root 用户生成密钥对
ssh-keygen -t rsa ls /root/.ssh/ #id_rsa:私钥文件 #id_rsa.pub:公钥文件
把生成的公钥放在Gitlab中
以root账户登录gitlab--->点击头像--->Settings->SSH Keys
粘贴公钥到Gitlab上
在Jenkins中添加凭证,配置私钥
Manage Jenkins ---> Manage Credentails --->global --->Add Credentials
注意 Username 项填写的是生成密钥对的用户
在Jenkins服务器上复制私钥
测试凭证是否可用
新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证
在 Jenkins 服务器上查看