背景:

参照:Freeipa的简略搭建配置,实现一下与jenkins的简略集成,用户组与权限的简略配置!

freeipa 与jenkins的集成

先说一下实现目标与布局:

  1. jenkins 我的项目工作辨别以环境结尾qa-xxx是qa 服务器工作 develop-xxx为开发环境工作,当然了还能够有master-xxx master环境工作!这里次要是演示验证。仅演示develop qa两个实例工作!

  1. 对于用户 次要拿了三个测试 zhangpeng tanyuqiang huozhongaho(本人名字跟两个小伙伴的名字,常常拿来各种测试祸患了)。要实现A 用户zhangpeng 管理员 ,B用户tanyuqiang能够执行develop qa工作,C用户huozhonghao只能执行develop工作(工作的编辑增加新建先疏忽)
  2. 对于受权必定还是jenkins Role-based Authorization Strategy插件,如果设置用户受权,每增加一个用户还要受权一次?freeipa尝试一下组的概念!

    freeipa创立用户~用户组

    freeipa创立用户组

    组的布局是筹备这样的:创立三个用户组jenkins jenkins-qa jenkins-develop:
    freeipa 控制台页面用户组增加:



    将jenkins-qa jenkins-develop组退出jenkins组,套娃一下:

    freeipa创立用户,并将用户退出用户组:

    创立zhangpeng tanyuqiang huozhonghao三个用户:


jenkins用户组中 将zhangpeng用户设置为jenkins member managers:



将tanyuqiang huozhonghao 退出jenkins-develop组:

将tanyuqiang用户退出jenkins-qa组:

jenkins集成freeipa

装置启动jenkins

对于jenkins的装置我是间接本地启动了一个容器:

mkdir -p /data/jenkins/jenkins_homedocker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai'" --privileged=true  --restart=always -v /data/devops5/jenkins_home:/var/jenkins_home jenkins/jenkins:2.387.1-lts-jdk11

docker logs -f jenkins

chmod 777 -R /data/jenkins/jenkins_home/docker restart jenkinsdocker logs -f  jenkins


web登陆jenkins服务器输出日志中的bf4052ecfdae48edbff5xxx 或者在 /var/jenkins_home/secrets/initialAdminPassword中找到


进入插件装置页面:

为了节省时间只装置了Localization: Chinese (Simplified) Pipeline Role-based Authorization Strategy LDAP插件

期待ing

初始化了admin用户

保留实现:

就绪,开始应用jenkins:

jenkins创立测试工作:

创立两个测试意识qa-111 develop-111(两个前缀标识,辨别对应jenkins组不便受权!)


jenkins配置ldap

系统管理-全局平安配置:

批改平安域,抉择ldap:

ldap相干配置:


测试ldap 配置:

保留:

应用ldap zhangpeng用户测试登陆:
当初ldap用户登陆了是都能够做任何事的,上面配置一下权限!

启用Role-Based Stragegy受权策略

系统管理-全局平安配置-受权策略-Role-Based Stragegy 保留



刷新一下其余浏览器登陆的ldap用户zhangpeng 发现没有全副/Read权限

配置Role-Based Stragegy 策略

系统管理-Manage and Assign Roles

Manage Roles 治理角色

治理角色:
Global roles:

Add 增加jenkins-develop jenkins-qa role给了read权限!
Item roles
role to add 增加jenkins-develop role Pattern 匹配了 develop.jenkins-qa role Pattern 匹配了 qa. 具体权限按需来,为这里都设置了工作的build cancel Didcover Read 视图read

Assign Roles
Global roles Add group jenkins-qa 对应 jenkins-qa role jenkins-develop对应jenkins-develop role

Item roles也这样: jenkins-develop 用户组对应role jenkins-develop jenkins-qa用户组 对应role jenkins-qa

验证用户权限:

其余浏览器(火狐浏览器)登陆huozhonghao用户,控制台只能发现develop-111工作,运行点击develop-111工作能够运行合乎预期:

登陆tanyuqiang用户能够发现develop-111 qa-111工作可运行合乎

but 登陆zhangpeng 用户是没有权限的,因为只针对了jenkins 组下两个子用户进行了受权!尽管他是组的管理员,他只能在freeips控制台治理jenkins组下的用户以及自权限

接着进去的问题:

火狐浏览器登陆admin账户无奈登陆了用下面咱们初始化jenkins生成的明码,且咱们并没有将zhangpeng用户设置为管理员,怎么破?
应用freeipa admin 用户名明码登陆:

当然了这里最好的是对zhangpeng用户进行admin受权:

刷新火狐浏览器zhangpeng用户领有Administer权限:

也能够Manage and Assign Roles 这里治理角色创立一个角色zhangpeng 绑定Administer权限,而后zhangpeng 用户绑定zhangpeng 角色!这个齐全能够看本人的习惯爱好,进行个性化配置!