权限管理
安装权限管理插件
-
在插件管理界面,安装role-based authorization strategy插件实现rbac的权限管理;
-
安装后,选择授权策略为rbs
-
选择后,会出现manage 和 assign role界面
创建role
- 管理role界面,默认3类role
- global 全局生效,默认admin的role是绑定到管理员的role
- item 项目访问的role,支持pattern匹配正则,匹配的是该role能访问到的项目名
- node Jenkins配置集群时需要的role
创建role:
- 一个全局的role,对所有项目的读权限
- 2个项目级别的role,分别对java开头和go开头的项目有一定权限
创建用户
- 创建allread、gouser、javauser3个用户
分配role给用户
- allread用户分配了all-read角色;
- gouser分配了user2角色;
- javauser分配了user1角色;
测试用户的权限
一开始登陆,看不到,因为gouser和javauser还需授予全局角色all-read才可以;
gouser和javauser登陆,分别只可以看到go开头和java开头的项目;
凭证管理
Jenkins凭证类型
Jenkins的凭证,存储了用户名和密码、api token、密钥对等信息,和gitlab,docker仓库等组件交互时,提供的认证信息,用于证实身份,有5类,常用的前2种,靠插件实现
- 用户密码型
- ssh密钥对型
- 证书类型
- secret file
- secret text:加密的文本串,如github的api token
安装插件
安装如下插件,安装后出现凭证管理选项,2.236.1版本安装后是在创建项目时选中git仓库,才出现创建凭证选项;
用户密码型凭证
1、Jenkins上安装git插件、主机上安装git命令
[root@jenkins-1 ~]# yum install -y git
2、创建一个job,选择git类型仓库,并填入gitlab的repo地址,填入后会报错无法连接,此时创建凭证、创建后使用该凭证即可连接;
3、创建后,点击立刻构建:查看控制台输出
4、查看Jenkins主机上,工作目录下的构建目录,已经将目标仓库拉取了下来;
[user1@jenkins-1 ~]$ ll /var/lib/jenkins/workspace/test-auth
total 4
-rw-r--r-- 1 jenkins jenkins 31 Dec 8 17:43 README.md
ssh密钥对型凭证
注意:用户密码型的凭证,git仓库地址要是http协议的!ssh密钥对的需要git开头的仓库地址,否则协议不匹配是不会通的;
和用户密码凭证流程一致,只是创建凭证时填入的是Jenkins主机上某linux用户的密钥对;