Jenkins的权限管理

Jenkins本身自带安全管理的功能,但是一般情况下很少去使用,更多是使用插件的方式进行更加灵活的处理。

Jenkins的权限管理需要依赖Jenkins的权限管理插件。通过配置插件role-base,可以很方便给不同用户不同job的管理和执行权限。

安装插件

在系统管理、插件管理中搜索role-base 插件,进行安装:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_02

搜索 Role-base安装:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_03

安装完成之后,在“配置全局安全”中,可以看到已经添加了 role-base的相关选项:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_04

选中之后,保存当前配置,在管理界面,可以发现已经有了有一个角色管理的工具:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_05

点击进入之后,就可以对我们的用户进行管理。

权限分配

这里创建一个dev的用户,并分配一个job做为示例。

创建dev用户,系统管理中,选择用户管理:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_jenkins获取oracle权限管理_06

选择右侧的创建用户:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_Jenkins_07

配置用户名和密码信息:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_08

在系统管理,中进入刚刚安装的role-base工具中,创建一个dev的角色:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_Jenkins_09

创建一个dev的角色,并只授予读的权限:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_10

此时已经添加了一个dev的全局角色,在角色分配界面,添加dev-1用户到dev的角色中:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_Jenkins_11

这里需要注意的是,之前admin或root的权限选项不要移除,否则这些用户可能无法登录。

此时如果使用dev-1的用户登录,发现没有任何job,因为还没有创建dev-1用户具有权限查看的job:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_12

此时,创建一个新的job,并分配权限给dev-1用户:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_13

这里可以根据具体的需求创建对应的job, 示例选择创建一个hello world:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_14

我们可以给dev-job单独创建一个视图:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_jenkins获取oracle权限管理_15

配置视图的类型:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_16

指定视图对应的job:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_jenkins获取oracle权限管理_17

在角色管理界面,添加对应的项目角色,可以使用正则的方式匹配对应的job名称:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_jenkins获取oracle权限管理_18

然后在角色分配界面,添加我们的dev-1用户,到项目角色中:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_系统管理_19

此时,dev-job对应的权限分配就完成了,可以通过登录dev-1用户,查看当前的job执行权限:

jenkins 自己没有权限了 authorizationStrategy Unsecured jenkins权限管理插件_权限管理_20

权限配置错误后管理员无法登录解决

1.停止jenkins

systemctl stop jenkins

2.修改config.xml

# vim /var/lib/jenkins/config.xml

true

修改为:

false

删除:

和到

例如删除以下内容:

true

false

3.启动jenkins

# systemctl start jenkins

4.登录jenkins,重新配置权限。