ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins 的用户权限和凭证管理

2022-02-11 06:00:07  阅读:263  来源: 互联网

标签:插件 git 凭证 角色 Manage 用户 Jenkins 权限


一、Jenkins 的用户权限管理

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

1、安装Role-based Authorization Strategy插件

2、开启权限全局安全配置

授权策略切换为"Role-Based Strategy",保存

3、创建角色

点击 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保存

4、创建用户

点击Manage Jenkins,在系统管理页面进入 Manage Users

 

分别创建两个用户:jack 和 kali

5、给用户分配角色

系统管理页面进入Manage and Assign Roles,点击Assign Roles

绑定规则如下:

 

  • kali用户分别绑定baseRole和role1角色
  • jack用户分别绑定baseRole和role2角色

 

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

为 jack 和 kali 分配项目角色 jack 和Role1 绑定, kali 和 Role2绑定

  • jack 用户只能查看到 apple 开头的项目
  • kali 用户只能查看到orange开头的项目

 

6、创建项目,测试权限

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

点击 New Item,新建项目

 

分别使用不同用户登录:

  • jack 用户登录只能看到 apple01 项目
  • kali 用户登录只能看到 orange01 项目

二、Jenkins 凭证管理

Jenkins 是通过本地 git 复制远程 gitlab 的方式获取gitlab中的数据,

过程如下:

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

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

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

1、安装 Credentials Binding 插件

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

安装插件后,点击Manage Jenkins,能够看到 Manage Credentials 和 凭据配置,如没有出现,重新安装插件重启即可

2、安装 git 插件和 git 工具

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。

Jenkins 服务器 192.168.10.20 上安装 git

yum -y install git

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

3、Jenkins 的5种凭证类型

点击 Manage Jenkins,进入Manage Credentials

 

 

添加的凭证有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密钥)

4、创建用户密码类型

创建凭证

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

5、测试凭证是否可用

创建一个 FreeStyle 项目

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

 

点击Build Now ,开始构建项目

6、在Jenkins服务器上查看

7、SSH 密钥类型

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 服务器上查看

 

标签:插件,git,凭证,角色,Manage,用户,Jenkins,权限
来源: https://www.cnblogs.com/darryallen/p/15881729.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有