Jenkins 的用户权限管理和Jenkins凭证管理

Jenkins 的用户权限管理和Jenkins凭证管理

一: Jenkins的用户权限管理

jenkins 的用户权限取决于所绑定的角色。如果该角色(如role1)在某个项目(如apple01)上拥有某些权限(如读,创建,删除等),那么,所有和该角色绑定的用户,则拥有该角色相同的权限

1.1 安装角色绑定插件, 配置授权策略

我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权

image-20220210200329953

点击 Manage Jenkins,然后找到 Configure Global Security

image-20220210200612177

进入权限全局配置( Configure Global Security)后,在Authentication 配置部分,将授权策略修改为Role-Based Strategy, 如果没有该选项,则重新安装插件,重启Jenkins

image-20220210200838912

点击Save 保存配置

image-20220210201130442

1.2 创建角色

点击Manage Jenkins ,找到Manage and Assign Roles 管理和分配角色选项

image-20220210201301964

点击Manage Role ,进行管理角色,添加角色,或者修改角色权限

image-20220210201500856

角色介绍:

Global roles(全局角色):管理员等高级用户可以创建基于全局的角色

Project roles(项目角色): 针对某个或者某些项目的角色 ,在老版本里,项目角色叫做project roles

Slave roles(奴隶角色):节点相关的权限

我们添加以下三个角色:

baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 is missing the Overall/Read permission

role1:该角色为项目角色。使用正则表达式绑定"apple.*",意思是只能操作apple开头的项目。

role2:该角色也为项目角色。绑定"orange.*",意思是只能操作orange开头的项目。

在管理角色页面的全局角色配置(Global roles) 部分, 在Role to add 栏添加角色.

添加baseRole 角色,点击Add 添加

image-20220210202057501

为baseRole 添加全局可读权限(将baseRole行的Overall 栏下的Read栏勾选)

image-20220210202405957

添加第一个项目角色,为角色匹配项目(正则匹配),表明该角色在那些项目拥有权限

image-20220210202853196

为第一个项目角色勾选权限,并添加第二个项目角色,勾选权限

image-20220210203139870

image-20220210203229250

添加完角色后,点击Save 保存

image-20220210203344535

1.3 创建用户

点击Manage Jenkins ,然后点击Manage Uers ,用户管理

image-20220210203445473

点击Create User , 创建角色

image-20220210203553181

创建两个用户,Tom和Jerry

image-20220210203753664

image-20220210203904981

image-20220210203914340

1.4 给用户分配角色

用户分配(绑定)了角色后,就拥有了角色所拥有的权限

点击Manage Jenkins ,然后点击Manage and Assign Roles ,然后点击 Assign Roles,进行角色分配

image-20220210204703053

image-20220210204723461

将用户Tom 和 Jerry 加入到全局角色分配列表中

image-20220210204922696

image-20220210205004377

为Tom 和Jerry 分配全局角色,baseRole

image-20220210205111744

将Tom 和Jerry 用户加入到 项目角色分配列表中

image-20220210205204281

image-20220210205307576

为Tom 和Jerry 分配项目角色.Tom 和Role1 绑定, Jerry 和 Role2绑定.这样,

Tom用户只能查看到 apple 开头的项目

Jerry用户只能查看到orange开头的项目

image-20220210205548508

点击Save保存

image-20220210205627795

1.5 创建项目,测试权限

以管理员账创建两个项目,分别为apple01 和orange01

点New Item,新建项目

image-20220210210125444

image-20220210210348083

image-20220210210431663

image-20220210210504561

image-20220210210519601

分别使用不同用户登录,

Tom 用户登录只能看到 apple01项目

Jerry用户登录只能看到orange01 项目

image-20220210210636210

image-20220210210822197

image-20220210210910179

二: Jenkins 凭证管理

Jenkins的素材来自于gitlab,那么Jenkins是如何获取到gitlab的数据呢?其实也是通过本地git复制远程gitlab 的方式.整个过程如下:

开发人员将代码推送到本地git 然后和远端的gitlab服务器复制,这样远端的gitlab服务器就获取到了开发人员本地的git数据

然后,Jenkins服务器的本地git 复制远端gitlab服务器的数据,通过git插件推送给Jenkins服务

image-20220210213805622

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

2.1 安装Credentials Binding 插件

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

image-20220210214201109

点击Manage Jenkins,然后能找到Manage Credentials 和 凭据配置,如果没有,重新安装插件并重启

image-20220210214616215

2.2 安装git插件和git工具

在安装插件页面,搜索git,安装Git插件

image-20220210215451010

Jenkins服务器安装Git工具

yum -y install git

git --version   #安装后查看git版本

image-20220210215710076

image-20220210215726746

2.3 Jenkins 的5种凭证类型

在Manage Jenkins 页,点击 Manage Credentials

image-20220210214638827

点击global的下拉菜单,添加凭据

image-20220210214846929

或者先点击(global)

image-20220210214741796

在点击Add Credentials

image-20220210214950729

可以添加的凭证有5种

  • Username with password:用户名和密码
  • SSH Username with private key: 使用SSH用户和密钥
  • Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
  • Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
  • Certificate:通过上传证书文件的方式

常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)

image-20220210215946535

2.4 创建用户密码类型

创建凭证

Jenkins-->Manage Jenkins-->Manage Credentials -->global -->Add Credentials

image-20220210220441288

image-20220210220504425

image-20220210220533643

测试凭证是否可用

创建一个 FreeStyle 项目

New Item --->FreeStyle Project--->确定

image-20220210220657768

image-20220210220742287

image-20220210221046459

image-20220210221213461

image-20220210221330099

image-20220210221725242

image-20220210221748467

点击Build Now ,开始构建项目

image-20220210222004895

image-20220210222047796

在Jenkins服务器上查看

image-20220210222341789

2.5 SSH 密钥类型

SSH免密登录示意图

image-20220210222423679

在Jenkins服务器上,使用root用户生成密钥对

ssh-keygen -t rsa
ls /root/.ssh/
#id_rsa:私钥文件
#id_rsa.pub:公钥文件

image-20220210222800615

把生成的公钥放在Gitlab中

以root账户登录gitlab--->点击头像--->Settings->SSH Keys

(或者给zhangsan 用户也可以,因为zhangsan 用户的权限是owner)

image-20220210223140780

image-20220210225445211

在生成密钥对的Jenkins服务器上,复制公钥内容

image-20220210225324582

在Gitlab上,粘贴公钥内容

image-20220210225621371

image-20220210225632158

在Jenkins中添加凭证,配置私钥

Manage Jenkins ---> Manage Credentails --->global --->Add Credentials

image-20220210230029495

注意Username项填写的是生成密钥对的用户

image-20220210230147407

在Jenkins服务器上复制私钥

image-20220210230312023

image-20220210230411295

image-20220210230422210

测试凭证是否可用

新建"test02"项目->源码管理->Git,这次要使用Gitlab的SSH连接,并且选择SSH凭证

image-20220210230557894

image-20220210230721231

image-20220210230825338

image-20220210230836415

同样尝试构建项目,如果代码可以正常拉取,代表凭证配置成功!

image-20220210231010885

image-20220210231047497

同样,在/var/lib/jenkins/workspace下也可以看到test02的项目

image-20220210231215589

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值