共计 2590 个字符,预计需要花费 7 分钟才能阅读完成。
背景:
参照:Freeipa 的简略搭建配置,实现一下与 jenkins 的简略集成,用户组与权限的简略配置!
freeipa 与 jenkins 的集成
先说一下实现目标与布局:
- jenkins 我的项目工作辨别以环境结尾 qa-xxx 是 qa 服务器工作 develop-xxx 为开发环境工作,当然了还能够有 master-xxx master 环境工作!这里次要是演示验证。仅演示 develop qa 两个实例工作!
- 对于用户 次要拿了三个测试 zhangpeng tanyuqiang huozhongaho(本人名字跟两个小伙伴的名字,常常拿来各种测试祸患了)。要实现 A 用户 zhangpeng 管理员 ,B 用户 tanyuqiang 能够执行 develop qa 工作,C 用户 huozhonghao 只能执行 develop 工作(工作的编辑增加新建先疏忽)
-
对于受权必定还是 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_home
docker 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 jenkins
docker 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 角色!这个齐全能够看本人的习惯爱好,进行个性化配置!