用户管理
我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
安装Role-based Authorization Strategy插件
![](https://img.haomeiwen.com/i13859779/64baa0a1b6c3bc34.png)
修改安全配置策略
![](https://img.haomeiwen.com/i13859779/d4579ccbb54a0da9.png)
![](https://img.haomeiwen.com/i13859779/151210f97989763f.png)
分配角色和用户
![](https://img.haomeiwen.com/i13859779/4a29160b6f4b2b4e.png)
![](https://img.haomeiwen.com/i13859779/0198541ab1320e44.png)
![](https://img.haomeiwen.com/i13859779/8a386ce1f781ece2.png)
Global roles(全局角色):管理员等高级用户可以创建基于全局的角色
Item roles(项目角色):针对某个或者某些项目的角色
Node roles(节点角色):节点相关的权限
我们添加以下三个角色:
- baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误:用户名 ismissing the Overall/Read permission
- role1:该角色为项目角色。使用正则表达式绑定"itcast.*",意思是只能操作itcast开头的项目。
- role2:该角色也为项目角色。绑定"itheima.*",意思是只能操作 itheima 开头的项目。
![](https://img.haomeiwen.com/i13859779/25a0c64186907e39.png)
![](https://img.haomeiwen.com/i13859779/cee78cda72643b1d.png)
![](https://img.haomeiwen.com/i13859779/e0f463164f7307c5.png)
![](https://img.haomeiwen.com/i13859779/88d43884d4deec28.png)
在系统管理页面进入 Manage Users
![](https://img.haomeiwen.com/i13859779/03d6370841f14d54.png)
![](https://img.haomeiwen.com/i13859779/125674a16117f31c.png)
给用户分配角色
系统管理页面进入Manage and Assign Roles,点击Assign Roles
绑定规则如下:
root1用户分别绑定baseRole和role1角色
root2用户分别绑定baseRole和role2角色
![](https://img.haomeiwen.com/i13859779/027cabfbdc752af6.png)
![](https://img.haomeiwen.com/i13859779/cc647173b6106243.png)
建立项目
![](https://img.haomeiwen.com/i13859779/4ff04c8593b9d2f3.png)
![](https://img.haomeiwen.com/i13859779/236e0400d8bed005.png)
![](https://img.haomeiwen.com/i13859779/e37344363c8d0565.png)
![](https://img.haomeiwen.com/i13859779/5e0ed54ace578ce3.png)
Jenkins凭证管理
凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
安装Credentials Binding插件
要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件
![](https://img.haomeiwen.com/i13859779/90e030f8d2ce7d64.png)
![](https://img.haomeiwen.com/i13859779/41b01e56ea73ccb1.png)
![](https://img.haomeiwen.com/i13859779/49c579438804bbc2.png)
![](https://img.haomeiwen.com/i13859779/bc862ce246ab80e8.png)
![](https://img.haomeiwen.com/i13859779/d1648cb41ea4556d.png)
- 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密钥),接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。
安装Git插件和Git工具
为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
![](https://img.haomeiwen.com/i13859779/f3e8538a1aa72a1e.png)
在centos上安装 git 工具
# 安装
yum install git -y
# 安装后查看版本
git --version
添加凭证(username & password)
把你在git上的账号密码加入到凭证中。
![](https://img.haomeiwen.com/i13859779/01840a6cf1be0584.png)
回到我们在jenkins的项目中,来配置这个项目。
![](https://img.haomeiwen.com/i13859779/b7c3ad87d9baaf52.png)
![](https://img.haomeiwen.com/i13859779/ff6777d269b67409.png)
应用,然后保存。保存后我们构建这个项目
![](https://img.haomeiwen.com/i13859779/24218d89e5b003b0.png)
![](https://img.haomeiwen.com/i13859779/9199d758d943a049.png)
构建成功后,可以看到 jenkins 会把项目在服务器中的 /var/lib/jenkins/workspace/test01 路径构建一个项目,通过这种方式代表我们配置 git 的凭证是成功的。
SSH 密钥类型
SSH免密登录示意图
![](https://img.haomeiwen.com/i13859779/7f41a9895f0acce8.png)
1.使用root用户生成公钥和私钥
ssh-keygen -t rsa
在/root/.ssh/目录保存了公钥和使用
![](https://img.haomeiwen.com/i13859779/fb24990c2b72067a.png)
id_rsa:私钥文件
id_rsa.pub:公钥文件
2.把生成的公钥的内容放在 Gitlab 中,我的是 Gitea
![](https://img.haomeiwen.com/i13859779/d048c048f1acfce6.png)
3.在Jenkins中添加凭证,配置私钥
在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来
![](https://img.haomeiwen.com/i13859779/f4ad0b3641a3484d.png)
这个root,是你在 服务器,root目录下生成的,所以填写 root,最后依然是在项目中配置一下git 即可
网友评论