前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >freeipa 与jenkins的集成

freeipa 与jenkins的集成

原创
作者头像
对你无可奈何
发布2023-04-03 14:34:48
1.8K1
发布2023-04-03 14:34:48
举报
文章被收录于专栏:运维专栏运维专栏

背景:

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

freeipa 与jenkins的集成

先说一下实现目标与规划:

  1. jenkins 项目任务区分以环境开头qa-xxx是qa 服务器任务 develop-xxx为开发环境任务,当然了还可以有master-xxx master环境任务!这里主要是演示验证。仅演示develop qa两个实例任务!
image.png
image.png
  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 控制台页面用户组添加:
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    -qa jenkins-develop组加入jenkins组,套娃一下:
    image.png
    image.png
    image.png
    image.png
    用户,并将用户加入用户组:创建zhangpeng tanyuqiang huozhonghao三个用户:
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

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

image.png
image.png
image.png
image.png
image.png
image.png

将tanyuqiang huozhonghao 加入jenkins-develop组:

image.png
image.png

将tanyuqiang用户加入jenkins-qa组:

image.png
image.png

jenkins集成freeipa

安装启动jenkins

关于jenkins的安装我是直接本地启动了一个容器:

代码语言:txt
复制
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
image.png
image.png
代码语言:txt
复制
docker logs -f jenkins
image.png
image.png
代码语言:txt
复制
chmod 777 -R /data/jenkins/jenkins_home/
docker restart jenkins
docker logs -f  jenkins
image.png
image.png

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

image.png
image.png
image.png
image.png

进入插件安装页面:

image.png
image.png

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

image.png
image.png

等待ing

image.png
image.png

初始化了admin用户

image.png
image.png

保存完成:

image.png
image.png

就绪,开始使用jenkins:

image.png
image.png

jenkins创建测试任务:

创建两个测试认识qa-111 develop-111(两个前缀标识,区分对应jenkins组方便授权!)

image.png
image.png
image.png
image.png
image.png
image.png

jenkins配置ldap

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

image.png
image.png

修改安全域,选择ldap:

image.png
image.png

ldap相关配置:

image.png
image.png
image.png
image.png

测试ldap 配置:

image.png
image.png

保存:

image.png
image.png

使用ldap zhangpeng用户测试登陆:

image.png
image.png

启用Role-Based Stragegy授权策略

系统管理-全局安全配置-授权策略-Role-Based Stragegy 保存

image.png
image.png
image.png
image.png
image.png
image.png

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

image.png
image.png

配置Role-Based Stragegy 策略

系统管理-Manage and Assign Roles

image.png
image.png

Manage Roles 管理角色

image.png
image.png

管理角色:

Global roles:

image.png
image.png

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

image.png
image.png

Assign Roles

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

image.png
image.png

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

image.png
image.png

验证用户权限:

其他浏览器(火狐浏览器)登陆huozhonghao用户,控制台只能发现develop-111任务,运行点击develop-111任务可以运行符合预期:
image.png
image.png

登陆tanyuqiang用户可以发现develop-111 qa-111任务可运行符合

image.png
image.png

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

image.png
image.png

接着出来的问题:

火狐浏览器登陆admin账户无法登陆了用上面我们初始化jenkins生成的密码,且我们并没有将zhangpeng用户设置为管理员,怎么破?

使用freeipa admin 用户名密码登陆:

image.png
image.png

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

image.png
image.png

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

image.png
image.png

也可以Manage and Assign Roles 这里管理角色创建一个角色zhangpeng 绑定Administer权限,然后zhangpeng 用户绑定zhangpeng 角色!这个完全可以看自己的习惯喜好,进行个性化配置!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
  • freeipa 与jenkins的集成
    • jenkins集成freeipa
      • 安装启动jenkins
      • jenkins创建测试任务:
      • jenkins配置ldap
      • 启用Role-Based Stragegy授权策略
      • 配置Role-Based Stragegy 策略
      • 验证用户权限:
      • 接着出来的问题:
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档